RocketMQ 性能报告


RocketMQ 性能报告 针对 RocketMQ v3.1.8 ©Alibaba 淘宝消息中间件项目组 2014/7/28 文档变更历史 序号 主要更改内容 更改人 更改时间 1 草拟初稿 誓嘉 vintage.wang@gmail.com 2014/7/28 2 3 4 5 6 7 项目开源主页:https://github.com/alibaba/RocketMQ I 目录 1 前言 .................................................................................................................................................................................... 1 2 测试环境 ............................................................................................................................................................................ 1 2.1 软件环境 ................................................................................................................................................................ 1 2.2 硬件环境 ................................................................................................................................................................ 1 2.3 部署方式 ............................................................................................................................................................... 2 2.3.1 单 Master .................................................................................................................................................. 2 2.3.2 一 Master 一 Slave ................................................................................................................................... 3 3 RocketMQ 性能用例 ......................................................................................................................................................... 3 3.1 发消息并发数对性能的影响 ............................................................................................................................... 4 3.2 消息大小对性能的影响 ....................................................................................................................................... 5 3.3 异步发送消息 ....................................................................................................................................................... 6 3.4 Oneway 发送消息 ................................................................................................................................................ 6 3.5 Broker 的队列数对性能的影响 ........................................................................................................................... 6 3.6 Broker 机器硬件对性能的影响 ........................................................................................................................... 7 3.7 Broker 刷盘方式对性能的影响 ........................................................................................................................... 7 3.8 Broker HA 对性能的影响 ..................................................................................................................................... 8 3.9 消息堆积对性能的影响 ....................................................................................................................................... 8 3.10 疲劳测试 ............................................................................................................................................................... 9 3.11 海量网络连接数对性能的影响 ........................................................................................................................... 9 项目开源主页:https://github.com/alibaba/RocketMQ 1 1 前言 本文档旨在描述 RocketMQ 在各种场景下的性能指标,以方便运维人员部署线上集群。主要测试单个 Broker 节点的性能,测试对象是 Broker。线上实际部署时,只要知道单个 Broker 的性能数据,以及期望的总的性能指标, 通过横向扩容 Broker 的方式,即可计算出实际的集群规模。 主要针对发送消息的测试,因为影响消息写入的因素较多。订阅消息的瓶颈只取决于网卡流量,所以不单独测 试订阅相关的性能。在消息堆积情况下,订阅性能稍有下降,会有单独 Case 测试。 2 测试环境 2.1 软件环境 一、Linux 2.6.32 二、Ext4 文件系统,IO 调度算法为 deadline 三、JDK 1.6 x64 2.2 硬件环境 机器类型名 CPU 内存 磁盘 网络 MACHINE_A 16 核 Intel(R) Xeon(R) CPU L5630 @ 2.13GHz 48G RAID SAS 15000 转 1Gbps(119MB) MACHINE_B 16 核 Intel(R) Xeon(R) CPU L5630 @ 2.13GHz 48G RAID SAS 15000 转 10Gbps(1190MB) MACHINE_C 48G RAID SAS 10000 转 1Gbps(119MB) MACHINE_D 48G RAID SATA 7500 转 1Gbps(119MB) MACHINE_E 48G RAID SATA 10000 转 1Gbps(119MB) MACHINE_F 48G RAID SSD 1Gbps(119MB) 项目开源主页:https://github.com/alibaba/RocketMQ 2 MACHINE_G 虚拟机,CPU 4 核 8G RAID SSD 1Gbps(119MB) 2.3 部署方式 2.3.1 单 Master Broker Master1 Producer集群 Consumer集群 Name Server 无备机 Case 情况下,采用这种方式部署,只部署一个 Master,Name Server 也可以部署到 Master 一台机器上,Name Server 本身无性能压力。 Producer 集群可以是多台机器,也可以是一台机器,Consumer 同理。 项目开源主页:https://github.com/alibaba/RocketMQ 3 2.3.2 一 Master 一 Slave Broker Master1 Producer集群 Consumer集群 Name Server Broker Slave1 采用一主一备情况下,主要用来测试备机对于整个性能的影响情况。Name Server也可以部署到Master一台机器上, Name Server 本身无性能压力。 Producer 集群可以是多台机器,也可以是一台机器,Consumer 同理。 3 RocketMQ 性能用例 软件产品的性能参数通常受多种因素影响,影响 RocketMQ 性能指标的主要因素如下: 一、发送消息的并发数,订阅消息的消费者数量 二、消息大小 消息体越大,网络、磁盘开销越大,性能也会越低 三、Broker 的机器硬件环境 如 RAID SAS 15000、RAID SAS 10000、RAID SATA 7500、SSD、Fusion-IO 四、Broker 的刷盘方式 如异步刷盘、同步刷盘 项目开源主页:https://github.com/alibaba/RocketMQ 4 五、Broker 的 HA 方式 如异步复制、同步双写 六、Broker 的队列数 队列都是持久化到磁盘,所以队列数量会影响磁盘 IO 繁忙度 七、异步发送消息 发送消息线程不等待应答就返回,消息发送结果应答通过 CallBack 异步线程返回。 八、OneWay 形式发送消息 发送消息线程不等待应答就返回,Broker 也不返回任何应答。 九、消息堆积数量 消息堆积在服务器超过一定数量,例如几千万、上亿条消息,那么从 Broker 订阅消息,就可能无法全部 命中内存 Cache,这时候会产生磁盘 IO,磁盘 IO 的吞吐量决定了堆积场景下的性能。 十、疲劳测试 长时间的压测,Broker 表现是否正常 十一、 海量网络连接数 网络连接过多, 会占用大量系统内存,测试网络连接对性能的影响程度 理想的性能测试报告需要将以上 11 个指标做排列组合出多个 Test Case,但是这样工作量巨大,且其中有些 case 的意义并不大,所以只做有代表性的 Case。 3.1 发消息并发数对性能的影响 消息大小 128 字节 发送消息并发数 从 1 到 1000 通信方式 同步发送 Consumer 实例数 3 台机器,每台机器启动一个 Consumer Broker 队列数 200 项目开源主页:https://github.com/alibaba/RocketMQ 5 Broker 刷盘方式 异步 Broker HA 方式 无、单 Master Broker 机器类型 MACHINE_A 随着并发数的增加,Broker 的 TPS 变化 并发数 Producer 发送消息 RT(ms) Broker 写入 TPS Broker Load Broker 网卡入口流 量 Broker IOWAIT 1 10 20 40 80 160 200 300 400 500 1000 3.2 消息大小对性能的影响 消息大小 消息大小不断增大,测试对性能的影响 发送消息并发数 200 通信方式 同步发送 Consumer 实例数 3 台机器,每台机器启动一个 Consumer Broker 队列数 200 Broker 刷盘方式 异步 Broker HA 方式 无、单 Master Broker 机器类型 MACHINE_A 项目开源主页:https://github.com/alibaba/RocketMQ 6 3.3 异步发送消息 消息大小 256 发送消息并发数 1、64 通信方式 异步发送 Consumer 实例数 3 台机器,每台机器启动一个 Consumer Broker 队列数 200 Broker 刷盘方式 异步 Broker HA 方式 无、单 Master Broker 机器类型 MACHINE_A 3.4 Oneway 发送消息 消息大小 256 发送消息并发数 1、64 通信方式 Oneway 发送 Consumer 实例数 3 台机器,每台机器启动一个 Consumer Broker 队列数 200 Broker 刷盘方式 异步 Broker HA 方式 无、单 Master Broker 机器类型 MACHINE_A 3.5 Broker 的队列数对性能的影响 消息大小 256 项目开源主页:https://github.com/alibaba/RocketMQ 7 发送消息并发数 200 通信方式 同步发送 Consumer 实例数 3 台机器,每台机器启动一个 Consumer Broker 队列数 Broker 刷盘方式 异步 Broker HA 方式 无、单 Master Broker 机器类型 MACHINE_A 3.6 Broker 机器硬件对性能的影响 消息大小 256 发送消息并发数 200 通信方式 同步发送 Consumer 实例数 3 台机器,每台机器启动一个 Consumer Broker 队列数 200 Broker 刷盘方式 异步 Broker HA 方式 无、单 Master Broker 机器类型 MACHINE_A 3.7 Broker 刷盘方式对性能的影响 消息大小 256 发送消息并发数 200 通信方式 同步发送 Consumer 实例数 3 台机器,每台机器启动一个 Consumer 项目开源主页:https://github.com/alibaba/RocketMQ 8 Broker 队列数 200 Broker 刷盘方式 异步、同步 Broker HA 方式 无、单 Master Broker 机器类型 MACHINE_A 3.8 Broker HA 对性能的影响 消息大小 256 发送消息并发数 200 通信方式 同步发送 Consumer 实例数 3 台机器,每台机器启动一个 Consumer Broker 队列数 200 Broker 刷盘方式 异步 Broker HA 方式 无、单 Master Broker 机器类型 MACHINE_A 3.9 消息堆积对性能的影响 消息大小 256 发送消息并发数 200 通信方式 同步发送 Consumer 实例数 3 台机器,每台机器启动一个 Consumer Broker 队列数 200 Broker 刷盘方式 异步 Broker HA 方式 无、单 Master 项目开源主页:https://github.com/alibaba/RocketMQ 9 Broker 机器类型 MACHINE_A 3.10 疲劳测试 消息大小 256 发送消息并发数 200 通信方式 同步发送 Consumer 实例数 3 台机器,每台机器启动一个 Consumer Broker 队列数 200 Broker 刷盘方式 异步 Broker HA 方式 无、单 Master Broker 机器类型 MACHINE_A 运行 24 小时,发送和投递的曲线图 3.11 海量网络连接数对性能的影响 消息大小 256 发送消息并发数 200 通信方式 同步发送 Consumer 实例数 3 台机器,每台机器启动一个 Consumer Broker 队列数 200 Broker 刷盘方式 异步 Broker HA 方式 无、单 Master Broker 机器类型 MACHINE_A
还剩11页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享pdf获得金币 ] 1 人已下载

下载pdf

pdf贡献者

anbingquan

贡献于2015-09-11

下载需要 8 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf