You need to enable JavaScript to run this app. JMeter MQTT负载测试出现HiveMQTTConnection发布失败问题
优惠活动
大模型
产品
解决方案
定价
更多

JMeter MQTT负载测试出现HiveMQTTConnection发布失败问题

故障原因分析

该故障同时涉及JMeter测试计划配置缺陷和运行机器资源瓶颈两类问题,具体原因拆解如下:

1. JMeter测试计划配置问题

  • 缺少MQTT连接自动重连机制:当前配置仅让每个用户在初始化时执行1次MQTT连接,后续1小时的循环发布周期内,若连接因服务端会话超时(多数MQTT broker默认会话超时为30分钟,和你故障出现的20分钟时间点吻合)、网络波动被断开,插件不会自动重建连接,直接触发MQTT client is not connected报错。
  • 无连接失败重试逻辑:30分钟内启动8000线程的梯度下,后期并发连接请求量上升后,部分请求排队超时未成功建立连接,后续发布动作自然无法执行。

2. 运行机器资源配置问题

  • 操作系统文件句柄限制:EC2 Linux实例默认单进程最大打开文件句柄数仅为1024或4096,每个MQTT长连接都会占用1个TCP socket(对应1个文件句柄),当连接数超过系统配额后,新连接无法建立,已有连接也可能被内核主动回收。
  • 实例网络资源瓶颈:x3.large实例的网络带宽、每秒收发包数(PPS)、并发连接数均有固定配额,8000个长连接+每秒1600条左右的发布消息(8000个用户每5秒发1条)很容易触碰配额上限,导致TCP丢包、连接被重置。
验证排查方法

你可以先做两个简单验证确认具体诱因:

  1. 执行ulimit -n查看当前实例的文件句柄限制,同时查看系统日志dmesg是否存在Too many open files相关报错,即可确认是否为资源配额问题。
  2. 在JMeter的MQTT连接配置中开启自动重连、添加连接失败重试控制器,先调低并发数跑测验证无报错后再逐步提升并发,即可确认是否为配置问题。

内容的提问来源于stack exchange,提问作者karlos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 08:51:02