随着5G时代的来临,对于物联网的需求越来越大。大量设备接入和设备管理对网络带宽、通信协议以及平台服务架构都带来了很大挑战。如何做好以MQTT为代表的物联网协议性能测试显得尤为重要。本文则介绍如何使用阿里云性能测试PTS对MQTT协议进行性能压测。
- 了解MQTT核心指标
- 不同网络环境下,消息端到端的时延
- MQTT Broker同时保持的最大连接数
- MQTT收发消息的TPS
- 辅助MQTT Broker选型
物联网行业里MQTT Broker有很多选择,每一款MQTT Broker的系统性能与适用场景都不尽相同。通过MQTT压测,可以帮助您更加精准地选择合适的MQTT Broker。
而MQTT性能测试的难点在于能够同时发起并保持大量连接。目前最常见的MQTT性能测试方法是基于JMeter的MQTT-Xmeter插件实现的。该插件的底层原理是每个线程模拟一个MQTT Client向MQTT Broker发送连接请求。然而,JMeter的线程模型(一个并发为一个线程)决定了若需要发起大量的连接请求,施压机就必须创建同等数量的线程。这不仅造成资源的浪费,还限制了单个施压机能够发起的总连接请求数。
阿里云性能测试PTS允许单个线程发起并保持最多100个,单台施压机最大5万个,单次压测最大1亿个MQTT连接数。使用PTS可以帮助您轻松发起千万至亿级的MQTT连接,节省大量时间成本和机器成本。
使用PTS实现MQTT压测
步骤一:创建压测场景
登录PTS控制台,在左侧导航栏选择 ,然后单击MQTT压测。
步骤二:配置压测场景
对于MQTT压测,PTS支持配置建立连接、发布消息、订阅消息和关闭连接四种测试节点。若您仅需测试Broker支持的最大连接数,可以选择只创建建立连接节点。
若所选压测实例为阿里云的MQTT实例,则您只需要打开签名鉴权开关,填入AccessKey ID、AccessKey Secret和实例ID,PTS会动态生成用户名和密码。PTS支持指定单并发连接数,以及均匀递增、阶梯递增和固定压力三种流量模型。您可以通过调整压测中并发数,来控制MQTT连接数的增长速率。
此处以一个简单示例为您介绍如何配置压测场景。
示例如下:1万个MQTT连接作为Pub客户端发送消息,每个Pub客户端每秒发送1条QoS0消息;9.9万个MQTT连接作为Sub客户端接收消息,每个Sub客户端每秒接收1条QoS0消息。因此,总的消息发布吞吐率为每秒10000,总的消息接收吞吐率达到每秒100万。
更多关于配置压测场景的详细信息,请参见创建MQTT压测场景。
步骤三:发起压测
完成场景配置和施压配置后,可进行场景调试来验证场景的配置是否合理,然后启动场景,发起压测。
步骤四:查看压测报告
压测结束之后,系统会自动获取压测过程中的数据,例如压测场景指标、业务详情数据、监控详情数据和API采样日志等,形成压测报告,供您查看和导出。更多详细信息,请参见查看MQTT压测报告。