Проверка сервера Web на выносливость.
По мере того как технологии Web укрепляют свои позиции в качестве средства обеспечения бизнеса, растут и требования к доступности и производительности ресурсов Web, и в первую очередь это касается серверов Web. В одном из предыдущих выпусков рубрики мы уже затрагивали тему оценки их производительности, однако время идет, требования, как уже говорилось, меняются, и для тестирования того, насколько хорошо серверы Web справляются с нагрузкой, необходимы утилиты помощнее некогда рассмотренной.
А НУ-КА, ВЗЯЛИСЬ...
Весьма удачным, на наш взгляд, является продукт WebStress независимого разработчика по имени Дирк Пасслер. Найти эту программу наряду с другими можно на сервере с говорящим сам за себя адресом: http://www.web-server-tools.com. Основная задача WebStress — имитировать одновременную работу нескольких пользователей. В незарегистрированной условно-бесплатной версии количество виртуальных пользователей ограничено пятью, в зарегистрированной — только производительностью компьютера, канала и ограничениями стека TCP/IP. Разработчик рекомендует запускать программу на Windows 2000 или NT, чтобы не возникало проблем при большoм числе одновременно открытых сессий.
Утилита предлагает два основных вида тестов: первый предназначен для проверки работы сервера при заданном числе пользователей, второй — для исследования зависимости отклика сервера и количества ошибок при ответе на запросы от числа одновременно работающих пользователей. Результаты тестов отображаются графически, причем в случае второго режима работы (Ramp Test) графики позволяют увидеть и корреляцию (или ее отсутствие) между ухудшением времени отклика и количеством ошибок.
Если мы хотим приблизить условия тестирования к реальным, то на этот случай утилиты позволят задействовать не один, а несколько URL тестируемого сервера. Это особенно актуально, когда пользователи могут одновременно читать документы html, запускать сценарии CGI и обращаться к каким-то внешним (по отношению к cерверу Web) приложениям.
Разумеется, при задании большого количества виртуальных пользователей обращения должны осуществляться по локальной сети, поскольку наш собственный канал Internet может просто не справиться с такой нагрузкой, что существенно повлияет на результаты теста.
Не все можно выразить в цифрах. WebStress позволяет узнать, как перегрузка сказывается на том, что видит пользователь. |
WebStress может работать через proxy-сервер и поддерживать аутентификацию (если требуется) и различные способы взаимодействия с посредником. В целом WebStress ведет себя как типичный браузер, благодаря чему тест оказывается абсолютно аутентичным. При необходимости можно задействовать даже поддержку «плюшек». Более того, саму утилиту можно использовать в качестве браузера. Это, разумеется, нужно не для того, чтобы отказаться от привычных Explorer или Navigator, а в целях контроля за результатами тестов. Например, проводя тест с измерением времени загрузки, помимо секундомера и статистики хода процесса мы можем одновременно наблюдать процесс загрузки «вживую». Возможность посмотреть, как это происходит во время массового теста, т. е. при сильно нагруженном сервере, очень полезна. Например, она позволяет обнаружить такой характерный симптом перегрузки, как неполное отображение графики.
Помимо окон браузера, WebStress представляет еще достаточно большой объем дополнительной информации, в частности протокол сеансов. В журнал записывается первый отклик сервера, последовательность загрузки различных объектов, в том числе и «плюшек». В качестве дополнительной информации в руководстве к программе рекомендуется использовать и показания монитора производительности сервера (обычная утилита практически для любой платформы). Построенные монитором производительности графики можно сопоставить с результатами тестов и таким образом попытаться выявить причины и следствия.
ЗАКЛЮЧЕНИЕ
Как и подавляющее большинство условно-бесплатных утилит, WebStress не дает исчерпывающей картины происходящего, и анализ результатов тестов придется делать самому. Тем не менее стоит отметить, что в этой утилите недостаток аналитических функций компенсируется большим объемом предоставляемой информации. В частности, возможность лицезреть, как именно нагрузка на сервер отражается на экранах пользователей, подчас может стоить объемистого файла с параметрами работы сервера.
Александр Авдуевский — обозреватель LAN. C ним можно связаться по адресу: shura@lanmag.ru.