消息队列 RabbitMQ 版 RabbitMQ 性能测试指引

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

相关产品
消息队列 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_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%
赞 (0)
上一篇 4天前
下一篇 4天前