RPC Benchmark Round 5,主流RCP框架性能评测

测试说明

  • 仅限于 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), 获取用户列表

运行结果

  • 生成时间: 2019-02-11 21:56:27
  • 硬件环境: 阿里云 ic5 ecs.ic5.2xlarge 8vCPU 8GB Intel Xeon(Skylake) Platinum 8163 2.5GHz 2.5Gbps 80万PPS
  • 软件环境: Ubuntu x64 18.04, OpenJDK 64-Bit Server VM 11.0.2+9
  • 启动参数: java -server -Xmx1g -Xms1g -XX:+UseG1GC

existUser

framework thrpt (ops/ms) avgt (ms) p90 (ms) p99 (ms) p999 (ms)
netty 164.575 0.194 0.259 0.344 0.442
turbo-rpc 161.511 0.199 0.262 0.353 0.452
servicecomb 110.166 0.293 0.34 0.418 1.288
thrift 101.398 0.31 0.597 1.12 1.626
undertow 89.628 0.363 0.82 1.425 1.907
turbo-rest 85.811 0.371 0.791 1.356 2.009
armeria 82.97 0.389 0.746 1.198 2.52
undertow-async 80.064 0.407 0.9 1.559 2.785
motan 77.789 0.413 0.554 0.808 4.043
springwebflux 55.141 0.59 0.729 0.831 4.071
springboot-undertow 49.449 0.656 0.821 5.03 17.138
rapidoid 48.622 0.714 451.412 905.97 1350.566
sofa 46.329 0.693 0.899 1.37 5.587
springboot 42.591 0.775 1.063 4.719 11.193
hprose 40.307 0.81 0.506 2.419 44.237
grpc 24.928 1.31 1.606 1.733 2.114
dubbo NaN NaN NaN NaN NaN
dubbo-kryo NaN NaN NaN NaN NaN

createUser

framework thrpt (ops/ms) avgt (ms) p90 (ms) p99 (ms) p999 (ms)
netty 154.911 0.209 0.268 0.356 0.463
turbo-rpc 147.889 0.217 0.284 0.378 0.509
servicecomb 104.836 0.307 0.36 0.449 1.384
thrift 97.385 0.33 0.633 1.186 1.735
undertow 86.65 0.353 0.809 1.391 1.964
turbo-rest 84.658 0.379 0.811 1.38 2.273
armeria 79.6 0.397 0.652 1.112 2.826
undertow-async 78.527 0.413 0.9 1.54 2.843
motan 73.332 0.429 0.589 0.856 4.603
springwebflux 52.109 0.619 0.756 0.87 4.284
springboot-undertow 45.175 0.713 1.047 4.424 13.785
springboot 42.268 0.792 1.079 4.702 11.796
sofa 40.143 0.796 0.994 1.376 5.571
hprose 36.748 0.961 0.546 41.878 44.433
dubbo 24.382 1.317 1.679 1.901 3.998
dubbo-kryo 23.351 1.352 1.751 1.896 19.464
grpc 22.752 1.366 1.622 1.759 2.283
rapidoid 0.249 143.886 2336.227 3229.614 3670.016

getUser

framework thrpt (ops/ms) avgt (ms) p90 (ms) p99 (ms) p999 (ms)
netty 151.653 0.212 0.278 0.383 0.492
turbo-rpc 147.862 0.215 0.292 0.391 0.496
servicecomb 106.251 0.306 0.359 0.449 1.376
thrift 97.936 0.331 0.631 1.182 1.761
undertow 85.706 0.371 0.827 1.425 1.722
turbo-rest 82.729 0.389 0.857 1.454 2.13
armeria 82.262 0.4 0.721 1.128 2.384
undertow-async 79.868 0.411 0.873 1.493 1.997
motan 72.961 0.447 0.569 0.834 4.53
springwebflux 52.11 0.619 0.752 0.849 3.322
hprose 50.001 0.667 0.734 1.075 42.336
rapidoid 46.558 0.767 448.791 897.581 1367.2
springboot-undertow 45.495 0.711 0.898 5.358 19.595
sofa 40.511 0.801 1.017 1.364 6.398
springboot 39.208 0.829 1.157 4.997 11.747
dubbo 24.413 1.305 1.45 1.706 3.228
grpc 24.187 1.266 1.583 1.755 2.251
dubbo-kryo NaN NaN NaN NaN NaN

listUser

framework thrpt (ops/ms) avgt (ms) p90 (ms) p99 (ms) p999 (ms)
netty 73.303 0.431 0.909 1.223 2.09
turbo-rpc 67.42 0.456 1.155 1.382 1.991
thrift 62.248 0.52 0.977 1.872 4.235
servicecomb 54.647 0.583 0.806 1.219 3.912
undertow 52.255 0.611 1.438 2.347 5.784
undertow-async 50.235 0.627 1.55 2.687 6.717
armeria 48.241 0.661 1.039 1.855 6.197
motan 44.201 0.723 0.985 1.458 5.972
springwebflux 38.353 0.834 1.006 1.257 5.333
turbo-rest 36.102 0.883 2.001 4.186 7.995
grpc 27.286 1.166 1.286 1.389 4.16
springboot-undertow 27.184 1.158 1.475 7.406 19.431
rapidoid 26.665 1.44 448.791 892.338 1780.482
springboot 25.04 1.258 1.712 6.267 11.78
hprose 22.529 1.384 1.513 1.819 24.62
dubbo-kryo 16.52 1.904 1.997 2.499 42.729
sofa 12.276 2.622 3.822 7.135 12.321
dubbo 3.716 8.727 9.404 10.207 28.312

更新说明

  1. 硬件升级到8核
  2. jdk 升级为 AdoptOpenJDK-11.0.2
  3. 各个框架均升级到最新版本

免责声明

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

快速连接

往期评测:java

测试说明:git

相关文章
相关标签/搜索