Что такое хороший контрольный тест для нагрузочного тестирования производственной системы с IIS?
Я заметил несколько сообщений о стресс-тестировании IIS, но мне больше интересно узнать хороший способ установить эталон того, что может выдержать мой физический веб-сервер.
Сейчас я работаю над производственной системой, которая, похоже, ежедневно останавливается, и никто не может понять, что является причиной проблемы. Это стандартная настройка N-уровня (клиент, веб-сервер, сервер БД). Я создал несколько простых страниц ASP.NET, которые могут сделать несколько простых вещей, которые я использую, чтобы установить эталон для стресс-тестирования, который я позже смогу использовать при сравнении с уже имеющейся производственной системой.
Я уже создал пример страницы aspx, которая просто возвращает некоторую статистику веб-сервера об использовании блоков, ничего тяжелого, возможно, несколько строк кода. Я также создал простой веб-сервис (asmx), который будет проверять соединение с БД с правильным идентификатором, опять же, ничего особенного, просто открыв соединение с БД, и пример запроса, который на самом деле ничего не делает.
Я хотел бы знать, каков хороший уровень стресса, на котором должны работать следующие тесты? В частности, я использую инструмент стресса для веб-приложений Microsoft, и мне любопытно, что большинство людей ожидают от допустимых диапазонов уровня стресса и множителя напряжения. Я уже знаю, в какой момент веб-сервер начинает прогибаться, его около 20 уровней стресса и 10 коэффициентов стресса дают или берут, что приводит к ~275 запросам страниц / сек. Я пытаюсь выяснить, является ли это число слишком низким, и является ли это каким-то признаком того, что существует проблема между клиентом и веб-сервером, или аппаратной проблемой, или это скорее признак того, что ничего плохого и в том, что система просто слишком тяжелая.
ОБНОВЛЕНИЕ: С тех пор, как я первоначально написал этот пост, код был перемещен на сервер под управлением Windows 2003 с использованием IIS 7.
Теперь я хотел бы знать, если бы я настроил относительно простой тест, такой как базовый файл index.html, который просто обслуживает небольшую страницу, чего бы вы ожидали от "лучших" запросов страниц в секунду, от которых я мог бы добиться стресс-тест?
1 ответ
Теперь я хотел бы знать, если бы я настроил относительно простой тест, такой как базовый файл index.html, который просто обслуживает небольшую страницу, чего бы вы ожидали от "лучших" запросов страниц в секунду, от которых я мог бы добиться стресс-тест?
Я не могу говорить о средстве стресса для веб-приложений Microsoft, но должна быть возможность перебивать статическую HTML-страницу, размещенную на IIS, до тех пор, пока либо не будет загружена сеть между тестовым компьютером и сервером, либо на тестовом сервере не будет загружен ЦП для создания и компиляции тестов., Все, что может сделать МКС - это отправлять один и тот же кэшированный ответ каждый раз.
Чтобы получить хороший профиль о том, как работает ваш сайт, вам нужно создать хорошее представление о фактическом трафике, попадающем на сайт. После того, как вы смоделировали, вы можете увеличить количество людей, использующих его, чтобы выяснить, какие страницы медленнее и какие ресурсы сервера первыми у стены.
Либо у вас будет одна или несколько страниц, чья производительность неприемлема для данной нагрузки, или некоторая статистика сервера, такая как использование диска или производительность базы данных, перерасходуется.
Если вы не проводите тестирование на сайте, который размещен на той же архитектуре, что и ваш рабочий сайт, сложно дать рекомендации по архитектуре.
С неэффективными страницами легче вносить улучшения, так как код доступен для анализа.
Я рекомендую использовать Visual Studio Ultimate Edition для загрузки теста, если вы можете его получить. Он также предоставляет некоторые инструменты профилирования ASP.NET, чтобы справиться с разделами кода и вызовами базы данных.