RobustMQ Bench CLI 使用文档
robust-bench 是 RobustMQ 的压测命令行工具,当前支持 MQTT 与 Meta 接口压测。
1. 命令结构
bash
robust-bench mqtt <subcommand> [options]
robust-bench meta <subcommand> [options]其中 <subcommand> 支持:
conn:连接压测pub:发布压测sub:订阅压测meta placement-create-session:MetaCreateSession写入压测meta placement-list-session:MetaListSession读取压测
2. 通用参数
--host:Broker 地址,默认127.0.0.1--port:Broker 端口,默认1883--count:客户端数量,默认1000--interval-ms:客户端启动间隔(毫秒),主要用于pub/sub,默认0--duration-secs:压测时长(秒),用于pub/sub,默认60--qos:QoS(0|1|2),默认0--username/--password:用户名密码(推荐固定为admin/robustmq)--output:输出格式,table|json,默认table
3. 快速示例
3.1 连接压测
bash
robust-bench mqtt conn \
--host 127.0.0.1 \
--port 1883 \
--username admin \
--password robustmq \
--count 10000 \
--concurrency 1000 \
--mode create或持连接模式:
bash
robust-bench mqtt conn \
--host 127.0.0.1 \
--port 1883 \
--username admin \
--password robustmq \
--count 10000 \
--concurrency 1000 \
--mode hold \
--hold-secs 603.2 发布压测
bash
robust-bench mqtt pub \
--host 127.0.0.1 \
--port 1883 \
--username admin \
--password robustmq \
--count 1000 \
--topic bench/%i \
--payload-size 256 \
--message-interval-ms 10 \
--qos 1 \
--duration-secs 1203.3 订阅压测
bash
robust-bench mqtt sub \
--host 127.0.0.1 \
--port 1883 \
--username admin \
--password robustmq \
--count 1000 \
--topic bench/# \
--qos 1 \
--duration-secs 1203.4 Meta 写入压测
单条模式:
bash
robust-bench meta placement-create-session \
--host 127.0.0.1 \
--port 1228 \
--count 100000 \
--concurrency 1000 \
--timeout-ms 3000 \
--output table批量模式(--batch-size 指定每次 gRPC 请求携带的 Session 数量):
bash
robust-bench meta placement-create-session \
--host 127.0.0.1 \
--port 1228 \
--count 100000 \
--concurrency 1000 \
--batch-size 100 \
--timeout-ms 3000 \
--output table3.5 Meta 读取压测
bash
robust-bench meta placement-list-session \
--host 127.0.0.1 \
--port 1228 \
--count 100000 \
--concurrency 1000 \
--timeout-ms 3000 \
--output table4. 输出说明
工具包含两层输出:
- 运行中实时输出(每秒):
- 每秒吞吐(ops/s)
- 当前累计请求
- success/failed/timeout/received
- p95/p99 延迟
- 结束后详细报告:
- 总吞吐(total/avg/peak)
- 成功率、错误率、超时率
- 延迟分位(min/avg/p50/p95/p99/max)
- 错误分布
- 每秒时间线
5. 建议
- 首次压测先用较小
count验证连通性,再逐步拉高。 - 发布压测建议至少同时启动一个订阅端验证链路完整性。
- 回归对比时建议固定
count、concurrency(conn)/interval-ms(pub/sub)、duration-secs和topic模板。
