ab(Apache Bench)错误:apr_poll:在Windows上超时已过期(70007)

58

我正在从我的Windows 7/SP1客户端对IIS 7.5 (WinR2 / SP1) 进行负载测试。我有一个脚本,使三个ab调用,如下:

start /B cmd /c ab.exe -k -n 500 -c 50 http://rhvwr2vsu410/HelloWebAPI/Home/SyncProducts > SyncProducts.txt

当并发数大于5时,我很快就会收到错误消息。

apr_poll: The timeout specified has expired (70007)

我的脚本停止请求并且我甚至没有完成100个请求,这发生在开始30秒内。 ab文档页面提供的信息不多。 相关的Stack Overflow问题Server Fault相关问题


1
我也遇到了类似的情况。问题与我的代码有关。不确定这里是否也是如此。 - tugberk
@tugberk - 没错,我的WebApi代码中有一个bug限制了并发。一旦我修复了这个bug,apr_poll消息就消失了。 - RickAndMSFT
你可以尝试这个线程中提供的解决方案:http://serverfault.com/questions/10852/what-limits-the-maximum-number-of-connections-on-a-linux-server - Sivaraman Viswanathan
我认为这个问题很老了,但我仍然从命令行遇到这个问题,例如 ab http://myinternalserver.tld/file.txt,但是当我添加 -X 127.0.0.1:8888 以通过我的本地调试代理时它可以工作,并且使用curl也可以工作。有什么线索吗? - jacobq
4个回答

32

您必须拥有2.4版本并使用-s timeout选项

编辑:

https://www.wampserver.com/ - 包括Apache 2.4.x Win32和Win64。

已弃用但仍可用,但我不知道到什么时候,并且不可用:

您可以使用我的win32-x86二进制文件(从2013年2月8日的主干中使用Visual Studio 2008编译):

  • http://mars.iti.pk.edu.pl/~nkg/ab-standalone.exe(不再提供)
  • http://mars.iti.pk.edu.pl/~nkg/ab-standalone-src.zip(不再提供)
我是用以下工具制作的:http://code.google.com/p/apachebench-standalone/wiki/HowToBuildhttp://ftp.ps.pl/pub/apache//apr/binaries/win32/apr-1.3.6-iconv-1.2.1-util-1.3.8-win32-x86-msvcrt60.zip(只是无法获取)。

4
独立的exe文件提示“libapr-1.dll”文件丢失。 - Uwe Keim
3
使用2.2版本时,请使用“-t timelimit”选项。 - Ponytech
如果您无法下载或无法正常工作,请告知我而不是进行负面评价。 - Dzwiedziu-nkg
@yeehaw,你用的是哪个发行版?一定很老了吧。2.4版本是在2012年发布的。 - Dzwiedziu-nkg
@Dzwiedziu-nkg 这是一台Ubuntu 18.04机器。不确定Linux有什么不同... - yeehaw
显示剩余2条评论

19
ab --help 

-s timeout      Seconds to max. wait for each response
                    Default is 30 seconds

添加选项:-s 120 到 ab 命令中,其中120是新的超时时间。如果不够,请将其设置得更高...

13

ab --help

-s      timeout      Seconds to max. wait for each response
                    Default is 30 seconds

-k                    Use HTTP KeepAlive feature

对我来说正常工作


8

听起来像是一个ab的问题。

我在OS X上遇到过类似的问题(现在你提到它在Windows上发生,我更有信心认为ab是罪魁祸首)。我绕着我的网络应用程序进行了分析和跟踪,但是找不到任何问题。然后我测试了nginx上的静态页面,它仍然给出了错误。所以我找到了一个替代品...jMeter。它运行得很好,但我仍然想知道ab的问题所在。


2
我也在想同样的问题。在我的情况下,我正在使用高并发,但故障无法重现,但是一直是-n减2。例如:ab -c 500 -n 10000 => 9998完成,2个超时。可能相关:https://bz.apache.org/bugzilla/show_bug.cgi?id=22686 - Cory Mawhorter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接