RPC Benchmark Round 2

測試說明

  • 僅限于 Java
  • 客戶端使用 JMH 進(jìn)行壓測, 32 線程, 3 輪預(yù)熱 3 輪測試, 每輪 10s
  • 每次運(yùn)行前都會執(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), 獲取用戶列表

運(yùn)行結(jié)果

生成時間: 2018-03-25 13:25:48
硬件環(huán)境: 阿里云 ecs.c5.xlarge Intel Xeon Platinum 8163, 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 122.675 0.262 0.387 0.581 2.001
jupiter 120.029 0.267 0.364 0.59 4.301
thrift 96.589 0.332 0.633 1.174 1.778
netty 91.215 0.372 0.403 0.471 0.767
turbo-rest 83.689 0.384 0.841 1.501 3.971
undertow 83.66 0.369 0.802 1.446 3.415
undertow-async 73.534 0.433 0.898 1.708 5.604
dubbo-kryo 61.077 0.528 0.673 0.915 3.891
dubbo 60.481 0.533 0.677 0.868 3.199
motan 54.075 0.583 0.907 1.858 12.206
rapidoid 49.32 0.65 1.97 3.924 10.764
hprose 39.489 0.845 0.506 4.239 40.239
springwebflux 29.885 1.076 1.653 2.183 8.139
grpc 26.896 1.129 1.425 1.679 4.08
springboot 23.121 1.409 1.962 11.534 25.952

createUser

framework thrpt (ops/ms) avgt (ms) p90 (ms) p99 (ms) p999 (ms)
jupiter 108.155 0.298 0.417 0.69 4.415
turbo-rpc 96.085 0.336 0.454 0.664 2.941
thrift 91.383 0.354 0.667 1.231 1.884
undertow 82.799 0.392 0.815 1.45 3.856
turbo-rest 77.048 0.395 0.75 1.376 4.801
undertow-async 70.419 0.464 0.827 1.475 5.983
netty 70.157 0.439 0.514 0.603 0.932
motan 50.684 0.645 1.006 2.097 12.452
dubbo-kryo 45.009 0.739 0.921 1.145 5.12
hprose 34.056 0.998 0.564 38.142 40.436
grpc 28.261 1.088 1.466 1.718 3.498
springwebflux 26.934 1.156 1.776 2.347 8.831
dubbo 26.672 1.207 1.544 1.925 5.054
springboot 23.156 1.417 2.003 11.649 27.537
rapidoid 19.033 1.689 1.116 30.245 50.463

getUser

framework thrpt (ops/ms) avgt (ms) p90 (ms) p99 (ms) p999 (ms)
turbo-rpc 106.83 0.304 0.452 0.655 3.224
jupiter 104.561 0.304 0.434 0.74 4.481
thrift 91.213 0.351 0.669 1.235 1.896
undertow 81.5 0.404 0.863 1.612 4.252
turbo-rest 71.833 0.448 0.759 1.415 5.825
undertow-async 69.805 0.451 0.804 1.452 4.768
netty 68.668 0.508 0.517 0.543 0.611
motan 50.618 0.626 0.986 1.993 12.222
dubbo-kryo 48.287 0.665 0.817 1.031 5.087
rapidoid 43.454 0.74 2.437 5.054 13.721
hprose 43.037 0.766 0.778 1.391 40.042
grpc 28.437 1.037 1.374 1.647 3.83
dubbo 24.487 1.187 1.507 2.011 7.137
springwebflux 24.419 1.313 2.085 2.568 9.11
springboot 21.619 1.509 2.163 11.829 28.279

listUser

framework thrpt (ops/ms) avgt (ms) p90 (ms) p99 (ms) p999 (ms)
jupiter 42.076 0.754 1.343 2.58 5.767
turbo-rpc 39.544 0.862 1.894 2.396 6.226
thrift 30.629 1.048 2.03 4.092 10.223
undertow 30.1 1.063 1.489 2.273 9.798
grpc 29.788 1.038 1.331 1.804 7.528
motan 28.702 1.102 1.806 3.351 11.64
undertow-async 28.581 1.119 1.604 2.56 10.153
netty 23.24 1.494 1.53 1.612 4.549
rapidoid 20.166 1.604 1.497 21.725 39.911
turbo-rest 18.627 1.74 2.134 3.637 11.554
springwebflux 18.208 1.76 2.748 3.346 11.289
hprose 17.308 1.85 2.023 2.666 58.524
dubbo-kryo 17.054 1.867 2.462 3.391 8.618
springboot 14.813 2.175 3.338 14.516 32.309
dubbo 3.833 8.338 11.289 14.942 19.847

更新說明

1.硬件變化, 阿里云 ecs.c4.xlarge 沒有了, 只能使用 ecs.c5.xlarge
2.軟件變化, java 9 升級為 java 10
3.測試方法變化, "10 輪預(yù)熱 3 輪測試 每輪 1s" 修改為 "3 輪預(yù)熱 3 輪測試 每輪 10s"
4.aeron: 性能差會丟消息, 沒存在價值, 從 rpc-benchmark 中去掉了
5.jupiter: 作者 fengjiachun 親自修改測試參數(shù), 非常感謝
6.hprose: 作者 andot 親自修改測試參數(shù), 非常感謝
7.thrift: 連接數(shù)由 4 個增加到 32 個, 連接池修改為分段鎖實現(xiàn)
8.其他: 常規(guī)版本升級, 都升級到了最新版本 (dubbo 2.6.1 存在 bug浪听,繼續(xù)使用 2.6.0)

免責(zé)聲明

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

快速鏈接

RPC Benchmark Round 1
rpc-benchmark 測試說明
rpc-benchmark 項目代碼

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異椿息,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)坷衍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進(jìn)店門寝优,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人枫耳,你說我怎么就攤上這事乏矾。” “怎么了?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵钻心,是天一觀的道長凄硼。 經(jīng)常有香客問我,道長捷沸,這世上最難降的妖魔是什么摊沉? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮痒给,結(jié)果婚禮上说墨,老公的妹妹穿的比我還像新娘。我一直安慰自己侈玄,他們只是感情好婉刀,可當(dāng)我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布吟温。 她就那樣靜靜地躺著序仙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鲁豪。 梳的紋絲不亂的頭發(fā)上潘悼,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天,我揣著相機(jī)與錄音爬橡,去河邊找鬼治唤。 笑死,一個胖子當(dāng)著我的面吹牛糙申,可吹牛的內(nèi)容都是我干的宾添。 我是一名探鬼主播,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼柜裸,長吁一口氣:“原來是場噩夢啊……” “哼缕陕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起疙挺,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤扛邑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后铐然,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蔬崩,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年搀暑,在試婚紗的時候發(fā)現(xiàn)自己被綠了沥阳。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡自点,死狀恐怖桐罕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤冈绊,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布侠鳄,位于F島的核電站,受9級特大地震影響死宣,放射性物質(zhì)發(fā)生泄漏伟恶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一毅该、第九天 我趴在偏房一處隱蔽的房頂上張望博秫。 院中可真熱鬧,春花似錦眶掌、人聲如沸挡育。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽即寒。三九已至,卻和暖如春召噩,著一層夾襖步出監(jiān)牢的瞬間母赵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工具滴, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留凹嘲,地道東北人。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓构韵,卻偏偏與公主長得像周蹭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子疲恢,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 幾乎所有的 RPC 框架都宣稱自己是“高性能”的, 那么實際結(jié)果到底如何呢, 讓我們來做一個性能測試吧.項目地址:...
    魯小憨閱讀 5,293評論 4 6
  • 在 RPC Benchmark Round 1 中 turbo 的成績一騎絕塵凶朗,實力碾壓眾 rpc 框架。對此冈闭,很...
    魯小憨閱讀 7,891評論 1 5
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理俱尼,服務(wù)發(fā)現(xiàn),斷路器萎攒,智...
    卡卡羅2017閱讀 134,665評論 18 139
  • # 背景 # 關(guān)鍵設(shè)計點 ## 模塊化 ## 資源隔離 ## 權(quán)限控制 ### RPC框架的需求分析和概要設(shè)計 #...
    65902f77f84d閱讀 1,205評論 0 0
  • 在某種程度上耍休,不可否認(rèn)人都是自私的刃永。我們都是凡夫俗子,特別是在工作上做不到那種所謂的無私羊精。 01 與一朋友約下班后...
    遇見小莊閱讀 1,021評論 0 0