首页
关于
Search
1
[Nas折腾] 群晖 Synology NAS 的Docker的注册表无法打开的解决方法
10 阅读
2
[折腾日记3] VPS搭建 + WARP 代理解锁Netflix, Disney+, Prime Video 和 ChatGPT
9 阅读
3
Node.js 配置
9 阅读
4
观看4K电影到底要用多大的宽带才够?
7 阅读
5
[折腾日记2] 通过宝塔面板搭建Typecho博客网站
6 阅读
默认分类
VPS笔记
Nas折腾
技术研究
登录
Search
蜗牛看世界
累计撰写
22
篇文章
累计收到
1
条评论
首页
栏目
默认分类
VPS笔记
Nas折腾
技术研究
页面
关于
搜索到
2
篇与
的结果
2025-07-18
Mosquitto MQTT TLS 并发压测报告(二):关闭持久化优化效果评估
⸻【MQTT TLS 性能测试报告】基于 Mosquitto + emqtt-bench 在轻量服务器环境下压测结果一、测试目的验证 Mosquitto 2.0.21 在启用 TLS(双向认证)场景下的并发处理能力,观察连接数、消息速率、Payload 大小对性能的影响。同时关注系统稳定性及是否出现 TLS 异常。⸻二、测试环境服务器配置(阿里云轻量):• 2 vCPU / 1 GiB 内存 • 30 GiB ESSD 云盘 • Ubuntu 20.04 LTS • Mosquitto 2.0.21 + TLS 双向认证配置 • persistence false(已关闭持久化) 客户端工具:• mqttx bench(来自 emqx/emqtt-bench) • MacBook Pro M1 上运行 • 脚本通过循环自动完成不同 clients + payload 组合测试 ⸻三、Mosquitto TLS 配置概要listener 8883protocol mqttcafile /etc/mosquitto/ca_certificates/ca.crtcertfile /etc/mosquitto/ca_certificates/server.crtkeyfile /etc/mosquitto/ca_certificates/server.keyrequire_certificate trueallow_anonymous trueuse_identity_as_username truetls_version tlsv1.2persistence false⸻四、测试组合与结果每轮测试均发送 10,000 条消息,QoS 1,间隔 5ms,统计耗时、最大速率与最小速率。Clients Payload Max Rate (msg/s) Min Rate (msg/s) Duration (s)100 100B 10000 0 7100 512B 9502 498 6100 1KB 10000 10000 6100 2KB 5443 12 7200 100B 10000 10000 9200 512B 7027 2973 8200 1KB 10000 10000 7200 2KB 6005 3995 7400 100B 10000 10000 10400 512B 9510 490 10400 1KB 8418 1582 11400 2KB 4998 36 11800 100B 10000 10000 16800 512B 8793 1207 18800 1KB 10000 10000 18800 2KB 5634 114 18⸻五、分析与结论• 吞吐表现:即便在 800 并发客户端、1KB payload 情况下,也能稳定达到 1 万条每秒,表现优异。 • 瓶颈初现:在 payload 达 2KB 时部分组合(如 800 clients)最小速率明显下降,表明 TLS 数据包体积增大后服务端处理能力接近上限。 • 资源限制影响:由于服务器为 1GiB 内存、2核 CPU,配置偏低,已能支撑 800 并发连接高负载传输,说明 Mosquitto TLS 性能调优良好。 • persistence 关闭效果:测试过程中未观察到严重阻塞或数据库写入延迟问题,适用于只需传输实时消息、不需重启后恢复场景。 ⸻六、TLS 报错说明测试中仍可见如下服务端日志:OpenSSL Error[0]: error:0A000126:SSL routines::unexpected eof while readingClient mqttx_xxxxx closed its connection.这些报错说明:• 客户端主动断开连接但未发送 TLS close_notify 消息,属于 非优雅关闭; • 多见于压测工具、网络中断、连接池强制释放; • 并不会影响 MQTT 功能或数据传输; • 关闭 persistence 后该错误频次无明显减少,因此并非由持久化操作导致。 ⸻七、总结Mosquitto 作为轻量级 MQTT Broker,即使在 TLS 双向认证场景下,在资源有限的轻量服务器上依然具备较强并发处理能力,适用于中小规模物联网平台部署。建议优化方向:• 如需更高 payload 支撑能力,可增加 max_packet_size 配置; • 考虑禁用 connection_messages 减少日志压力; • 如需持久化支持可启用 persistence true 并调优 autosave_interval。 ⸻
2025年07月18日
2 阅读
0 评论
0 点赞
2025-07-18
Mosquitto MQTT TLS 并发压测报告(2025年7月)
Mosquitto MQTT TLS 并发压测报告(2025年7月)一、测试背景为了验证 Mosquitto 在启用 TLS(双向认证)时的稳定性和并发能力,本次使用 emqtt-bench 工具进行了系统性的性能测试。压测覆盖不同客户端连接数与 Payload 大小组合,记录每轮消息发送速率与系统响应能力。二、服务器配置环境• 服务器:阿里云轻量应用服务器 • CPU:2 vCPU • 内存:1 GiB • 存储:30 GiB ESSD 云盘 • 系统:Ubuntu 20.04 LTS • Mosquitto 版本:2.0.21 • TLS 模式:开启双向认证(客户端需提供证书) • 持久化:启用 persistence = true 三、Mosquitto TLS 配置概要listener 8883protocol mqttcafile /etc/mosquitto/ca_certificates/ca.crtcertfile /etc/mosquitto/ca_certificates/server.crtkeyfile /etc/mosquitto/ca_certificates/server.keyrequire_certificate trueallow_anonymous trueuse_identity_as_username truetls_version tlsv1.2persistence true说明:• 启用 TLS 双向验证,并允许匿名连接(用于压测模拟多客户端); • use_identity_as_username:将客户端证书的 Common Name (CN) 用作身份; • 开启 persistence 可在异常或重启后保留 MQTT 状态。 四、压测方法• 使用 emqtt-bench 中的 mqttx bench 模块进行压测; • 发送总量:10,000 条消息 / 每轮; • 消息频率:QoS 1,每 5ms 一条; • 客户端数目:100、200、400、800; • Payload 大小:100B、512B、1KB、2KB; • 每轮测试完成后记录最大速率、最小速率、耗时。 五、性能测试结果(开启持久化)Clients Payload Max Rate (msg/s) Min Rate (msg/s) Duration (s)100 100B 10000 0 7100 512B 9502 498 6100 1KB 10000 10000 6100 2KB 5443 12 7200 100B 10000 10000 9200 512B 7027 2973 8200 1KB 10000 10000 7200 2KB 6005 3995 7400 100B 10000 10000 10400 512B 9510 490 10400 1KB 8418 1582 11400 2KB 4998 36 11800 100B 10000 10000 16800 512B 8793 1207 18800 1KB 10000 10000 18800 2KB 5634 114 18六、TLS 错误日志观察在高并发测试期间,Mosquitto 日志中持续出现:OpenSSL Error[0]: error:0A000126:SSL routines::unexpected eof while readingClient mqttx_xxxxx closed its connection.分析说明:• 此为客户端断开连接时未正确发送 close_notify TLS 结束信号; • 多数由压测工具模拟断开、连接池中断、网络波动等非优雅断链引起; • 不影响消息传输,属于日志级提示; • 开启或关闭 persistence 不显著改变错误频次。 七、结论与建议• 并发能力强:即使在最低配置 VPS(1GiB/2核)下,Mosquitto 仍支撑 800 并发客户端稳定传输,性能出色; • 吞吐表现好:1KB Payload 下仍可达 10,000 msg/s; • TLS 成本影响明显:随着 Payload 增大,TLS 加解密成本显现,最小速率下滑; • persistence 建议视业务使用场景决定,可用于需要保留会话状态的场合。 优化建议:• 设置更高 max_packet_size 以支持大 Payload; • 使用 QoS 0 进一步提升性能(适用于容忍丢包的场景); • 若日志过多,可降低 log_type 或关闭 connection_messages 减轻 I/O 压力。 如需脚本源码或完整配置模板,可留言联系获取。测试时间:2025年7月
2025年07月18日
3 阅读
0 评论
0 点赞