关于emqx接收并发数为20个客户端,每个客户端接收65535个字节,qos=1,从捉包来看 MQTT需要约5秒的时间才返回ack的应答给到客户端

emqx 版本5.7.0
emqx 3节点,每台服务器 cpu16c ,内存32G
关于emqx接收并发数为20个客户端,每个客户端接收65535个字节,qos=1,从捉包来看 MQTT需要约5秒的时间才返回ack的应答给到客户端,以下截图是11是客户端IP,126的MQTT部署的服务器IP,现问一下关于这个延时,有什么配置可以设置来优化mqtt的返回ack的应答时间吗?

请问 EMQX 是如何配置的?EMQX 有什么错误日志么?

可以先尝试使用 日志追踪 (Trace) | EMQX文档 查下其中一个客户端的 DEBUG,看看 PUBACK 和 对应的 PUBLISH 之前时间差,和日志

我trace 客户端时只查到有PUBLISH的消息。但看到有PUBACK的日志


emqx.conf的配置如下
emqx.conf.gz (1.6 KB)

咦,看日志消息的处理应该没有卡顿才是

那请问这个没有看到有PUBACK的消息,这种是什么原因呢?

方便把这个追踪的日志文件发上来看看么

mqttx_2c56aadd (1).zip (1.8 KB)
你好,请查收

您好,确实观察到了 PUBACK(PacketId=21464,) 和对应的 PUBLISH 消息之间延迟了 11s。暂时从日志里没有看出更多的异常。

尝试把数据集成中所有的规则都关闭,然后在试试呢

我测的时候是把集成的所有规则都关了也一样有这个延时,这种延时的产生是MQ同时接收并发数为20个客户端同时向这个MQ推送65535个字节的情况下发生的,如果只是单独发送一个65535个字节的情况下不会发生这个性能问题,但通过以上捉包来看也在在puback的时间上。不知道是什么原因导致的

刚刚我又试了一次,好像规则关了是快了很多,跟规则开启后的性能有关

  1. 能看下你之前的规则引擎是如何配置的吗?在 cluster.hocon 文件里
    • 我看到有个一个 console 打印的动作,这个要打印数十MB的文本,估计是有性能影响的。如果要测试性能,应该把此类 action 给关闭了。
  2. 延迟降低后,大概在多少ms可以有 PUBACK 回到客户端,这个有全量的最终日志吗

ps: cluster.hocon 文件位置在