У меня есть сервер, который блокирует пакетный запрос (если один и тот же IP-адрес обращается к серверу более 3 раз в секунду, он будет обслуживать ошибку 500).
Поэтому, когда я использую тест Apache, я вижу много неудачных запросов, даже если я установил для параллелизма значение 1.
Есть ли возможность установить интервал между каждым запросом? Или есть аналогичные инструменты для тестирования, которые предлагают эту функцию интервала?
Ты мог бежать ab
через watch
чтобы отложить повторный доступ, но вы не сможете много использовать сводку отчета.
watch -n 1 ab -n 3 http://serverfault.com/
Или прогнать через curl
вместо того ab
watch -n 0.4 curl http://serverfault.com/
Больше о watch
: http://www.linfo.org/watch.html
Вы действительно не собираетесь проводить какое-либо значимое нагрузочное тестирование с ограничением параллелизма до 3. Вероятно, вам потребуется снять ограничение на количество запросов в секунду для IP-адреса, с которого вы тестируете.
Только настраиваемые параметры времени
-t ограничение по времени
Максимальное количество секунд, которое нужно потратить на тестирование. Отсюда следует -n 50000
внутренне. Используйте это для тестирования сервера за фиксированный общий промежуток времени. По умолчанию ограничений по времени нет.
Однако каков эффект бенчмаркинга, если вы подождете? Вы вообще не получите реальных результатов.
И вы можете добавить текстовый файл для подробного журнала.
watch -n 1 'ab -n 3 -v3 http://serverfault.com/ >> ab.txt'
Вы можете посчитать появление ошибок 5xx. Например, в vim:
:%s/HTTP\/1.1 5//n
Или постоянные ходы 3хх
:%s/HTTP\/1.1 3//n
А потом хорошо проанализируйте свой хостинг на предмет работоспособности.