记一次WebApi与Grpc性能测试及对比

一、背景

        公司在做系统内部服务调用的技术选型,本次测试主要是分析WebApi和Grpc的性能。本次测试将会从内存,CPU,网络传输,响应时间和TPS来分析。

二、环境

       .Net Core 3.1

        Window 10

三、测试工具

        Jmeter , WinDump , WireShark

四、准备

        首先创建一个WebApi项目,Grpc项目用于提供服务。

        本次主要是做系统内部服务调用的技术选型,所以要再次创建WebApi项目来作为调用方。

五、过程

1. 由Jmeter发起并发请求给WebApi,WebApi调用Grpc服务拿到数据,再返回给Jemter。

2. 本次测试为100QPS/每秒,次数为60次,服务处理处理时间设置为500ms。

3. 过程

六、测试

6.1 Grpc测试

6.1.1 测试结果

参数

第一次

第二次

第三次

平均

调用方内存情况/MB

210

212

206

209.33

服务内存情况/MB

130

137

128

131.67

响应时间

(ms)

最大值

90416

94753

94299

93156

最小值

555

551

561

555.67

中位数

2515

2918

2881

2771.33

平均值

4806

4808

4844

4819.33

90%低于

6565

5626

5898

6029.67

95%低于

12662

7777

9922

10120.33

99%低于

85973

89941

88612

88175.33

TPS

19.2

19.9

19.6

19.57

6.1.2 内存情况

调用方

服务方

第一次

第二次

第三次

6.1.3 数据包大小

1355 bytes

6.2 WebApi测试

6.2.1 测试结果

参数

第一次

第二次

第三次

平均

调用方内存情况/MB

545

536

396

492.33

服务内存情况/MB

277

276

276

276.33

响应时间

(ms)

最大值

93895

93266

91823

92994.67

最小值

579

571

575

575

中位数

5091

4885

4930

4968.67

平均值

6558

6480

6461

6499.67

90%低于

7390

7947

7992

7776.33

95%低于

8815

10005

9011

9277

99%低于

91638

91629

89534

90933.67

TPS

14.8

15

15

14.93

6.2.2 内存情况

调用方

服务方

第一次

第二次

第三次

6.2.3 数据包大小

4545 bytes

七、总结

参数

Grpc

WebApi

调用方内存情况/MB

209.33

492.33(+135.19%)

服务内存情况/MB

131.67

276.33(+109.87%)

响应时间

(ms)

最大值

93156(+1.73%)

92994.67

最小值

555.67

575(+3.48%)

中位数

2771.33

4968.67(+79.29%)

平均值

4819.33

6499.67(+34.87%)

90%低于

6029.67

7776.33(+28.97%)

95%低于

10120.33(+9.09%)

9277

99%低于

88175.33

90933.67(+3.13%)

TPS

19.57(+31.08%)

14.93

传输(byte)

1355

4545(+235.42%)

  • 内存情况, WebApi不管是调用方还是服务都是Grpc的2倍之上
  • Cpu方面,WebApi调用方的CPU负载是Grpc数倍,且Grpc服务的Cpu使用率相对稳定,WebApi服务Cpu使用率波动较大。
  • 响应时间,Grpc显著低于WebApi,且TPS高于WebApi。
  • 数据方面,WebApi的数据包大小是Grpc的3倍之上。

综上情况,建议服务内部的调用采用Grpc,节约系统资源且提升系统吞吐量。

若有收获,就点个赞吧

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值