У меня проблема с тестированием Сервер Apache 2.4 по ab. Сервер Apache работает в Windows как служба, и я тестирую его с другого сервера, который находится в Linux.
Я пишу:
ab -n 1000 -c 1000 "http://x.x.x.x/image.jpg"
Вывод:
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking x.x.x.x (be patient)
apr_socket_recv: Connection refused (111)
когда -n
и -c
100, проблем нет. Я тестировал его ранее, и все было в порядке, но внезапно он начал вылетать. Все перепробовал, даже использовал mpm_winnt_module, но это не помогло.
(Я использую значения по умолчанию в Apache.)
Полагаю, это не проблема сети. Я вижу в Wireshark, что через некоторое время связь сбрасывается. По мне виноват Apache.
В -c
вариант ab предназначен для параллелизма. Итак, вы говорите ему выполнять 1000 одновременных запросов. В количество подключений по умолчанию обслуживается Apache - 150 в Windows. Вот почему параллелизм 100 успешен, а параллелизм 1000 - нет.
Если вы так настроены (и ваш сервер выдерживает нагрузку), вы можете увеличить ThreadsPerChild
до 1000 в mpm_winnt_module
раздел httpd-mpm.conf
. Также убедитесь httpd-mpm.conf
раскомментирован в httpd.conf
.