性能测试工具 locust 使用的疑问

重来看雨 · June 30, 2020 · Last by solxnp replied at July 02, 2020 · 1387 hits

背景

今天使用locust分布式压测一个grpc协议的服务(第一次使用locust 咳咳),但压测过程中,发现locust无法通过增加并发而提高被压服务的cpu使用率,QPS等。后续增加了3台压测客户端机器,才把服务端的cpu使用率压满,这明显不科学啊。。

服务器信息

1,服务端 8核16G
2,客户端 8核16G

操作过程

场景1,使用700并发,7个nodes执行

locust -f grpc_test.py --master --headless --master-bind-host xxx --expect-workers=7 -u 700 -t 180s -r 700
被压服务cpu使用率为280%左右

locust 进程的单核cpu使用率为 40%左右

QPS:9703.14,平均耗时:2ms

场景2, 使用1400并发,7个nodes执行

locust -f grpc_test.py --master --headless --master-bind-host xxx --expect-workers=7 -u 1400 -t 180s -r 700
被压服务cpu使用率为280%左右

locust 进程的单核cpu使用率为 40%左右

QPS: 9514.82,平均耗时:2ms

场景3, 使用1400并发,14个nodes执行(压测客户端增加了一台8核机器,承担另外7个nodes)

locust -f grpc_test.py --master --headless --master-bind-host xxx --expect-workers=14 -u 1400 -t 180s -r 700
被压服务cpu使用率为550%左右

locust 1进程的单核cpu使用率为 35%左右

QPS:17757.96,平均耗时:2ms

分析与疑问

1,在场景1的基础上,场景2增加了一倍并发数,但服务端的cpu使用率没有提高,QPS没有提高,而且压测客户端的负载和cpu使用率还是很健康状态。
2,在场景2的基础上,增加了一台压测服务器,分担了其中7个nodes,压力提高符合预期。
3,为什么增加并发数不能提高压力呢?但从网上看到locust的文章,可以百万并发哦。。是我使用方式不对?请大佬们指点指点。

共收到 5 条回复 时间 点赞

场景2和3是在同一个VPS吗,我之前也遇到过加压后,服务端RT不变的情况下,TPS上不去,后来发现是施压侧带宽被占满导致实际压力根本没发出去,增加带宽后问题解决

solxnp 回复

是一样的,并且客户端与服务端还是内网来的

qps到几千的规模,考虑用wrk吧。

rihkddd 回复

wrk支持不了非http协议。

重来看雨 回复

问题应该是出现在施压侧,建议多检查下网络IO、磁盘IO等,还有是否系统的文件句柄设置的过小

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up