测试4.8.0版本RocketMQ实例性能(基础场景)
本章节主要测试RocketMQ实例4.8.0版本不同产品规格在发送1 KB大小的消息,且消费堆积数较大时,同时进行生产和消费,得到实例的生产消费性能。
测试环境
进行测试前,您需要先构建如下的测试环境:
- 购买如表1所示实例,购买步骤请参考购买实例。
表1 实例参数 名称
规格
代理数量
存储空间
ACL访问
公网访问
SSL
rocketmq-01
rocketmq.4u8g.cluster.small
1
超高I/O 1500GB
开启
关闭
不开启
rocketmq-02
rocketmq.4u8g.cluster
1
超高I/O 1500GB
开启
关闭
不开启
rocketmq-03
rocketmq.8u16g.cluster
1
超高I/O 1500GB
开启
关闭
不开启
rocketmq-04
rocketmq.12u24g.cluster
1
超高I/O 1500GB
开启
关闭
不开启
rocketmq-05
rocketmq.16u32g.cluster
1
超高I/O 1500GB
开启
关闭
不开启
- 创建如表2所示Topic,创建步骤请参考创建Topic。
- 创建如表3所示消费组,创建步骤请参考创建消费组。
- 创建如表4所示用户,创建步骤请参考配置RocketMQ ACL用户。
- 购买1台ECS服务器(区域、可用区、虚拟私有云、子网、安全组与RocketMQ实例保持一致,Linux系统),具体步骤请参考购买弹性云服务器。
- 在ECS中安装Java JDK,并配置JAVA_HOME与PATH环境变量。
export JAVA_HOME=/root/jdk1.8.0_231 export PATH=$JAVA_HOME/bin:$PATH
- 下载测试工具。
wget https://dist.apache.org/repos/dist/release/rocketmq/5.1.4/rocketmq-all-5.1.4-bin-release.zip
- 解压测试工具。
unzip rocketmq-all-5.1.4-bin-release.zip
测试命令
生产命令:
在“benchmark”文件夹下,执行如下命令:
sh producer.sh -n "${连接地址}" -t ${Topic名称} -s ${消息大小} -w ${生产者线程数} -a true -ak ${ACL用户名} -sk ${ACL密钥} 
如上命令中,-a true表示开启ACL访问控制。
参数名称 | 说明 | 取值样例 |
|---|---|---|
连接地址 | RocketMQ实例的连接地址,在RocketMQ控制台的“概览 > 连接信息”中获取。 | 192.168.111.182:8100;192.168.111.14:8100 |
Topic名称 | RocketMQ实例下创建的Topic名称,从表2中获取。 | topic-01 |
消息大小 | 自定义生产消息的大小。 RocketMQ支持的最大消息大小是4M。 | 1024(1 KB) |
生产者线程数 | 生产者的线程数。 | 128 |
ACL用户名 | 自定义用户名称,用于识别不同的用户,从表4中获取。 | test |
ACL密钥 | 自定义用户的密钥,从表4中获取。 | XXXXXXXX |
将表1的取值示例代入命令示例中,执行如下命令生产消息:
sh producer.sh -n "192.168.111.182:8100;192.168.111.14:8100" -t topic-01 -s 1024 -w 128 -a true -ak test -sk XXXXXXXX
消费命令:
在“benchmark”文件夹下,执行如下命令:
sh consumer.sh -n "${连接地址}" -t ${Topic名称} -g ${消费组名称} -a true -ak ${ACL用户名} -sk ${ACL密钥} 参数名称 | 说明 | 取值样例 |
|---|---|---|
连接地址 | RocketMQ实例的连接地址,在RocketMQ控制台的“概览 > 连接信息”中获取。 | 192.168.111.182:8100;192.168.111.14:8100 |
Topic名称 | RocketMQ实例下创建的Topic名称,从表2中获取。 | topic-01 |
消费组名称 | RocketMQ实例下创建的消费组名称,从表3中获取。 | group-01 |
ACL用户名 | 自定义用户名称,用于识别不同的用户,从表4中获取。 | test |
ACL密钥 | 自定义用户的密钥,从表4中获取。 | XXXXXXXX |
将表6的取值示例代入命令示例中,执行如下命令消费消息:
sh consumer.sh -n "192.168.111.182:8100;192.168.111.14:8100" -t topic-01 -g group-01 -a true -ak test -sk XXXXXXXX
测试过程
- 同时启动生产、消费命令。
- 1分钟后停止消费命令,等待生产100G以上消息。
- 再次启动消费命令,测试冷读场景下生产、消费性能。
测试结果参考

以下性能规格数据为基准条件下(磁盘类型为超高IO,消息大小为1 KB,冷读场景)测试出的RocketMQ集群性能规格,实际性能规格表现还会受多种因素影响,包括但不限于磁盘类型、是否冷读、冷读并发度、是否开启SSL加密、是否开启ACL认证、是否开启消息轨迹、是否跨AZ、生产并发、队列流量分布是否均衡等。因此建议参考配置RocketMQ监控告警对实例进行监控,在业务增长导致实例性能不足之前及时进行扩容。
性能指标 | rocketmq.4u8g.cluster.small | rocketmq.4u8g.cluster | rocketmq.8u16g.cluster | rocketmq.12u24g.cluster | rocketmq.16u32g.cluster |
|---|---|---|---|---|---|
消息生产速率 | 28566 个/秒 | 31644 个/秒 | 43272 个/秒 | 44934 个/秒 | 42380 个/秒 |
消息消费速率 | 99826 个/秒 | 104949 个/秒 | 210195 个/秒 | 219311 个/秒 | 197813 个/秒 |
网络入流量 | 68 MB/s | 75 MB/s | 115 MB/s | 109 MB/s | 96 MB/s |
网络出流量 | 240 MB/s | 251 MB/s | 460 MB/s | 400 MB/s | 371 MB/s |
CPU使用率 | 98% | 97% | 89% | 89% | 90% |
CPU核均负载 | 4.07 | 3.61 | 2.25 | 2.32 | 2.83 |
内存使用率 | 46% | 44% | 49% | 49% | 48% |

