5 分钟创建并运行你的第一个 MQTT Benchmark
使用可达且已获授权的 Broker,创建安全的 25 Client Fan-out 基线,通过 Preflight,并在 5 分钟内验证实时 MQTT 流量。
- 作者:
- Mqttable
- 更新:
本页目录9 个章节
加载中...
使用可达且已获授权的 Broker,创建安全的 25 Client Fan-out 基线,通过 Preflight,并在 5 分钟内验证实时 MQTT 流量。
加载中...
使用 1 个 Publisher 和 24 个 Subscriber 创建一组小规模、可重复的 MQTT Benchmark。连接获授权 Broker、载入 Fan-out 场景、通过 Preflight,然后确认实时流量符合预期。
开始条件
已安装应用 · 获授权 Broker · 准确 endpoint
安全基线
1 个 Publisher · 24 个 Subscriber · 45 秒
流量
完成标准
在线 25 · 发送 1/s · 接收 24/s · 0 个错误
从 Mqttable 侧边栏打开压测。如果当前 Runtime 没有已保存的 Benchmark 目标,选择立即压测。
在新建 Broker中填写:
First Fan-out;45 秒;0 秒;立即压测不会启动或部署 Broker。 截图中的一次性文档目标名为 Bench Docs Demo,地址是 mqtt://127.0.0.1:18883;除非你已经在该地址启动自己的 listener,否则不要照抄这个 endpoint。
选择测试连接。本教程端点预期两个版本均显示连接正常,然后选择创建。
Benchmark Broker 的测试不携带 MQTT 用户名和密码,但会使用当前 TLS 配置。认证拒绝不是保存限制,需另行配置 Benchmark 客户端凭据。本页不提供独立 Client 表单的测试入口;端点探测成功也不代表消息权限已通过。

使用自己的获授权 endpoint;图中两种协议测试分别通过,但连接测试不是创建目标的权限门槛。
打开烧杯菜单,选择扇出(1 发布端 → 1 千订阅端)。模板会创建:
fanout-pub:1 个 Publisher,每秒向 fo/data 发送一条 QoS 1 消息;fanout-sub:1,000 个 Subscriber,订阅 fo/#。不要直接运行载入后的 1K 模板。 它是可编辑场景,不是安全的首次运行规模。

载入完整 Fan-out 计划,然后在 Preflight 或开始前缩小 Subscriber 规模。
打开 fanout-sub,只修改两个值:
1000 → 24;100 → 24 客户端/秒。保存 Group。保留 fo-sub-{index}、MQTT 5.0、Clean Start 和 300 秒 Keep Alive。模板已经提供相互匹配的 fo/data Scheduled Message 和 fo/# Subscription;第一次运行不需要打开或重新创建它们。

首次运行的安全边界是 24 个 Subscriber,目标每秒新建 24 个连接。
选择运行预检。创建负载前,确认 Summary 显示:
fanout-pub 和 fanout-sub;把结果作为运行门禁:
本地截图中的警告涉及 macOS 负载生成主机的 mbuf 基线和回环网络路径。它们没有阻止这次小规模功能演示,但会让 Broker 容量对比失真。若要把 Benchmark 用作性能证据,应先处理主机警告。

Preflight 必须准确描述准备运行的 workload,并且不能留下未解决的阻塞项。
Warm-up 为 0 时,选择开始会从 Setup 直接进入 45 秒 Measurement,然后进入 Disconnecting。
Measurement 期间,将实时卡片与计划对照:

在线数、发送速率和接收速率之间的关系证明基线正按配置运行。
成功: 你的第一个 Benchmark 已经在自己的获授权 Broker 上运行。可以在这里停止——5 分钟路径已经完成。只有需要理解、导出、自定义、排错或删除时,才继续阅读。
45 秒后,必须看到正在显示上次运行快照 · 已完成,Phase Timer 为 00:00:45。Disconnecting 后,实时在线数、发送速率和接收速率会正确回到 0;应使用保留图表判断已经结束的 Measurement。
在延迟中:

已完成和保留图表证明 Measurement 结束;实时速率归零证明 teardown 完成。
这些数值只描述本次运行。Loopback 结果不是远程 Broker 容量结论。比较两轮结果前,应保持 Broker、网络路径、Payload、QoS、规模、时长和负载生成主机条件可比。
已完成截图的 Preflight 栏显示已过期,但上次运行快照仍是已完成。快照继续记录这次已结束的运行;再次选择开始前必须重新运行 Preflight。
需要保存可移植证据时,打开图表操作 → 导出全部数据。Mqttable 会下载 benchmark_all_charts_data.csv;正式导出包含 Measurement rows,不包含 Warm-up rows。

导出全部数据可以在实时图表之外保存已完成的 Measurement。
每次只改变一个维度,让下一轮结果仍然可以解释:
任何配置变化都会使上一次 Preflight 过期。开始前必须重新运行。
bad_username_or_password 时,检查 Benchmark 目标连接的用户名、密码及 Broker 认证配置。关闭通知或刷新页面后仍可查看详情,直到新的运行替换快照或退出应用。fo/data 对应 fo/#。需要继续编辑和运行时保留该目标。需要移除时,先停止正在运行的任务,选择步骤 1 中创建的准确 Broker identity,然后在编辑 Broker中选择删除。截图显示文档目标 Bench Docs Demo;实际操作必须选择你自己的准确名称。

只删除准确的教程目标;它的 Group、Client 和相关 Benchmark 数据也会被移除。
能力与安全边界:
1–600 秒 Measurement。Pro 不限制时长;Run Duration = 0 表示无限 Measurement,因此需要 Pro。完成基线后,可以用 Monitor 关联 Runtime 资源和 Benchmark phases,或用 Proxy 引入受控网络故障。