问题描述
压测端8w连接其中2w模拟客户端以每秒2w速度(总共)进行发送qos1 消息,大小为500字符,单向ssl认证,总共600w消息,两个broker组成的小集群,服务端以共享订阅方式处理。5分钟压测端完成600w 消息发送时,实际服务端消费了220w左右消息,剩下的花了10分钟才全部消费完毕,数量是准确的。
5分钟之内观测一台broker,流入速度差不多在50MBit/s,流出大约40MBit/s。5分钟之后由于压测端600w消息已经发送完毕,broker 发送剩余的380w消息流出速度却突然降到了3~8MBit/s。难道不应该全速发送么?
等10分钟后数量对上了,整个耗时15分钟(5分钟+10分钟)~~~
我以为服务端消费速度慢,又重新压了一遍情况又差不多。服务端消费速度没问题。
说服务端消费速度赶不上生产速度可以理解,我们已经调大了emqx相关内存和队列大小,期望的是当消息生产已经停止情况下,emqx应该尽快把内存中暂存消息推送到服务端,实际情况却不是这样的。
有什么参数可以调整吗?
环境信息
- EMQ X 版本:4.2.9
- 操作系统及版本:ubuntu20.04
- 其他