一、前期准备
1. 参考入门流程指引,完成腾讯云 TDMQ RabbitMQ 版集群的创建,并配置好集群的 Vhost、Exchange、Queue 等资源。
2. 购买云服务器 CVM 作为压测执行机器,具体步骤请参考云服务器购买指南。购买时需注意地域、可用区、VPC 与 RabbitMQ 集群的保持一致。
3. 在 CVM 中安装 Java JDK,并配置 JAVA_HOME 与 PATH 环境变量。
export JAVA_HOME=/root/jdk1.8.0_231export PATH=$JAVA_HOME/bin:$PATH
4. 获取开源测试工具:PerfTest,下载rabbitmq-perf-test-2.21.0-bin.tar.gz到 CVM 中,并解压。更多关于该测试工具的说明可以参考 RabbitMQ PerfTest。
二、单队列测试
./runjava com.rabbitmq.perf.PerfTest -h amqp://{UserName}:{UserPassword}@{VPCAddress} -e {ExchangeName} -s 1024 -u {QueueName} -x {ProducerNumber} -y {ConsumerNumber} -z {Time}
| 参数名称 | 说明 |
| UserName | User名称 |
| UserPassword | User密码 |
| Address | RabbitMQ 集群的 VPC 网络接入点地址。IP形式:格式为 ip:port,如 192.168.0.150:5672域名形式:填入完整的域名,可在集群详情页-客户端接入中获取,如 amqp-oxz123456-gz-dsajih9-1j1p6omq-d.amqp.tencenttdmq.com:5672 |
| ExchangeName | 需要测试的 Exchange 名称 |
| QueueName | 需要测试的 Queue 名称 |
| ProducerNumber | Producer 数量 |
| ConsumerNumber | Consumer 数量 |
| Time | 测试脚本的运行时间,单位为秒 |
三、多队列测试
./runjava com.rabbitmq.perf.PerfTest -h amqp://{UserName}:{UserPassword}@{VPCAddress} -e {ExchangeName} -s 1024 -x {ProducerNumber} -y {ConsumerNumber} -z {Time} –queue-pattern 'queue-%d' –queue-pattern-from 1 –queue-pattern-to x
| 参数名称 | 说明 |
| UserName | User名称 |
| UserPassword | User密码 |
| Address | RabbitMQ 集群的 VPC 网络接入点地址。IP形式:格式为 ip:port,如 192.168.0.150:5672域名形式:填入完整的域名,可在集群详情页-客户端接入中获取,如 amqp-oxz123456-gz-dsajih9-1j1p6omq-d.amqp.tencenttdmq.com:5672 |
| ExchangeName | 需要测试的 Exchange 名称 |
| QueueName | 需要测试的 Queue 名称 |
| ProducerNumber | Producer 数量 |
| ConsumerNumber | Consumer 数量 |
| Time | 测试脚本的运行时间,单位为秒 |
| queue-%d | 表示多个 Queue:其中 Queue 名称的前缀为“queue-”,后续变量为“d”,变量的取值为从“–queue-pattern-from”的数值到“–queue-pattern-to”的数值的连续整数。例如:–queue-pattern 'queue-%d' –queue-pattern-from 1 –queue-pattern-to 3,表示3个 Queue,Queue 名称为 queue-1、queue-2、queue-3 |
注意:如果需要测试开启 SSL 加密的接入点,需要将“amqp://”修改为“amqps://”,表示以加密的形式传输数据。
四、测试步骤
1. 登录准备好的 CVM 压测执行机,进入“rabbitmq-perf-test-2.18.0/bin”目录。
2. 确定测试场景,为测试脚本配置好参数。
3. 运行测试脚本,测试并按需记录 RabbitMQ 集群的 CPU 利用率、内存使用量、生产速率、消费速率等指标,请参考查看监控数据。
五、测试结果参考
测试集群均已开启镜像队列三副本同步,保证集群高可用。
测试结果对应的 RabbitMQ 集群参数如下:
·镜像版本:3.11.8
·节点数量:3
·镜像队列:开启,三副本
·单节点磁盘大小:200GB
测试参数如下:
·Queue 数量:100
·Exchange 数量:100
测试结果如下:
| 节点规格 | 生产速率 | 消费速率 | Queue 数量 | Connection 数量 | 单节点 CPU 利用率 |
| 2核4G | 2000 | 2000 | 100 | 500 | 37.68% ~ 40.75% |
| 4核8G | 3000 | 3000 | 100 | 2000 | 35.46% ~ 42.08% |
| 16核32G | 12000 | 12000 | 800 | 8000 | 35.14% ~ 40.52% |