本帖最后由 海上明月 于 2024-3-18 17:57 编辑
随着5G时代的来临,对于物联网的需求越来越大。大量设备接入和设备管理对网络带宽、通信协议以及平台服务架构都带来了很大挑战。如何做好以MQTT为代表的物联网协议性能测试显得尤为重要 进行MQTT性能测试可以帮助您实现以下两个目的: 1. 了解MQTT核心指标 · 不同网络环境下,消息端到端的时延 · MQTT Broker同时保持的最大连接数 · MQTT收发消息的TPS 2. 辅助MQTT Broker选型 物联网行业里MQTT Broker有很多选择,每一款MQTT Broker的系统性能与适用场景都不尽相同。通过MQTT压测,可以帮助您更加精准地选择合适的MQTT Broker。 本次测试旨在确认4核8G内存,8M带宽下,MQTT最大连接数,每秒处理事务的能力(TPS),为下一步优化做参考,以下内容仅为测试的过程 一、设置场景 创建MQTT连接,填写服务器地址,端口,协议,用户,如上图所示 创建发布主题,消息内容为正常的设备关闭控制指令,共176个字符 依次创建订阅消息,关闭连接 压力配置,并发数为1000,采用阶梯压测方式,分3个阶梯,总压测时长10分钟 二、测试结果 如图所示,CPU,内存使用率已达到100%,带宽8.61M(服务器实际带宽8M) 压测场景整个相关业务指标说明
| | | 本次压测消耗的资源总数,单位是VUM (每虚拟用户每分钟)。 | | 当前施压的并发值,如果在预热阶段则未达到配置并发,预热结束后即为配置的并发值。 | | | | | | | | | | | | 发起压测的压力来源,包括国内公网和阿里云VPC内网。 | | |
MQTT连接46379次,平均每秒建立78.66个连接,平均响应时间1.162秒左右,成功率100%
订阅总请求45773个,平均每秒订阅77.63次,平均响应时间0.140秒左右,成功率100% 发布总请求数46416,平均每秒订阅78.26次,平均响应时间0.0006秒,成功率100% 发起46416次关闭连接,平均每秒发起78.26次,平均响应时间0.5秒
三、应用服务器使用状况 服务器请求异常,APP无法登录,原正常在线设备离线
四、测试建议 4核8G内存8M带宽,全场景1000并发下,压测10分钟,总请求184444次,平均TPS为313,最大MQTT连接数46379次,CPU、内存使用100%(建议控制在80%),发布主题消息176个字符时带宽已超过8M,无错误请求,硬件配置已达瓶颈,服务器已压爆,APP无法登录,设备离线,建议MQTT服务器和应用服务器分开部署,提高服务器带宽,此次测试平均TPS较低每秒只能处理313个请求,优化后建议并发数由400初始值往上增加查找系统瓶颈,原测试环境16G内存服务器平均TPS为1475,MQTT连接总请求数22万该数据可作为优化后的参考
|