更新时间:2024-11-14 GMT+08:00

测试4.8.0版本RocketMQ实例性能

本章节主要测试RocketMQ实例4.8.0版本不同产品规格在发送1KB大小的消息,且CPU使用率达到80%以上时,实例的网络入流量、网络出流量、消息生产速率、消息消费速率、CPU核均负载和内存使用率。

测试环境

进行测试前,您需要先构建如下的测试环境:

  1. 购买如表1所示实例,购买步骤请参考购买实例
    表1 实例参数

    名称

    规格

    代理数量

    存储空间

    ACL访问

    公网访问

    rocketmq-01

    rocketmq.4u8g.cluster.small

    1

    高I/O 300GB

    关闭

    关闭

    rocketmq-02

    rocketmq.4u8g.cluster

    1

    高I/O 300GB

    关闭

    关闭

    rocketmq-03

    rocketmq.8u16g.cluster

    1

    高I/O 300GB

    关闭

    关闭

    rocketmq-04

    rocketmq.12u24g.cluster

    1

    高I/O 300GB

    关闭

    关闭

  2. 创建如表2所示Topic,创建步骤请参考创建Topic
    表2 Topic参数

    名称

    权限

    关联代理

    队列个数

    topic-01

    发布+订阅

    broker-0

    8

  3. 创建如表3所示消费组,创建步骤请参考创建消费组
    表3 消费组参数

    名称

    关联代理

    最大重试次数

    是否允许以广播模式消费

    group-01

    broker-0

    16

  4. 购买1台ECS服务器(区域、可用区、虚拟私有云、子网、安全组与RocketMQ实例保持一致,Linux系统),具体步骤请参考购买弹性云服务器
  5. 在ECS中安装Java JDK,并配置JAVA_HOME与PATH环境变量。
    export JAVA_HOME=/root/jdk1.8.0_231 
    export PATH=$JAVA_HOME/bin:$PATH
  6. 下载测试工具。
    wget https://dist.apache.org/repos/dist/release/rocketmq/5.1.4/rocketmq-all-5.1.4-bin-release.zip
  7. 解压测试工具。
    unzip rocketmq-all-5.1.4-bin-release.zip

测试命令

生产命令:

sh producer.sh -n "${连接地址}" -t ${Topic名称} -s ${消息大小} -w ${生产者线程数}
  • 连接地址:购买RocketMQ实例后,获取实例的连接地址。
  • Topic名称:创建Topic时设置的Topic名称。
  • 消息大小:1KB
  • 生产者线程数:测试rocketmq.4u8g.cluster.small、rocketmq.4u8g.cluster和rocketmq.8u16g.cluster时,生产者线程数输入256,测试rocketmq.12u24g.cluster时,生产者线程数输入640。

消费命令:

sh consumer.sh -n "${连接地址}" -t ${Topic名称} -g ${消费组名称}

测试结果参考

表4 测试结果参考

性能指标

rocketmq.4u8g.cluster.small

rocketmq.4u8g.cluster

rocketmq.8u16g.cluster

rocketmq.12u24g.cluster

消息生产速率

56532 个/秒

62443 个/秒

92476 个/秒

138369 个/秒

消息消费速率

53793 个/秒

60106 个/秒

90563 个/秒

116154 个/秒

网络入流量

91 MB/s

99.64 MB/s

143.64 MB/s

238.19 MB/s

网络出流量

223 MB/s

314 MB/s

451 MB/s

674 MB/s

CPU使用率

86%

90%

81%

81%

CPU核均负载

2.77

3.03

1.73

1.73

内存使用率

63%

55%

49%

47%