rpc-benchmarkRPC 性能測試套件
RPC Benchmark
幾乎所有的 RPC 框架都宣稱自己是“高性能”的, 那么實際結(jié)果到底如何呢, 讓我們來做一個性能測試吧.
測試結(jié)果
測試說明
僅限于Java.
客戶端使用JMH進(jìn)行壓測, 32 線程, 10 次預(yù)熱, 3 次運行.
每次運行前都會執(zhí)行 killall java, 但沒有在每輪測試時重啟操作系統(tǒng).
所有類庫版本在發(fā)布時都是最新的, 除非存在bug.
所有框架都盡量參考該項目自帶的Benchmark實現(xiàn).
將會一直持續(xù), 不定期發(fā)布測試結(jié)果.
測試用例
boolean existUser(String email), 判斷某個 email 是否存在.
boolean createUser(User user), 添加一個 User.
User getUser(long id), 根據(jù) id 獲取一個用戶.
Page listUser(int pageNo), 獲取用戶列表.
運行說明
需要兩臺機(jī)器,一臺作為客戶端,一臺作為服務(wù)端.
系統(tǒng)要求為 linux x64, 至少 4GB ram.
客戶端需要安裝 git, jdk 9, scala 12, maven 3.
服務(wù)端需要安裝 jdk 9.
客戶端服務(wù)端均需要設(shè)置 hosts.
10.0.0.88 benchmark-client
10.0.0.99 benchmark-server
服務(wù)端需要添加用戶 benchmark, 需要配置成客戶端免密登錄, 也就是客戶端可以通過如下方式訪問服務(wù)端.
ssh benchmark@benchmark-server "ls -lh"
客戶端執(zhí)行如下命令, 結(jié)果輸出到 benchmark/benchmark-result.
git clone https://github.com/hank-whu/rpc-benchmark.git
cd rpc-benchmark
scala benchmark.scala
