转MQTT SERVER 性能测试报告

时间:2022-09-15 00:22:54

硬件环境:
内存4G
CPU4核

SERVER及端口:
apollo端口 61619
mosquitto:端口 1884
activeMQ端口:1883
emqtt 端口1885

测试方法
并发测试:192.168.6.156 上用 emqttd_benchmark 测试 192.168.6.157 上的各MQTT SERVER 并发量
消息发送测试:本地电脑 用php程序 使用一个客户端连接情况下 发送10万消息 到 192.168.6.157上的各MQTT SERVER。

测试时间:1个工作日。

默认 retain=0 非持久化消息。

QoS0: 最多一次 服务器与 客户端 交互1次 。
QoS1 :至少一次 服务器与 客户端 交互2次 。
QoS2:洽好一次 服务器与 客户端 交互4次 。

测试结果:
mosquitto:
发送消息:QoS0: 18.57秒 cpu:10% , QoS1: 86.9秒 cpu 10% , QoS2: 157秒 cpu 10% , retain=1的各值和retain=0几乎一样 。
并发连接: 第1次:12000 第二次11000 第3次 12200 cpu占用 25%左右
稳定性高

apollo :
发送消息:QoS0 18.37秒 cpu 30% ,QoS1 215秒cpu40% ,QoS2: 超时
并发连接 :第1次 11000 第2次 12200 第3次 15200 第4次 13900 cpu:45%

activeMQ :
发送消息:QoS0 18.41秒 cpu 50% , QoS1 超时
并发连接 :第1次 28200 第2次 28000 有2次测试后服务出现崩溃 cpu:70%

emqtt :
发送消息: QoS0 66秒 cpu: 80%, QoS1 204秒 cpu: 55%
并发连接 27600 第二次 19000 第3次28200 第4次28200 cpu 70%
稳定性高
—-

在测试中,发现 mosquitto无法利用多核,emqtt 磁盘io高,activeMQ占内存比较高。

后来发现是benchmark程序的原因,无法高并发,可以多台开benchmark 程序一起执行,那以上并发结果就要翻倍了
结论:emqtt,并发最高,但cpu占用较高,稳定性高。消息发送较慢。
moqtuitto ,发送消息快,稳定性高,cpu占用很少,并发比较高。
其它2个稳定性不太高。

以上数据仅供参考 。

转自:https://blog.csdn.net/educast/article/details/78352641?utm_source=copy