基准测试
测试环境
在北京3A区
区域,创建如下规格的 RocketMQ 集群。
节点角色 | 数量 | 规格 | 系统 |
---|---|---|---|
Name Server | 1 |
|
Ubuntu Server 16.04.5 LTS 64bit |
Broker | 2 |
|
Ubuntu Server 16.04.5 LTS 64bit |
客户端 | 2 |
|
Ubuntu Server 16.04.5 LTS 64bit |
参数配置
- Broker 主从复制模式:SYNC(同步模式)
- 数据持久化方式:ASYNC_FLUSH(异步模式)
- 消息生产者 JVM 参数:
-server -Xms4g -Xmx4g -Xmn2g -XX:PermSize=128m -XX:MaxPermSize=320m -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -XX:+DisableExplicitGC -verbose:gc -Xloggc:/dev/shm/rmq_srv_gc.log -XX:+PrintGCDetails -XX:-OmitStackTraceInFastThrow -XX:-UseLargePages -XX:+PerfDisableSharedMem -Dorg.apache.rocketmq.client.sendSmartMsg=true
测试代码
来自官方的 benchmark 代码:Producer、Consumer
测试方法
一个客户端节点生产消息到 Broker,另一个客户端节点从 Broker 消费消息,持续 24 小时。
测试结果
指标 | 值 | 说明 |
---|---|---|
CPU利用率 | ~ 90% | 4核心 |
内存使用率 | ~ 50% | 总内存8G |
TPS | ~ 2000 | - |