EMQX: 社区版本 5.3.0
机器配置:16核32G
系统参数按照文档进行了调优。
使用官方提供的emqx_bench工具进行压测,首先创建5万个连接,订阅5万个主题。
使用pub命令在另外一台机器进行发布测试,qos2的消息最多只能压到每秒3万,EMQX机器的CPU使用率已经接近100%了,吞吐量上不去了了。
求问这是社区版本的极限了吗?还是有继续调优的空间?
EMQX: 社区版本 5.3.0
机器配置:16核32G
系统参数按照文档进行了调优。
使用官方提供的emqx_bench工具进行压测,首先创建5万个连接,订阅5万个主题。
使用pub命令在另外一台机器进行发布测试,qos2的消息最多只能压到每秒3万,EMQX机器的CPU使用率已经接近100%了,吞吐量上不去了了。
求问这是社区版本的极限了吗?还是有继续调优的空间?
你的消息是 1v1 的发布订阅模式么?
使用emqx_bench的sub命令创建了5w个连接和订阅
./emqtt_bench sub -t bench_1/%i -q 2 -c 50000 -i 1
然后使用pub命令发送
./emqtt_bench pub -c 100 -I 1 -t bench_1/%i -s 1024 -q 2
实际接收的速率
4h46m25s recv total=205838711 rate=29400.60/sec
4h46m26s recv total=205867494 rate=28811.81/sec
4h46m27s recv total=205893808 rate=26314.00/sec
4h46m28s recv total=205921566 rate=27758.00/sec
4h46m29s recv total=205950424 rate=28858.00/sec
把pub和sub还有emqx实例分别放在了三个不同的机器上
pub的连接数也改为5w,测试最大吞吐也只能到5w/s
2m54s recv total=3022125 rate=49813.00/sec
2m55s recv total=3070705 rate=48580.00/sec
2m56s recv total=3120207 rate=49502.00/sec
2m57s recv total=3170638 rate=50431.00/sec
2m58s recv total=3219607 rate=48969.00/sec
2m59s recv total=3269521 rate=49914.00/sec
对应机器利用率:
./emqtt_bench pub -c 100 -I 1 -t bench_1/%i -s 1024 -q 2
你这个命令里面的 -I
,设置为 1. 如果是这样,你的 pub 速率是多少,对单个客户端来说,应该会有消息累积才对。不能只看流出,要把流出和注入都调得保持一致才能更好的模拟真实场景。
请问官方有没有针对 QoS = 2 的压测性能数据呢?我这边也好针对自己的机器配置做一下比较
应该是没有:所有的基准测试报告可以在这里找到