EMQX社区版本吞吐上不去

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

  1. pub 为啥只有 100 个。那么这样 5 万个客户端其实只有 100 个在接收消息。
  2. 把 sub 也从 emqx 的机器上移开看看。
  3. 方便提供一下 top 的 cpu 利用率么?

把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 的压测性能数据呢?我这边也好针对自己的机器配置做一下比较

应该是没有:所有的基准测试报告可以在这里找到