Ошибка ab (Apache Bench): apr_poll: указанный тайм-аут истек (70007) в Windows
Я загружаю тестирование IIS 7.5 (WinR2/SP1) из моего клиента Windows 7 и SP1. У меня есть script, который вызывает три вызова ab
типа:
start /B cmd /c ab.exe -k -n 500 -c 50 http://rhvwr2vsu410/HelloWebAPI/Home/SyncProducts > SyncProducts.txt
Когда concurrency → 5, я скоро получаю сообщение об ошибке
apr_poll: указанный таймаут истекло (70007)
И ab
перестает делать запросы. Я даже не добрался до 100 запросов.
Это происходит в течение 30 секунд после запуска script. Страница документации ab не обеспечивает многого. Связанный стек > вопрос о переполнении. Server Вопрос, связанный с ошибкой.
Ответы
Ответ 1
У вас должна быть версия 2.4 и использовать -s timeout
вариант.
Вы можете использовать мой двоичный код win32-x86 (скомпилированный под Visual Studio 2008 от trunk 8 февраля 2013):
Мне сделали это, используя: http://code.google.com/p/apachebench-standalone/wiki/HowToBuild и
http://ftp.ps.pl/pub/apache//apr/binaries/win32/apr-1.3.6-iconv-1.2.1-util-1.3.8-win32-x86-msvcrt60.zip
Ответ 2
ab --help
-s timeout Seconds to max. wait for each response
Default is 30 seconds
Добавить параметр: -s 120 в команду ab, где 120 - новый тайм-аут. Если он недостаточно, установите его еще выше...
Ответ 3
ab --help
-s timeout Seconds to max. wait for each response
Default is 30 seconds
-k Use HTTP KeepAlive feature
Это работает для меня
Ответ 4
Звучит как ошибка ab.
У меня была аналогичная проблема с OS X (теперь, когда вы упоминаете, что это происходит в Windows, я уверен, что ab является виновником). Я обошел профилирование и трассировку своего веб-приложения, но ничего не нашел. Затем я тестировал статические страницы с nginx, и это все равно дало мне ошибку. Поэтому я тогда пошел и нашел замену... jMeter. Отлично работает, но мне все равно хотелось бы знать, что такое проблема ab.