我在 Web 服务上使用 apache bench 运行基准测试。我知道测试期间有 1-2 个请求会超时(这是一个 Web 框架问题)。当超时发生时
ab
退出并显示消息 apr_pollset_poll: The timeout specified has expired (70007)
并且不显示结果。我想获得测量结果,忽略这些超时测试(或也对它们进行计数,但仅使用超时值作为响应时间)。可以用ab
吗?
编辑:我使用的命令是
ab -n 1000 -c 10 http://localhost:80
我查看了
ab
来源,从我所看到的来看,不可能忽略这些错误。也许有一个叉子可以实现这样的功能?
默认超时时间为 30 秒。您可以使用
-s
更改此设置:
ab -s 9999 -n 1000 -c 10 http://localhost:80
-r
选项表示“不要在套接字接收错误时退出”(请参阅文档此处)。
这会禁用 ab 默认使用的“第一次失败时退出”行为,以便记录网络错误(包括超时、连接重置、TLS/SSL 错误等),但无论如何测试都会继续。