Apache Benchmark 是否允许每个请求之间有间隔?

Apache Benchmark 是否允许每个请求之间有间隔?

我有一台阻止突发请求的服务器(如果同一 IP 地址每秒访问该服务器超过 3 次,就会出现 500 错误)。

因此,当我使用 Apache 基准测试时,我会看到很多失败的请求,即使我将并发度设置为 1。

是否有选项可以设置每个请求之间的间隔?或者是否有类似的基准测试工具提供此间隔功能?

答案1

如果并发数限制为 3,您实际上无法完成任何有意义的负载测试。您可能需要删除您正在测试的 IP 的每秒请求数限制。

答案2

您可以运行abwatch延迟重复访问,但您将无法使用报告摘要。

watch -n 1 ab -n 3 http://serverfault.com/

或者运行它curl而不是ab

watch -n 0.4 curl http://serverfault.com/

更多关于watchhttp://www.linfo.org/watch.html

答案3

您可以使用反而。

它的语法与 apache bench 类似。

hey -n 50 -q 1 -c 1 http://www.google.com 

发送 50 个请求,每个请求之间暂停 1 秒。

答案4

您还可以添加文本文件来记录详细程度。

watch -n 1 'ab -n 3 -v3 http://serverfault.com/ >> ab.txt'

你可以统计 5xx 错误的发生次数。例如在 vim 中:

:%s/HTTP\/1.1 5//n

或永久移动 3xx

:%s/HTTP\/1.1 3//n

然后精细分析您的托管以调整性能。

相关内容