如何正确使用 Siege 对 GET 请求进行基准测试



我使用围攻来对本地HTTP服务进行基准测试:

siege -q -b -t 30S -c 64 "http://localhost:8888/endpoint?params=abc"

基准测试结果提供每秒 ~500 个事务吞吐量。

但是,当我通过启动 8 个同时curl循环来手动对服务进行基准测试时,相同的端点每秒提供数千个吞吐量。

那么我围攻做错了什么?

有一些事情可能会影响你的测试。 检查一下,如果将并发-c设置为 8 以匹配使用 curl 测试的并发数,则会得到什么。 您的网站可能无法处理大量并发用户。

此外,围攻默认不会保持活力(我认为至少不会)。 如果不使用此选项,服务器和客户端必须设置和拆卸套接字,这可能很昂贵。 您应该能够设置标头并使其得到遵守 ( siege -H "Connection: Keep-Alive" )。

作为旁注,我发现在基准测试时使用多种工具很有用,一旦你开始围攻工作,我会玩AB(apache bench),httperf并保持你的手动卷曲测试。

您可以使用 bash 进程替换在命令行上将其拉下来,以创建一个动态的 siegrc 文件:

siege -R <(echo connection = keep-alive) ...

相关内容

  • 没有找到相关文章

最新更新