RPC Benchmark Round 3

測試說明

  • 僅限于 Java
  • 客戶端使用 JMH 進行壓測, 32 線程, 3 輪預(yù)熱 3 輪測試, 每輪 10s
  • 每次運行前都會執(zhí)行 killall java, 但沒有在每輪測試時重啟操作系統(tǒng)
  • 所有類庫版本在發(fā)布時都是最新的, 除非存在 bug
  • 所有框架都盡量參考該項目自帶的 Benchmark 實現(xiàn)
  • 將會一直持續(xù), 不定期發(fā)布測試結(jié)果

測試用例

  1. boolean existUser(String email), 判斷某個 email 是否存在
  2. boolean createUser(User user), 添加一個 User
  3. User getUser(long id), 根據(jù) id 獲取一個用戶
  4. Page<User> listUser(int pageNo), 獲取用戶列表

運行結(jié)果

生成時間: 2018-05-12 21:15:11
硬件環(huán)境: 阿里云 ecs.hfc5.xlarge Intel Xeon Gold 6149, 4CPU 8GB RAM 兩臺
軟件環(huán)境: Ubuntu x64 16.04.5, Java HotSpot(TM) 64-Bit Server VM 10+46
啟動參數(shù): java -server -Xmx1g -Xms1g -XX:MaxDirectMemorySize=1g -XX:+UseG1GC

existUser

framework thrpt (ops/ms) avgt (ms) p90 (ms) p99 (ms) p999 (ms)
turbo-rpc 152.012 0.21 0.318 0.447 0.669
servicecomb 129.413 0.246 0.294 0.358 1.279
jupiter 128.015 0.249 0.36 0.543 3.826
thrift 117.827 0.273 0.52 0.97 1.454
netty 102.939 0.304 0.335 0.386 0.815
turbo-rest 95.774 0.341 0.845 1.505 4.047
undertow 92.956 0.342 0.88 1.552 3.532
undertow-async 82.539 0.38 0.773 1.604 5.153
armeria-http 75.795 0.411 0.731 1.305 6.054
dubbo 74.731 0.43 0.532 0.7 3.361
dubbo-kryo 74.728 0.43 0.532 0.713 3.758
motan 61.324 0.516 0.813 2.013 11.862
rapidoid 58.35 0.554 1.634 3.26 10.568
hprose 45.945 0.735 0.414 2.39 40.239
springboot-undertow 34.374 0.938 1.135 8.764 21.561
springwebflux 32.075 1.008 1.571 1.995 8.249
grpc 31.134 1.065 1.294 1.509 6.971
springboot 26.885 1.185 1.599 9.945 23.298

createUser

framework thrpt (ops/ms) avgt (ms) p90 (ms) p99 (ms) p999 (ms)
servicecomb 124.015 0.255 0.306 0.382 1.436
jupiter 114.996 0.275 0.412 0.633 4.002
turbo-rpc 114.837 0.282 0.376 0.543 0.823
thrift 110.952 0.294 0.563 1.041 1.606
undertow 93.593 0.346 0.823 1.479 3.903
turbo-rest 88.512 0.353 0.894 1.618 5.087
netty 85.774 0.388 0.428 0.511 0.791
undertow-async 79.475 0.409 0.8 1.528 5.235
armeria-http 65.109 0.498 0.688 1.98 7.922
motan 56.708 0.561 0.893 1.892 11.289
dubbo-kryo 54.754 0.583 0.732 0.938 5.169
hprose 37.22 0.933 0.484 38.601 43.451
dubbo 31.811 0.988 1.284 1.642 7.471
springwebflux 30.212 1.084 1.694 2.13 6.824
grpc 29.992 1.029 1.321 1.544 4.5
springboot-undertow 28.142 1.139 2.003 6.398 13.976
springboot 26.411 1.196 1.647 10.994 26.771
rapidoid 22.434 1.438 0.913 26.345 46.137

getUser

framework thrpt (ops/ms) avgt (ms) p90 (ms) p99 (ms) p999 (ms)
turbo-rpc 133.121 0.241 0.364 0.516 0.743
servicecomb 122.801 0.262 0.313 0.391 2.651
jupiter 111.682 0.29 0.45 0.689 4.301
thrift 110.368 0.289 0.553 1.02 1.573
undertow 87.382 0.343 0.981 1.765 3.945
turbo-rest 81.373 0.392 0.696 1.397 4.383
undertow-async 81.162 0.405 0.773 1.534 3.777
netty 73.999 0.421 0.442 0.472 0.886
armeria-http 70.776 0.448 0.753 1.389 4.366
motan 60.062 0.542 0.87 1.964 11.813
dubbo-kryo 55.375 0.564 0.722 0.951 5.317
rapidoid 51.64 0.625 2.019 4.076 11.72
hprose 48.659 0.649 0.701 1.356 40.042
dubbo 32.924 0.974 1.245 1.692 7.406
grpc 30.941 1.042 1.233 1.462 3.453
springboot-undertow 30.694 1.063 1.27 9.241 21.463
springwebflux 26.173 1.232 1.915 2.359 6.955
springboot 24.969 1.297 1.743 10.879 27.329

listUser

framework thrpt (ops/ms) avgt (ms) p90 (ms) p99 (ms) p999 (ms)
jupiter 46.89 0.684 1.057 1.8 9.273
turbo-rpc 45.852 0.713 1.745 2.126 7.274
servicecomb 45.218 0.707 0.977 1.718 6.94
thrift 34.813 0.91 1.78 3.727 9.208
grpc 34.112 0.916 1.2 1.491 6.151
motan 32.584 0.982 1.632 2.998 10.928
undertow 32.094 1.01 1.352 2.171 9.29
undertow-async 32.094 0.994 1.298 2.494 10.943
armeria-http 31.701 1.018 1.579 2.9 9.945
netty 26.653 1.18 1.335 1.743 4.538
rapidoid 23.563 1.368 1.128 20.873 38.076
turbo-rest 21.274 1.516 1.823 3.166 9.929
dubbo-kryo 20.664 1.553 2.087 2.982 8.716
hprose 20.017 1.602 1.597 2.044 50.397
springwebflux 19.617 1.631 2.56 3.084 9.077
springboot-undertow 18.478 1.745 2.908 11.944 21.758
springboot 16.825 1.909 2.585 13.23 34.275
dubbo 4.683 6.922 9.224 12.534 19.741

更新說明

  1. 硬件變化, 升級為 ecs.hfc5.xlarge Intel Xeon Gold 6149
  2. 添加 3 個新的測評項目:armeria servicecomb springboot-undertow
  3. 其他: 常規(guī)版本升級, 都升級到了最新版本 (dubbo 2.6.1 存在 bug,繼續(xù)使用 2.6.0)

致謝

特別感謝下列人員對本項目的大力支持

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

免責(zé)聲明

  • 能力所限錯誤在所難免, 本測試用例及測試結(jié)果僅供參考
  • 如果你認為 xxx 框架的代碼或配置存在問題,那么歡迎發(fā)起 Pull Request
  • 利益相關(guān): 本測試用例作者同時為 turbo undertow-async 的作者

快速鏈接

往期評測:
RPC Benchmark Round 2
RPC Benchmark Round 1

測試說明:
rpc-benchmark 測試說明
rpc-benchmark 項目代碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 測試說明 僅限于 Java 客戶端使用 JMH 進行壓測, 32 線程, 3 輪預(yù)熱 3 輪測試, 每輪 10s ...
    魯小憨閱讀 1,899評論 1 3
  • 幾乎所有的 RPC 框架都宣稱自己是“高性能”的, 那么實際結(jié)果到底如何呢, 讓我們來做一個性能測試吧.項目地址:...
    魯小憨閱讀 5,407評論 4 6
  • 在 RPC Benchmark Round 1 中 turbo 的成績一騎絕塵,實力碾壓眾 rpc 框架。對此,很...
    魯小憨閱讀 8,003評論 1 5
  • 在 RPC Benchmark Round 1 中,Turbo 性能炸裂表現(xiàn)強悍,并且在 listUser 這一項...
    魯小憨閱讀 10,125評論 4 26
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139

友情鏈接更多精彩內(nèi)容