MQTT 开放基准测试规范:全面评估你的 MQTT Broker 性能

简介: EMQ的MQTT开放基准测试规范提供开放实用的评估基准,基于真实的使用场景和可行的度量标准,帮助物联网开发者全面评估MQTT Broker的性能。

MQTT 开放基准测试规范:全面评估你的 MQTT Broker 性能 图1.png

引言

我们很高兴地宣布:由 EMQ 提供的 MQTT 开放基准测试规范现已正式发布!

该测试规范包含了实用的典型使用场景、一套衡量 Broker 性能的主要指标,以及一个模拟负载和收集测试结果的工具,可以帮助开发者评估 MQTT Broker 的可扩展性和性能,从而选择最需要和合适的产品。

MQTT Broker 集群 图2.png

客观实用的 MQTT 负载测试方法

发布/订阅模式下,MQTT Broker 是连接设备和传输物联网数据的核心。随着物联网的普及,处理海量设备及其产生的高速数据流充满了挑战,MQTT Broker 的可扩展性和性能也因此成为物联网解决方案的关键。

在这一背景下,EMQ 提出了这套 MQTT 开放基准测试规范,旨在提供一种客观且实用的 MQTT Broker 测试方法,它将通过以下主要优势简化 MQTT Broker 的负载测试:

提供开放实用的评估基准

尽管有许多研究论文和技术文章对 MQTT Broker 进行了评估和比较,但当前的基准测试通常只衡量一些特定的因素,并不能反映出大规模物联网应用的真实场景。而 EMQ 提供的 MQTT 开放基准测试规范则从多个方面进行全面评估,同时设计了对任何 Broker 都公平的场景,以此来建立一个客观中立的测试基准。

基于真实的使用场景和可行的度量标准

我们分析并解决了来自我们客户的大量实际测试需求,基于此提出了这套 MQTT 开放基准测试规范。我们相信它可以满足绝大多数的测试需求。

面向社区开放的全面基准测试

我们致力于围绕这套 MQTT 基准测试规范建立一个开放和协作的社区。随着社区贡献的各种使用场景不断增加,这套规范也将能更加准确地反映行业需求。欢迎与我们一起为 MQTT 协议建立一个全面的基准测试规范。

MQTT 开放基准测试规范的内容

第一版 MQTT 开放基准测试规范主要介绍了影响 MQTT broker 性能的关键因素,并定义了衡量可扩展性、可用性、延迟时间和计算资源成本的指标。

规范还将典型的使用场景分为连接、广播、点对点和上报,并包含了基于真实客户需求的实际用例。

此外,为了说明这些用例在基准测试中是如何应用的,我们提供了一些详细的基准测试结果的例子。

基准测试结果示例

为了展示一个实际的例子,下面我们将介绍一个使用 NanoMQ 作为 MQTT Broker 的广播用例和基准测试结果的详细情况。

在这个广播用例中,建立了 5 个发布者和 1000 个订阅者的连接(即为了“广播”的目的,订阅者比发布者多),并使用了 5 个主题进行发布/订阅。每个订阅者完成连接后,立即订阅所有 5 个主题。每个发布者完成连接后,都向一个独占的主题发送一个 16 字节的消息。发布者和订阅者都使用 QoS 1。每个发布者的发布速率是每秒 50 条消息,因此,总的预期订阅速率是每秒 250K 条消息。

在本次基准测试中,NanoMQ 部署在一个单节点上。配置详情如下:

表格1.png

本次基准测试使用了 XMeter 作为测试工具,它模拟了所有的设备连接和消息吞吐量,分析数据并生成指标报告。以下是一些重点指标:

表格2.png

详细的图表如下:

MQTT Benchmark Result 图3.png

未来规划

在上文我们使用了 NanoMQ 作为示例,但实际上这套测试规范对所有采用了 MQTT 协议的 Broker 都是适用的。我们也将对其进行持续的迭代和完善,并计划后续推出一个用于 MQTT 基准测试的工具。

欢迎感兴趣的读者查看我们的 GitHub 主页了解更多信息,期待来自大家的宝贵意见和贡献。

版权声明: 本文为 EMQ 原创,转载请注明出处。

原文链接:https://www.emqx.com/zh/blog/open-mqtt-benchmark-suite-the-ultimate-guide-to-mqtt-performance-testing

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
29天前
|
数据采集 监控 机器人
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
45 4
|
2月前
|
安全 Linux 虚拟化
|
10天前
|
数据采集 人工智能 自动驾驶
VSI-Bench:李飞飞谢赛宁团队推出视觉空间智能基准测试集,旨在评估多模态大语言模型在空间认知和理解方面的能力
VSI-Bench是由李飞飞和谢赛宁团队推出的视觉空间智能基准测试集,旨在评估多模态大型语言模型(MLLMs)在空间认知和理解方面的能力。该基准测试集包含超过5000个问题-答案对,覆盖近290个真实室内场景视频,涉及多种环境,能够系统地测试和提高MLLMs在视觉空间智能方面的表现。
51 16
VSI-Bench:李飞飞谢赛宁团队推出视觉空间智能基准测试集,旨在评估多模态大语言模型在空间认知和理解方面的能力
|
5天前
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
27 11
|
7天前
|
算法 Java 测试技术
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
39 13
|
7天前
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
37 10
|
2月前
|
机器学习/深度学习 人工智能 算法
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
BALROG 是一款用于评估大型语言模型(LLMs)和视觉语言模型(VLMs)在复杂动态环境中推理能力的基准测试工具。它通过一系列挑战性的游戏环境,如 NetHack,测试模型的规划、空间推理和探索能力。BALROG 提供了一个开放且细粒度的评估框架,推动了自主代理研究的进展。
45 3
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
|
14天前
|
消息中间件 Kafka 测试技术
消息队列 MQ 性能大揭秘
本文对比了RabbitMQ、RocketMQ、Kafka和Pulsar四款消息队列的性能。RabbitMQ的吞吐量为万级,延迟在低吞吐量时可低至微秒级;高吞吐量下延迟显著上升。RocketMQ官方宣称支持万亿级吞吐量,实际测试中可达百万级TPS,延迟为毫秒级。Kafka和Pulsar的吞吐量均为百万级,Kafka延迟低至2ms,Pulsar延迟约10ms。总体来看,Kafka在高吞吐量下表现最优,而RabbitMQ适合对速度与可靠性要求高的低吞吐量场景。
29 0
消息队列 MQ 性能大揭秘
|
28天前
|
算法 Java 测试技术
Benchmark.NET:让 C# 测试程序性能变得既酷又简单
Benchmark.NET是一款专为 .NET 平台设计的性能基准测试框架,它可以帮助你测量代码的执行时间、内存使用情况等性能指标。它就像是你代码的 "健身教练",帮助你找到瓶颈,优化性能,让你的应用跑得更快、更稳!希望这个小教程能让你在追求高性能的路上越走越远,享受编程带来的无限乐趣!
86 13
|
2月前
|
测试技术 API 微服务
性能测试并发量评估新思考
性能测试并发量评估新思考
68 5
性能测试并发量评估新思考