go grpc测试_Grpc — 整体性能测试

085171e88c6112feca33354505dab346.png

当然最最最重要的就是性能,在使用RPC的场景下对于多个程序通讯完成业务所消耗的性能是有巨大挑战的,笔者也做了一套完整的性能测试大家可以继续往下看。

附上:

喵了个咪的博客:w-blog.cn

博文实例demo:GitHub - sunmi-OS/grpc-php-to-golang-demo

grpc官网:grpc / grpc.io

protobuf代码仓库:Releases · protocolbuffers/protobuf · GitHub

一,服务器配置

  • E5 - 2680V2 * 4
  • 8G ddr3 1600Mhz
  • ab工具压测

分别对以下两种场景进行测试:

  • GO -> (Grpc) -> GO
  • PHP -> (Grpc) -> GO
  • GO -> (HTTP) -> GO
  • PHP -> (HTTP) -> GO

GO通过一个开发一个http的api来进行rpc调用,下面称为api_client:

fcfa5a05d445124901a59d3625e5a7c7.png

二,基准线

压测需要一个基准线作为参考

PHP直接echo 基准线是16K

c68cf634eb8d6ca315fc2f40ff1cb377.png

go echo 基准是 20k

c98d1de5a36908ca19e8f9a00b989e2e.png

go echo -k 基准是74K

11de4422abac2dc283be0191f9c3f6d1.png

a7049cec2b68d1e392f960a2a0adf710.png

三,GO -> (Grpc) -> GO

CPU资源消耗 363%,压力17K,相对20K基准差距3K

b80be92a393a2ade93635f3fb56a8d7c.png

使用 -k 维持链接 CPU资源消耗 358%,压力28K,相对74K基准差距46K

4db73c2c2b319a0c13c1dc28ce1cd230.png

9cd2e07d5469482d31cc847377fb408f.png

四,PHP -> (Grpc) -> GO

资源消耗396%,压力3.5K,相对16K基准差距12.5K

7f73144d84bd0d2c864aee082f703143.png

a0a48dca3d19f07457f8c23448a949be.png

-k 资源消耗393%,压力3.4K,相对16K基准差距12.6K

d5d91a41b02a9e1e5ecfc77f9655255f.png

压测结果

adb782f92e6e1701e91014bebbfc55fb.png

五,GO -> (HTTP) -> GO

资源消耗361%,压力8K,相对74K基准差距66K

c49412635e00959746973b9788223f02.png

bcd202ec86816fde63b26d7cb6cfea5f.png

-k资源消耗357%,压力11K,相对74K基准差距63K

29350b935cd69b4c0ee945efb9a82982.png

ef10911bf6fe1aa0eb43c310e3cf17fd.png

六,PHP -> (HTTP) -> GO

资源消耗386%,压力6.8K,相对16K基准差距9.2K

19c20c0f4fc862480dfbe0c87b5ca67d.png

9befdf71579bb46baf0b5ff73e6594d9.png

a6f5b106b9cfb1ea272ab5b91afd7b6b.png

七,结论

  • GO 基准 74k
  • PHP 基准 16k
  • GO -> (Grpc) -> GO 压力28K
  • PHP -> (Grpc) -> GO 压力 3.5K
  • GO -> (HTTP) -> GO 压力8.3K
  • PHP -> (HTTP) -> GO 压力6.8K

更具整体结果得到以下结论:

  • 对于GO与GO之前通讯Grpc远远优于http协议
  • PHP调用GO提供的服务,都有很大的开销,http整体资源消耗和并发能力优于Grpc,Grpc依赖太重导致了PHP引入文件很慢,PHP更时候HTTP调用方式
PS:那么有没有什么方式只需要开发一次就能都支持HTTP和Grpc,PHP调用http,Go调用Grpc,因此就有了后面的Grpc-gateway的内容了

版权声明:本文为weixin_33273250原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。