美文网首页互联网科技
RPC Benchmark Round 5

RPC Benchmark Round 5

作者: 鲁小憨 | 来源:发表于2019-02-11 23:02 被阅读54次

    测试说明

    • 仅限于 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 的作者

    快速链接

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

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

    相关文章

      网友评论

        本文标题:RPC Benchmark Round 5

        本文链接:https://www.haomeiwen.com/subject/srbceqtx.html