我使用siege来对本地HTTP服务进行基准测试:
siege -q -b -t 30S -c 64 "http://localhost:8888/endpoint?params=abc"
基准测试结果为每秒吞吐量提供约500个事务.
但是,当我通过启动8个同时的curl循环手动对服务进行基准测试时,相同的端点会产生每秒数千个吞吐量.
那么围攻我做错了什么?
有一些事情可能会影响您的测试.如果将并发-c设置为8以匹配您使用curl测试的并发数,请检查您得到了什么.您的
站点可能无法处理大量并发
用户.
此外,Siege默认不会保持活着(至少我没有想到).通过不使用此选项,服务器和客户端必须设置和拆除可能成本高昂的套接字.您应该能够设置标题并使其受到尊重(围攻-H“连接:保持活跃”).
作为旁注,我发现在基准测试时使用多种工具很有用,一旦你进行了围攻工作,我就会玩AB(apache bench),httperf并保持你的手动卷曲测试.