Советы по бенчмаркингу и нагрузочному тестированию веб-сервера?
Я пытаюсь протестировать и загрузить различные настройки веб-сервера (mod_php против php как fastcgi, max/min рабочая / потоковая конфигурация и т. Д.). Я начинаю с ab, но был бы заинтересован в других рекомендуемых инструментах для этой работы. Веб-сервер - это сервер Linux, но я могу запускать инструменты тестирования на базе Windows с моего компьютера, если это необходимо.
Я также заинтересован в любых рекомендациях относительно техники. Например:
Я предполагаю, что получу более полезные результаты, работая на отдельной машине, ничего не делая (в отличие от запуска на той же машине, что и веб-сервер, или на моем настольном компьютере в качестве фонового процесса). Это правильно?
Я также полагаю, что могу уменьшить влияние проблем с сетью на тестирование, поместив эту машину в один центр обработки данных на частный IP-адрес.
Я хочу настроить больше, чем просто один файл, чтобы получить какой-либо реальный тест (могу ли я сделать это с помощью ab?).
Любые другие советы?
1 ответ
Мне нравится создавать класс компьютеров, которые управляют осадой.
Я сканирую веб-сайт один раз, используя wget
wget -r -l0 -np -O /dev/null http://domainname.com
// Note that the -l0 means that it will recurse infinitly, depending on your site,
// you might want to change that to something lower, say ... -l3
// This will crawl the site, and throw all the contents away.
Затем я извлекаю все уникальные URL-адреса из журналов сервера, используя следующий способ:
awk '{ print "http://domainname.com"$7 }' access.log | sort | uniq
Затем можно настроить осаду для использования этого файла, а затем попытаться их в случайном порядке.
siege -f siegeurls -i -b
Он также может быть настроен на отправку различных заголовков, установить useragent и еще много чего.
Я бы рекомендовал вам взглянуть на осаду. Это настройка, которую я использую при тестировании самонастраиваемых веб-сайтов.