Лучшие практики и литература для тестирования нагрузки веб-приложений

Как веб-разработчик, меня пару раз спрашивали о производительности сайтов, которые мы создали. Иногда у вас появятся такие неопределенные вопросы, как "будет ли сайт продолжать работать хорошо, даже во время недели запуска продукта?", "Может ли сайт обрабатывать миллион пользователей?" И даже "как работает сайт?"

Конечно, эти вопросы очень легитимны, и я всегда старался ответить на эти вопросы в меру своих возможностей, используя комбинацию

  • исторические данные (журналы google analytics/IIS)
  • инструменты проверки сетевой нагрузки
  • счетчики производительности сервера
  • опыт
  • чувство кишки
  • здравый смысл
  • небольшая помощь наших системных администраторов
  • мое личное понимание рассматриваемой архитектуры программного обеспечения

Я обычно мог придумать разумные ответы на эти вопросы. Однако на производительность веб-приложения могут влиять многие вещи (зависимости от базы данных, стратегии кэширования, проблемы concurrency и т.д., Поведение пользователя).

Я программист, а не статичный, и мой подход к этой проблеме всегда был глубоко ненаучным. Поэтому я сделал немного больше исследований... и все мои результаты Google, похоже, сосредоточены на инструментах, функциях и показателях (и более метриках), когда я действительно ищу способ понять эти вещи.

Вопрос: Каковы некоторые хорошие ресурсы (книги?), Чтобы прочитать о лучших методах, которые разработчик может прочитать на тему тестирования веб-загрузки, которые помогут мне ответить на эти вопросы?

Ответы

Ответ 1

Сначала ваш вопрос доказывает, что вы понимаете проблему. Иногда бывает достаточно сложно создать инструменты, скрипты и т.д., Чтобы генерировать нагрузку, но реальная проблема заключается в оценке результатов и контроле.

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

Когда вы достигаете своего предела, мой опыт в том, что это вопрос бюджета проекта. Будем ли мы вкладывать больше времени/денег/ресурсов и т.д., Чтобы оценить причину.

Я работаю как профессионал по тестированию, и я рекомендую уважать тестирование нагрузки как жизненно важную часть процесса разработки, но, к сожалению, это не всегда соответствует тому, что решает менеджмент.

Итак, ответ на ваш вопрос заключается в том, что почти все должны участвовать в этом процессе: разработчикам следить за их кодом; системным администраторам необходимо контролировать использование ЦП, памяти и т.д.; DBA; сетевые парни; и так далее. Все они, вероятно, нуждаются в собственном источнике знаний, чтобы получить всю эту информацию, записанную и проанализированную.

Несколько советов по книге:

Тестирование производительности приложений: помощь программистам и обеспечение качества http://www.amazon.com/exec/obidos/ASIN/0596520662/

Искусство планирования мощности: масштабирование веб-ресурсов http://www.amazon.com/exec/obidos/ASIN/0596518579/

Руководство по тестированию производительности для веб-приложений http://www.amazon.com/exec/obidos/ASIN/0735625700/

Ответ 2

Вы видели:

Руководство по тестированию производительности для веб-приложений Дж. Д. Мейера, Карлоса Фарра, Прашанта Бэнсода, Скотта Барбера и Денниса Ри

Он даже доступен в Интернете бесплатно. http://msdn.microsoft.com/en-us/library/bb924375.aspx

Ответ 3

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

Ответ 4

Я могу порекомендовать две книги, опубликованные в 2010 году:

Первый "СЕКРЕТЫ САЙТА САЙТА ASP.NET" Matt Perdeck, был опубликован в конце осени 2010 года. Он написан больше с точки зрения оптимизации производительности, но также содержит подробный материал по нагрузочному тестированию. Это бесплатная pdf-книга.

Вторая книга ".NET Performance Testing and Optimization - Полное руководство" , Пол Главич, Крис Фаррелл. полный источник при тестировании производительности/нагрузки