RPC Benchmark Round 3

测试说明

  • 仅限于 Java
  • 客户端使用 JMH 进行压测, 32 线程, 3 轮预热 3 轮测试, 每轮 10s
  • 每次运行前都会执行 killall java, 但没有在每轮测试时重启操作系统
  • 所有类库版本在发布时都是最新的, 除非存在 bug
  • 所有框架都尽量参考该项目自带的 Benchmark 实现
  • 将会一直持续, 不定期发布测试结果

测试用例

  1. boolean existUser(String email), 判断某个 email 是否存在
  2. boolean createUser(User user), 添加一个 User
  3. User getUser(long id), 根据 id 获取一个用户
  4. Page<User> listUser(int pageNo), 获取用户列表

运行结果

生成时间: 2018-05-12 21:15:11
硬件环境: 阿里云 ecs.hfc5.xlarge Intel Xeon Gold 6149, 4CPU 8GB RAM 两台
软件环境: Ubuntu x64 16.04.5, Java HotSpot(TM) 64-Bit Server VM 10+46
启动参数: java -server -Xmx1g -Xms1g -XX:MaxDirectMemorySize=1g -XX:+UseG1GC

existUser

frameworkthrpt (ops/ms)avgt (ms)p90 (ms)p99 (ms)p999 (ms)
turbo-rpc152.0120.210.3180.4470.669
servicecomb129.4130.2460.2940.3581.279
jupiter128.0150.2490.360.5433.826
thrift117.8270.2730.520.971.454
netty102.9390.3040.3350.3860.815
turbo-rest95.7740.3410.8451.5054.047
undertow92.9560.3420.881.5523.532
undertow-async82.5390.380.7731.6045.153
armeria-http75.7950.4110.7311.3056.054
dubbo74.7310.430.5320.73.361
dubbo-kryo74.7280.430.5320.7133.758
motan61.3240.5160.8132.01311.862
rapidoid58.350.5541.6343.2610.568
hprose45.9450.7350.4142.3940.239
springboot-undertow34.3740.9381.1358.76421.561
springwebflux32.0751.0081.5711.9958.249
grpc31.1341.0651.2941.5096.971
springboot26.8851.1851.5999.94523.298

createUser

frameworkthrpt (ops/ms)avgt (ms)p90 (ms)p99 (ms)p999 (ms)
servicecomb124.0150.2550.3060.3821.436
jupiter114.9960.2750.4120.6334.002
turbo-rpc114.8370.2820.3760.5430.823
thrift110.9520.2940.5631.0411.606
undertow93.5930.3460.8231.4793.903
turbo-rest88.5120.3530.8941.6185.087
netty85.7740.3880.4280.5110.791
undertow-async79.4750.4090.81.5285.235
armeria-http65.1090.4980.6881.987.922
motan56.7080.5610.8931.89211.289
dubbo-kryo54.7540.5830.7320.9385.169
hprose37.220.9330.48438.60143.451
dubbo31.8110.9881.2841.6427.471
springwebflux30.2121.0841.6942.136.824
grpc29.9921.0291.3211.5444.5
springboot-undertow28.1421.1392.0036.39813.976
springboot26.4111.1961.64710.99426.771
rapidoid22.4341.4380.91326.34546.137

getUser

frameworkthrpt (ops/ms)avgt (ms)p90 (ms)p99 (ms)p999 (ms)
turbo-rpc133.1210.2410.3640.5160.743
servicecomb122.8010.2620.3130.3912.651
jupiter111.6820.290.450.6894.301
thrift110.3680.2890.5531.021.573
undertow87.3820.3430.9811.7653.945
turbo-rest81.3730.3920.6961.3974.383
undertow-async81.1620.4050.7731.5343.777
netty73.9990.4210.4420.4720.886
armeria-http70.7760.4480.7531.3894.366
motan60.0620.5420.871.96411.813
dubbo-kryo55.3750.5640.7220.9515.317
rapidoid51.640.6252.0194.07611.72
hprose48.6590.6490.7011.35640.042
dubbo32.9240.9741.2451.6927.406
grpc30.9411.0421.2331.4623.453
springboot-undertow30.6941.0631.279.24121.463
springwebflux26.1731.2321.9152.3596.955
springboot24.9691.2971.74310.87927.329

listUser

frameworkthrpt (ops/ms)avgt (ms)p90 (ms)p99 (ms)p999 (ms)
jupiter46.890.6841.0571.89.273
turbo-rpc45.8520.7131.7452.1267.274
servicecomb45.2180.7070.9771.7186.94
thrift34.8130.911.783.7279.208
grpc34.1120.9161.21.4916.151
motan32.5840.9821.6322.99810.928
undertow32.0941.011.3522.1719.29
undertow-async32.0940.9941.2982.49410.943
armeria-http31.7011.0181.5792.99.945
netty26.6531.181.3351.7434.538
rapidoid23.5631.3681.12820.87338.076
turbo-rest21.2741.5161.8233.1669.929
dubbo-kryo20.6641.5532.0872.9828.716
hprose20.0171.6021.5972.04450.397
springwebflux19.6171.6312.563.0849.077
springboot-undertow18.4781.7452.90811.94421.758
springboot16.8251.9092.58513.2334.275
dubbo4.6836.9229.22412.53419.741

更新说明

  1. 硬件变化, 升级为 ecs.hfc5.xlarge Intel Xeon Gold 6149
  2. 添加 3 个新的测评项目:armeria servicecomb springboot-undertow
  3. 其他: 常规版本升级, 都升级到了最新版本 (dubbo 2.6.1 存在 bug,继续使用 2.6.0)

致谢

特别感谢下列人员对本项目的大力支持

  1. turbo: hank-whu
  2. jupiter: fengjiachun
  3. hprose: andot
  4. servicecomb: imlidian

免责声明

  • 能力所限错误在所难免, 本测试用例及测试结果仅供参考
  • 如果你认为 xxx 框架的代码或配置存在问题,那么欢迎发起 Pull Request
  • 利益相关: 本测试用例作者同时为 turbo undertow-async 的作者

快速链接

往期评测:
RPC Benchmark Round 2
RPC Benchmark Round 1

测试说明:
rpc-benchmark 测试说明
rpc-benchmark 项目代码

    原文作者:鲁小憨
    原文地址: https://www.jianshu.com/p/caf51f5cfbaa
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞