测试 - MrHKing/mmqtt GitHub Wiki

测试目的

试验MMQ在低性能主机中实现一万连接和百万消息吞吐的基准测试,本次测试使用了 3 个 MMQ 节点的集群,每个节点所在机器为华为云。

测试场景

  • 本次测试使用华为云主机(1vCPUs | 1GiB | s6.small.1)和弹性公网1 Mbit/s,3 个 MMQ 节点和测试机在同一个 vpc 中,主要进行了 1 万的 MQTT 连接加上 QoS0 百万消息吞吐具体如下所示。
  • 注:如果不做特别说明,所有的连接默认都设置了 300 秒的心跳时间,所有的消息 payload 均为 50 字节。
  • 1万 MQTT 连接、QoS0 广播场景百万消息吞吐
  • 1万 MQTT 客户端以每秒 1000的新增连接速率接入MMQ 集群,连接完成后每秒向MMQ集群发送消息。因此,总的消息发布吞吐率为每秒 10000 条。

测试结果概述

  1. 平均连接速率达到 2000条/秒,连接平均响应时间 4.2ms
  2. 每个节点 MMQ CPU 平均使用 64%,1万客户端全部连接后消息收发期间每节点 MMQ CPU使用范围为 50%~70%
  3. 每个节点 MMQ 内存平均使用 500M,1万客户端全部连接后消息收发期间每节点 MMQ 内存使用范围为 400GMB~500MB

测试环境及部署

华为云中的测试部署如下所示,本次测试共使用 1 台测试机,模拟 1万 MQTT 连接和1万QoS 0 消息吞吐,JMeter 提供的基于 JMeter MQTT 插件的测试工具来模拟业务测试场景.