引言
近十年来,物联网迎来了爆炸式的增长。面对海量的设施及其产生的数据,物联网利用和服务变得越来越简单。咱们不仅要保障这些物联网零碎的业务性能正确无误,还要保证系统可能反对大量设施之间继续稳固地通信。
因而,咱们须要通过性能测试以确保所构建的物联网零碎是稳固牢靠的。
为何性能测试对于物联网零碎如此重要?
对物联网零碎进行集成测试和端到端测试,以保证系统性能的正确性,曾经是业界的通用做法。
性能测试是一种测验零碎健壮性的办法,它关注扩展性、可用性、可靠性等指标,能够帮忙发现零碎在失常应用场景下以及在极限应用场景下的体现。
在物联网零碎的开发过程中,性能测试能够提供一种基于给定指标的评估。通过将测试后果与基准值进行比拟,能够判断零碎性能是否有降落。
将性能测试纳入继续集成有助于发现零碎性能的瓶颈,并在问题尚未造成较高损失之前加以解决。
此外,性能测试还为容量布局提供了根据,有助于用户提前做好筹备。
物联网零碎性能测试的关注点有哪些?
在对物联网零碎进行性能测试时,应次要从以下两个角度思考。
- 物联网零碎的性能体现如何。次要关注零碎是否可能应答负载减少,是否可能解决极其状况下的问题和故障,零碎的提早是否在正当的范畴内。有一些指标能够量化这些属性,如响应工夫、吞吐量、成功率、偏差等。
- 为了达到预期的零碎性能,须要耗费多少计算资源。在能实现雷同指标的前提下,应用更少的计算资源无疑能够节省开支,减少收益。量化计算资源的指标包含 CPU 使用率、内存使用率、磁盘 I/O 速率、数据包传输率等。
MQTT 性能测试的常见场景
尽管不同的零碎和协定有各自的特定需要,须要设计不同的场景和测试用例,然而在为物联网零碎设计性能测试时,咱们能够参考以下几种常见的类型:
- 测试零碎在稳固状态下的性能体现。目标是验证零碎是否合乎失常应用的冀望。
- 测试零碎在短时间内接受过载的性能体现。目标是验证零碎在遭逢突发压力时是否仍能失常工作或者迅速复原。
- 测试零碎长期运行的性能体现。目标是验证零碎如果继续运行一段时间是否保持稳定。
- 测试零碎在不稳固的网络环境下的性能体现。目标是验证零碎是否可能应答弱网络(这对于物联网服务来说很常见)的状况。
因为 MQTT 是物联网畛域最宽泛应用的协定,咱们也依据理论客户需要列举了一些 MQTT 协定的常见测试场景:
- 连贯(Connection):客户端在肯定工夫内连贯到 Broker,并与 Broker 维持连贯一段时间。
- 播送(Fan-out):大量客户端作为订阅者,只有多数或单个发布者。
- 点对点(Point-to-point):发布者客户端和订阅者客户端数量雷同。
- 上报(Fan-in):大量客户端作为发布者,只有多数或单个订阅者。
在公布 / 订阅模型的背景下,设计 MQTT 测试场景的关键在于思考如何模仿发布者和订阅者的不同行为。
MQTT 性能测试面临的挑战
对物联网零碎进行性能测试也面临着一些挑战。物联网零碎在架构、网络模式、通信协议等方面与传统的互联网零碎有所区别。因而,传统的性能测试方法不能间接套用到物联网零碎中。
首先,物联网零碎须要与大量设施进行连贯和通信,并产生海量的数据。在性能测试中,模仿实在的规模十分重要,这须要对生成负载的工具进行更精密的设计,以及对测试后果进行更无效的剖析。
其次,物联网的通信形式与互联网不同,因而多种物联网通信协议应运而生。
对于 MQTT 协定,它所具备的一些特点使其与互联网音讯协定有很大的区别:
- MQTT 是轻量级的,专为不稳固的网络连接和节俭带宽而设计。
- MQTT 应用 QoS 来反对简单的设施网络环境。
- MQTT 与数据无关。
- MQTT 具备长久会话的个性。
因而在对 MQTT 协定进行测试时,要留神思考它的独特个性。
EMQ 的性能测试解决方案
性能测试对于物联网零碎来说十分重要,它能够升高危险,进步健壮性,帮忙企业在疾速倒退的物联网行业中达成业务指标。
EMQ 推出了 MQTT 凋谢基准测试标准,为 MQTT 基准测试提供了一种无效的办法。它剖析了性能评估的要害指标,并提供了基准测试的理论用例。开发人员能够取得不同 MQTT Broker 之间主观的比拟参考,从而做出理智的抉择。
理解更多信息:MQTT 凋谢基准测试标准:全面评估你的 MQTT Broker 性能
XMeter 是 EMQ 的另一款产品,它提供对 MQTT 协定以及其余物联网协定的负载测试服务。XMeter 能够程度扩大,可能模仿百万级 MQTT 客户端。它以流式形式收集和解决数据,并生成蕴含次要性能指标的报告。如需理解更多对于全托管 XMeter 云服务的信息,请参考 XMeter:全托管 MQTT 负载测试服务。
版权申明:本文为 EMQ 原创,转载请注明出处。
原文链接:https://www.emqx.com/zh/blog/building-reliable-iot-systems-an-introduction-to-mqtt-performance-testing