RabbitMQ 性能测试指引

最近更新时间:2026-01-08 16:53:15

我的收藏
本文描述了腾讯云 TDMQ RabbitMQ 版的性能测试指引。性能测试和容量评估是保证系统整体稳定性的一个基础保证手段,但是如何实施一场有效压测并不是一个简单的事情,我们建议采用以下压测方案,进行压测前,首先应该结合业务场景明确本次压测的目的,然后确定压测具体方案,包括压测对象,压测场景模拟,工具选择以及应该关注哪些指标等,最后分析压测是否达到预期和明确购买合适的规格。

前期准备

1. 参考入门流程指引,完成腾讯云 TDMQ RabbitMQ 版集群的创建,并配置好集群的 Vhost、Exchange、Queue 等资源。
2. 购买云服务器 CVM 作为压测执行机器,具体步骤请参考云服务器购买指南。购买时需注意地域、可用区、VPC 与 RabbitMQ 集群的保持一致。
3. 在 CVM 中安装 Java JDK,并配置 JAVA_HOME 与 PATH 环境变量。
export JAVA_HOME=/root/jdk1.8.0_231
export 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%