ghz做grpc服务压测
原创
©著作权归作者所有:来自51CTO博客作者来一块提拉米苏的原创作品,请联系作者获取转载授权,否则将追究法律责任
搭建的grpc服务是线下的服务,但是要求qps比较高,那么自己先进行一下压测吧
准备
- ghz:https://github.com/bojand/ghz/releases直接下载对应的包,解压即可使用
- proto:安装proto,并且准备好proto的协议文件
压测脚本
# 2个线程,100次请求,慢慢扩大c和n的值,防止把服务打挂,一般来说c的大小是grpc服务指定max-works数
./ghz -c 10 -n 10000 \
--insecure \
# 指定.proto协议的位置
--proto inference.proto \
# 指定请求的方法
--call inference.Inference.request \
# 指定数据
-d '{"data":"数据"}' \
xxx.xxx.xxx.xxx:50050
结果
Summary:
Count: 10000
Total: 1.79 s # 10000次请求总耗时
Slowest: 23.89 ms # 最慢耗时
Fastest: 0.80 ms # 最快耗时
Average: 1.73 ms # 平均请求耗时
Requests/sec: 5586.08 # qps
Response time histogram:
0.801 [1] |
3.109 [9834] |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
5.418 [88] |
7.727 [15] |
10.036 [10] |
12.345 [6] |
14.654 [2] |
16.963 [9] |
19.272 [0] |
21.581 [0] |
23.890 [10] |
Latency distribution:
10 % in 1.20 ms
25 % in 1.38 ms
50 % in 1.62 ms
75 % in 1.90 ms
90 % in 2.21 ms
95 % in 2.42 ms
99 % in 3.40 ms
Status code distribution:
[OK] 9975 responses
[Unavailable] 25 responses
Error distribution:
[25] rpc error: code = Unavailable desc = the connection is draining