rpc-benchmarkRPC 性能测试套件
RPC Benchmark
几乎所有的 RPC 框架都宣称自己是“高性能”的, 那么实际结果到底如何呢, 让我们来做一个性能测试吧.
测试结果
测试说明
- 仅限于Java. 
- 客户端使用JMH进行压测, 32 线程, 10 次预热, 3 次运行. 
- 每次运行前都会执行 killall java, 但没有在每轮测试时重启操作系统. 
- 所有类库版本在发布时都是最新的, 除非存在bug. 
- 所有框架都尽量参考该项目自带的Benchmark实现. 
- 将会一直持续, 不定期发布测试结果. 
测试用例
- boolean existUser(String email), 判断某个 email 是否存在. 
- boolean createUser(User user), 添加一个 User. 
- User getUser(long id), 根据 id 获取一个用户. 
- Page listUser(int pageNo), 获取用户列表. 
运行说明
- 需要两台机器,一台作为客户端,一台作为服务端. 
- 系统要求为 linux x64, 至少 4GB ram. 
- 客户端需要安装 git, jdk 9, scala 12, maven 3. 
- 服务端需要安装 jdk 9. 
- 客户端服务端均需要设置 hosts. 
10.0.0.88 benchmark-client
10.0.0.99 benchmark-server
- 服务端需要添加用户 benchmark, 需要配置成客户端免密登录, 也就是客户端可以通过如下方式访问服务端. 
ssh benchmark@benchmark-server "ls -lh"
- 客户端执行如下命令, 结果输出到 benchmark/benchmark-result. 
git clone https://github.com/hank-whu/rpc-benchmark.git
cd rpc-benchmark
scala benchmark.scala
