Масштабируемость и производительность веб-приложений, подходы?

Где в вашем коде напечатано «я»? На самом деле я вижу только

st2 = 'URL is good!'
print st2

, которые только печатают: «URL-адрес хорош!»

Кроме того: почему бы не использовать объект запроса в urlopen?

response = urlopen(req)
5
задан Thomas Owens 30 June 2009 в 22:34
поделиться

3 ответа

Это - очень широкий вопрос, мешающий ответить, но я попытаюсь обеспечить несколько общих предложений.

1 - Если Вы не сделаете некоторые вещи серьезно неправильно затем, Вы не должны будете, вероятно, волноваться о перфекте или масштабе, пока Вы не поражаете существенное количество трафика (более чем 1 миллион просмотров страницы в месяц).

2 - Вашими самыми большими проблемами производительности первоначально, вероятно, будет время загрузки страницы из других стран. Попробуйте Тест Сайта Gomez Instance, чтобы видеть время загрузки страницы со всего мира и использовать YSlow в качестве руководства для оптимизации.

3 - Когда Вы действительно начнете поражать проблемы производительности, это сначала, скорее всего, произойдет из-за работы базы данных. Используйте SQL Server Profiler для исследования трафика SQL, ища длительные запросы, чтобы попытаться оптимизировать и также использовать dm_db_missing_index_details для поиска индексов, необходимо добавить.

4 - Если Ваши веб-серверы начинают становиться узким местом производительности, используйте профилировщика для (такого как Профилировщик МУРАВЬЕВ) для поиска способов оптимизировать код веб-страниц.

5 - Если Ваши веб-серверы хорошо оптимизированы и все еще выполнение слишком горячего, ищут больше кэширующихся возможностей, но Вы, вероятно, испытываете необходимость для простого добавления большего количества веб-серверов.

6 - Если Ваша база данных хорошо оптимизирована и все еще выполнение слишком горячего, то посмотрите на добавление системы распределенного кэширования. Этого, вероятно, не произойдет, пока Вы не будете более чем 10 миллионами просмотров страницы в месяц.

7 - Если Ваша база данных начинает разбиваться даже с распределенным кэшированием, то посмотрите на sharding архитектуру. Этого, вероятно, не произойдет, пока Вы не будете более чем 100 миллионами просмотров страницы в месяц.

15
ответ дан 18 December 2019 в 06:36
поделиться

Я работал над несколькими сайтами, которые получают миллионы/хиты/месяц. Вот некоторые основы:

  1. Кэш, кэш, кэш. Кэширование является одним из самых простых и самых эффективных способов уменьшить нагрузку на Ваш веб-сервер и базу данных. Содержание страницы кэша, запросы, дорогое вычисление, что-либо, что является связанным вводом-выводом. Кэш-память является очень простой и эффективной.
  2. Используйте несколько серверов, после того как Вы истрачены. У Вас может быть несколько веб-серверов и несколько серверов баз данных (с репликацией).
  3. Уменьшите полный # запроса к Вашим веб-серверам. Это влечет за собой кэширование, JS, CSS и использование изображений истекают заголовки. Можно также переместить статическое содержание в CDN, который ускорит опыт пользователя.
  4. Мера и сравнительный тест. Выполненный Nagios на Ваших производственных машинах и нагрузочный тест на Вашем dev/qa сервере. Необходимо знать, когда сервер загорится так, можно предотвратить его.

Я рекомендовал бы читать Создающие Масштабируемые Веб-сайты, это было записано одним из инженеров Flickr и является большой ссылкой.

Проверьте мое сообщение в блоге о масштабируемости также, это имеет много ссылок на презентации о масштабировании с несколькими языками и платформами: http://www.ryandoherty.net/2008/07/13/unicorns-and-scalability/

8
ответ дан 18 December 2019 в 06:36
поделиться

Существует скорость от MS, а также Кэш-память имеет порт к.NET теперь и также indeXus. Сеть

1
ответ дан 18 December 2019 в 06:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: