测试场景
本章节主要测试RocketMQ不同产品规格在发送1KB大小的消息,实例的网络入流量、网络出流量、消息生产速率、消息消费速率、CPU核均负载和内存使用率。
测试环境
购买实例
名称 | 规格 | 存储空间 |
---|---|---|
rocketmq-01 | c7.xlarge.2 4C8G | 超高I/O 500GB |
rocketmq-02 | c7.2xlarge.2 8C16G | 超高I/O 500GB |
rocketmq-03 | c7.4xlarge.2 16C32G | 超高I/O 500GB |
控制台创建主题
名称 | 权限 | 关联代理 | 队列个数 |
---|---|---|---|
topic-01 | 发布+订阅 | broker-1 | 8 |
控制台创建消费组
名称 | 关联代理 | 最大重试次数 | 是否允许以广播模式消费 |
---|---|---|---|
group-01 | broker-1 | 16 | 否 |
测试工具准备
购买1台ECS服务器(区域、可用区、虚拟私有云、子网、安全组与RocketMQ实例保持一致,Linux系统),安装jdk,并配置环境变量
tar -zxvf jdk-8u131-linux-x64.tar.gz
vi /etc/profile
#追加以下内容
export JAVA_HOME=/root/jdk1.8.0_131
export PATH=$JAVA_HOME/bin:$PATH
#生效配置
source /etc/profile
下载测试工具
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
测试命令
消费命令
sh consumer.sh -n "${namesrv接入地址}" -t ${Topic名称} -g ${消费组名称}
- namesrv接入地址:购买RocketMQ实例后,获取实例的namesrv接入地址
- Topic名称:创建Topic时设置的Topic名称
- 消费组名称:创建消费组时设置的消费组名称
生产命令
sh producer.sh -n "${namesrv接入地址}" -t ${Topic名称} -s 1024 -w ${生产者线程数}
- namesrv接入地址:购买RocketMQ实例后,获取实例的namesrv接入地址
- Topic名称:创建Topic时设置的Topic名称
- 生产者线程数:测试s7.xlarge.4,s7.2xlarge.4,s7.4xlarge.4,c7.xlarge.22时,生产者线程数输入256;测试c7.2xlarge.2,c7.4xlarge.2时,生产者线程数输入640。
关闭命令
#关闭生产者
sh shutdown.sh producer
#关闭消费者
sh shutdown.sh consumer
测试结果
增强型云主机
性能指标 | c7.xlarge.2 4C8G | c7.2xlarge.2 8C16G | c7.4xlarge.2 16C32G |
---|---|---|---|
消息生产速率 | 72216 个/秒 | 125168 个/秒 | 128226 个/秒 |
消息消费速率 | 72142 个/秒 | 125080 个/秒 | 128316 个/秒 |
网络入流量 | 97.12 MB/S | 169.42 MB/S | 173.52MB/S |
网络出流量 | 196.39 MB/S | 342.25 MB/S | 348.51 MB/S |
CPU使用率 | 76% | 61% | 38% |
CPU核均负载 | 1.43 | 0.825 | 0.423 |
内存使用率 | 55% | 51% | 34% |