分布式 mqtt服务器 测试结果

测试目的

试验MMQ(MQTT 分布式服务器)在低性能主机中实现一万连接和百万消息吞吐的基准测试,本次测试使用了 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 条。

测试结果概述

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

最小响应时间 (s)

最大响应时间(s)

平均响应时间(s)

平均吞吐量

MMQ CPU 使用

MMQ 内存使用(M)

MQTT 连接

0.002

0.03

0.0042

19978

50%~70%

400~500

MQTT Pub

/

/

/

1000

测试环境及部署

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

MMQ / JMeter配置:

节点

数量

版本

操作系统

CPU

内存

硬盘

MMQ

3

1.1.1

Centos 8

1核

1G

40G

JMeter压力测试机

1

5,4,1

Win 10

8核

16G

40G

你可能感兴趣的:(低成本MQTT解决方案,分布式,服务器,压力测试)