You need to enable JavaScript to run this app. 如何配置Mosquitto broker以支撑高并发客户端连接及消息吞吐量
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Mosquitto broker以支撑高并发客户端连接及消息吞吐量

Mosquitto 高并发承载优化配置指南

官方配置参考渠道

Mosquitto 所有可调参数的官方说明均内置在安装包自带的默认mosquitto.conf文件中,每个参数的作用、取值范围、默认值都有详细注释,你可以直接打开安装目录下的该文件查阅;也可以访问Mosquitto官方文档中心的配置手册章节,获取对应版本的完整配置说明。

第一部分:Windows Server 2012 R2 系统层面优化

Mosquitto 2000连接就崩溃大概率是Windows系统默认的TCP、进程句柄限制导致,优先调整以下配置:

  • 调整TCP最大连接数:打开注册表路径HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters,新增DWORD类型值TcpNumConnections,设置为0xFFFFFE,解除默认的TCP并发连接数上限
  • 调整进程句柄配额:Windows默认单进程可打开的句柄数上限较低,通过组策略或注册表调整Mosquitto进程的最大句柄配额到65535以上,每个MQTT连接需要占用1个套接字句柄,25000连接至少需要预留30000以上句柄额度
  • 关闭TCP不必要的校验:在上述同注册表路径下新增DWORD值TcpMaxDataRetransmissions,设置为5,减少异常连接的资源占用;同时关闭Windows防火墙、Defender的实时流量扫描功能,避免连接建立时的性能损耗

第二部分:mosquitto.conf 核心优化参数

直接修改配置文件中以下参数,重启Mosquitto生效:

# 连接配置
max_connections 30000 # 直接设置为高于你业务需要的25000的数值,填-1则是无限制
listener 1883 0.0.0.0 # 明确指定监听地址和端口,避免默认绑定限制
per_listener_settings true

# 性能配置
max_inflight_messages 0 # 取消飞行消息队列长度限制,高并发下默认值20极易拥堵
max_queued_messages 10000 # 调大单客户端消息队列长度,避免队列溢出导致断连
queue_qos0_messages true # 允许QoS0消息入队,降低短消息丢弃率
persistence false # 如无离线消息持久化需求直接关闭,避免磁盘IO成为瓶颈
log_type error # 仅保留错误日志,关闭info、notice等级日志,减少日志IO损耗

# 内存配置
message_size_limit 1024 # 你的测试消息为短文本,设置1KB上限足够,减少无效内存占用

第三部分:压测场景调整建议

当前测试遇到的连接上限也可能是压测端本身的瓶颈导致:

  • JMeter单进程在Windows下线程超过2000容易出现本地端口耗尽问题,建议拆分多台压测机发起请求,避免压测端瓶颈误判Mosquitto性能
  • 模拟客户端连接时设置10-30秒的梯度上线时间,避免瞬间并发连接打满TCP半连接队列导致Mosquitto崩溃

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 17:06:09