今天使用 locust 分布式压测一个 grpc 协议的服务 (第一次使用 locust 咳咳),但压测过程中,发现 locust 无法通过增加并发而提高被压服务的 cpu 使用率,QPS 等。后续增加了 3 台压测客户端机器,才把服务端的 cpu 使用率压满,这明显不科学啊。。
1,服务端 8 核 16G
2,客户端 8 核 16G
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
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
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 的文章,可以百万并发哦。。是我使用方式不对?请大佬们指点指点。