Лучшие практики и литература для тестирования нагрузки веб-приложений
Как веб-разработчик, меня пару раз спрашивали о производительности сайтов, которые мы создали.
Иногда у вас появятся такие неопределенные вопросы, как "будет ли сайт продолжать работать хорошо, даже во время недели запуска продукта?", "Может ли сайт обрабатывать миллион пользователей?" И даже "как работает сайт?"
Конечно, эти вопросы очень легитимны, и я всегда старался ответить на эти вопросы в меру своих возможностей, используя комбинацию
- исторические данные (журналы 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 - Полное руководство" , Пол Главич, Крис Фаррелл. полный источник при тестировании производительности/нагрузки