概述

本次测试在华为云上进行,主要进行了千万级的 MQTT 连接测试,以及多种组合的消息吞吐量测试,相关的测试结果如下所示。

注:如果不做特别说明,所有的连接默认都设置了 300 秒的 Ping 消息包。

1000 万连接测试 :该测试只测试 MQTT 的连接,除了固定时间的 Ping 包,每个客户端不会 pub/sub 任何 MQTT 消息:

  • 90% 平均响应时间 < 2ms; 最大响应时间为 2.3 秒
  • 每个节点 CPU 平均使用率大约为 8% 左右,最高不超过 20%
  • 每个节点平均内存使用约 9GB

消息吞吐测试 :背景连接 900 万,用于模拟具有连接和发送 Ping 包的客户端,而剩下的 100 万则模拟用于发送实际业务数据的客户端

  • 消息体为 88 字节
  • 90% 平均响应时间 <70ms
  • CPU 使用随着消息吞吐量增加变大
  • 每个节点平均内存使用在 9 - 10GB

消息吞吐测试类型 1:Pub 消息测试

该测试类型下除了 900 万的背景连接,剩下的 100 万业务连接只做 pub 消息的操作。 测试结果表明响应时间都非常小,CPU 的使用率小于 25%,内存为 9GB。

消息吞吐测试类型 2:50 万主题使用

该测试类型下除了 900 万的背景连接,剩下的 100 万连接主要将大量的主题用于消息转发的测试。该测试结果表明在使用 50 万主题的情况下, QoS 在 0 的时候,Pub 和 Sub 的吞吐量分别都可以稳定达到 20 万/秒;而 QoS 在 1 的时候, Pub 和 Sub 的吞吐量分别都可以稳定达到 10 万/秒。在大量主题使用的场景下, EMQ X 表现良好。

消息吞吐测试类型 3:消息广播测试

该测试类型下除了 900 万的背景连接,剩下的 100 万连接主要做消息广播的测试。该测试场景下,主要是用少量的 Pub 端往主题上发送消息,大量的 Sub 端 在订阅相关的主题,实现消息在大量 Sub 端的广播。 测试结果显示,在 QoS 为 0 的情况下,广播可以达到 180 万/秒的消息吞吐量;而 QoS 为 1 的情况下, 广播可以达到 90 万/秒的消息吞吐量。

image.png

image.png

image.png

image.png

想要获取完整版?

下载地址将会发送至您填写的邮箱