2021年Go生态圈RPC框架哪个性能最好?
共 4355字,需浏览 9分钟
·
2021-09-22 23:44
分别测试并发数为100、200、500、1000、2000、5000的场景,测试单个服务在面对不同并发量的情况下的性能。
从客户端统计吞吐率和延迟(latency)
采用共享的client。创建一定数量的client作为client池。
所有的框架都是在“公平”的情况下测试。测试数据都是一致的,采用Protobuf进行测试。虽然有比Protobuf性能更好的序列化框架,但是因为不具有通用性所以不考虑。
测试会进行预热。
避免coordinated omission[3]:测试统计的是等待时间+服务时间,而不是服务端服务时间
统计既包含平均值,也包含P99.9值。
Intel(R) Xeon(R) Silver 4110 CPU @ 2.10GHz,2颗
总物理核8个, 开超线程逻辑核数为32个
内存128G
Go 1.16.6
各框架版本:
ARPC:1.1.5
go std rpc:1.16.6
gRPC:1.39.0
KiteX:0.0.3
RPCX:1.6.5
-rwxr-xr-x 1 smallnest USER 9756450 Aug 1 17:50 arpc_server
-rwxr-xr-x 1 smallnest USER 12800584 Aug 1 17:51 gostd_server
-rwxr-xr-x 1 smallnest USER 12520016 Aug 1 17:52 grpc_server
-rwxr-xr-x 1 smallnest USER 11240760 Aug 1 17:53 kitex_server
-rwxr-xr-x 1 smallnest USER 11810350 Aug 1 17:54 rpcx_server
-rwxr-xr-x 1 smallnest USER 5021980 Aug 1 17:56 arpc_client
-rwxr-xr-x 1 smallnest USER 11109233 Aug 1 17:57 gostd_client
-rwxr-xr-x 1 smallnest USER 12581237 Aug 1 17:58 grpc_client
-rwxr-xr-x 1 smallnest USER 11559544 Aug 1 17:59 kitex_client
-rwxr-xr-x 1 smallnest USER 16065065 Aug 1 18:00 rpcx_client
./xxx_server -d 127.0.0.1:8972
./xxx_client -c 1000 -n 10000000 -s 127.0.0.1:8973
https://github.com/cloudwego/kitex
https://github.com/rpcxio/rpcx-benchmark
http://highscalability.com/blog/2015/10/5/your-load-generator-is-probably-lying-to-you-take-the-red-pi.html
推荐阅读