使用wrk,我运行了以下命令:
wrk -t10 -c10 -d30s http://localhost:8080/myService --latency -H "Accept-Encoding: gzip"
结果,我获得了每秒请求数:15000,没有错误
我正在尝试用加特林(Gatling)重现同样的测试。因此,我尝试了以下方法:
scn.inject(
rampUsersPerSec(1) to 15000 during (30 seconds)
)
但是结果,我得到了错误:
----错误------------------------------------------- -------------------------
i.n.c.AbstractChannel $ AnnotatedSocketException:无法分配r 573(42,44%)索取地址:localhost / 127.0.0.1:8080i.n.c.AbstractChannel $ AnnotatedSocketException:资源速度530(39,26%)几乎不可用:localhost / 0:0:0:0:0:0:0:0:1:8080j.i.IOException:过早关闭247(18,30%)
从wrk,我相信我的服务器可以处理15000个请求/秒,但是使用Gatling,情况似乎并非如此。您知道为什么会有如此不同吗?
免责声明:Gatling的创作者在这里
您正在比较苹果和橙子。
使用wrk,您将打开10个连接并在30秒内尽可能快地循环。
[根据当前的加特林设置,您将产生225,015个虚拟用户((1 + 15,000)/ 2 * 30),每个用户都试图打开自己的连接。
我建议您阅读有关picking injection profiles that make sense for your use case的文章。
[如果您真的想和这里的wrk做同样的事情,则需要将您的方案包装在一个after(30)循环中,并将注入配置文件更改为atOnceUsers(10)。
您还可以选择使用shared connection pool。
然后,对于这种无逻辑的静态测试,您不能期望其他任何加载工具能够像wrk一样快。
还请注意: