locust 使用的疑問

重来看雨發表於2020-06-30

背景

今天使用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的文章,可以百萬併發哦。。是我使用方式不對?請大佬們指點指點。

相關文章