EMQx消息吞吐量不稳定

环境信息

  • EMQX 版本:emqx/emqx:4.3.12
  • 操作系统及版本:docker
  • 其他:emqx单节点

问题描述

测试方法:按照平均速率模拟向EMQx发mqtt数据包,然后通过EMQx官方提供的Grafana模板监控指标。(连续测试了一周)
期待结果:监控到的Throughout(以及Message Received/Sent)指标应该是一条直线。
实际结果:监控到的上述指标是一个固定周期的方波,如附件图片所示。(方波周期占比大概是:3.5h + 1.5h)

配置文件及日志

通过第一个图可以看到收到的报文字节数大小和mqtt 收到的消息同频率的方波。这个建议查一下发布消息接收消息的频率哪里出现导致的。

模拟发布消息的一端:是使用固定大小的数据包、按照固定频率发送的。

模拟接收消息的一端:在收到上述每条消息后,再反馈(发布)一个固定大小的数据包。

以上测试流程频率都是固定的。

那为啥收到的报文突然增加的呢?肯定是外部有发送,服务端才能收到。

从截图来看,基本上确定是施压的机器频率不稳定(怀疑是有奇怪的GC行为)。可以监控一下施压机器的状态。
推荐使用xmeter作为压力测试服务器,我们长期使用这种方式,还没有遇到你的情况。