本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
emqtt-bench 是一个用 Erlang 编写的轻量级 MQTT v5.0 基准测试工具,用于评估 MQTT 服务器的性能。该工具支持模拟大量并发 MQTT 客户端,进行连接、订阅、发布等操作的性能测试,帮助用户评估 MQTT 服务器在不同场景下的处理能力,如最大并发连接数、消息吞吐量、延迟等关键指标。
注意:以下示例中,"Usage" 指的是镜像内的脚本
emqtt_bench,而 Docker 镜像名称为emqx/emqtt-bench。
%u、%c、%i),可生成动态主题用于测试 MQTT 服务器处理并发连接的能力。
docker run -it emqx/emqtt-bench conn --help
选项说明:
| 选项 | 描述 | 默认值 |
|---|---|---|
| --help | 显示帮助信息 | - |
| -h, --host | MQTT 服务器主机名或 IP 地址 | localhost |
| -p, --port | MQTT 服务器端口 | 1883 |
| -c, --count | 最大客户端数量 | 200 |
| -n, --startnumber | 起始编号 | 0 |
| -i, --interval | 连接间隔(毫秒) | 10 |
| -u, --username | 连接用户名(可选) | - |
| -P, --password | 连接密码(可选) | - |
| -k, --keepalive | 保活时间(秒) | 300 |
| -C, --clean | 清除会话 | true |
| -S, --ssl | 使用 SSL 连接 | false |
| --certfile | 客户端证书文件路径(如需双向认证) | - |
| --keyfile | 客户端私钥文件路径(如需双向认证) | - |
| --ifaddr | 本地 IP 地址或接口地址 | - |
以 100 个/秒的速率创建 50,000 个并发连接:
docker run -it emqx/emqtt-bench conn -c 50000 -i 10
用于测试 MQTT 服务器处理订阅操作的能力。
docker run -it emqx/emqtt-bench sub --help
选项说明:
| 选项 | 描述 | 默认值 |
|---|---|---|
| --help | 显示帮助信息 | - |
| -h, --host | MQTT 服务器主机名或 IP 地址 | localhost |
| -p, --port | MQTT 服务器端口 | 1883 |
| -V, --version | MQTT 协议版本(3/4/5) | 5 |
| -c, --count | 最大客户端数量 | 200 |
| -n, --startnumber | 起始编号 | 0 |
| -i, --interval | 连接间隔(毫秒) | 10 |
| -t, --topic | 订阅主题(支持 %u、%c、%i 变量) | - |
| -q, --qos | 订阅 QoS 级别(0/1/2) | 0 |
| -u, --username | 连接用户名(可选) | - |
| -P, --password | 连接密码(可选) | - |
| -k, --keepalive | 保活时间(秒) | 300 |
| -C, --clean | 清除会话 | true |
| -S, --ssl | 使用 SSL 连接 | false |
| --certfile | 客户端证书文件路径(如需双向认证) | - |
| --keyfile | 客户端私钥文件路径(如需双向认证) | - |
| --ws | 使用 WebSocket 传输 | false |
| --ifaddr | 本地 IP 地址或接口地址 | - |
以 100 个/秒的速率创建 50,000 个并发订阅客户端,订阅主题 bench/%i(%i 为客户端编号),QoS 级别 2:
docker run -it emqx/emqtt-bench sub -c 50000 -i 10 -t bench/%i -q 2
用于测试 MQTT 服务器处理消息发布的吞吐量和延迟。
docker run -it emqx/emqtt-bench pub --help
选项说明:
| 选项 | 描述 | 默认值 |
|---|---|---|
| --help | 显示帮助信息 | - |
| -h, --host | MQTT 服务器主机名或 IP 地址 | localhost |
| -p, --port | MQTT 服务器端口 | 1883 |
| -V, --version | MQTT 协议版本(3/4/5) | 5 |
| -c, --count | 最大客户端数量 | 200 |
| -n, --startnumber | 起始编号 | 0 |
| -i, --interval | 连接间隔(毫秒) | 10 |
| -I, --interval_of_msg | 消息发送间隔(毫秒) | 1000 |
| -u, --username | 连接用户名(可选) | - |
| -P, --password | 连接密码(可选) | - |
| -t, --topic | 发布主题(支持 %u、%c、%i 变量) | - |
| -s, --size | 消息 payload 大小(字节) | 256 |
| -q, --qos | 发布 QoS 级别(0/1/2) | 0 |
| -r, --retain | 保留消息标志 | false |
| -k, --keepalive | 保活时间(秒) | 300 |
| -C, --clean | 清除会话 | true |
| -S, --ssl | 使用 SSL 连接 | false |
| --certfile | 客户端证书文件路径(如需双向认证) | - |
| --keyfile | 客户端私钥文件路径(如需双向认证) | - |
| --ws | 使用 WebSocket 传输 | false |
| --ifaddr | 本地 IP 地址或接口地址 | - |
创建 100 个并发客户端,每个客户端以 100 条/秒的速率发布消息,主题 bench/%i(%i 为客户端编号),消息大小 256 字节:
docker run -it emqx/emqtt-bench pub -c 100 -I 10 -t bench/%i -s 256
通过 --ifaddr 选项指定客户端使用的本地 IP 地址:
docker run -it emqx/emqtt-bench pub --ifaddr 192.168.1.10 docker run -it emqx/emqtt-bench sub --ifaddr 192.168.2.10
连接使用 SSL/TLS 加密的 MQTT 服务器(端口通常为 8883):
# 订阅测试 docker run -it emqx/emqtt-bench sub -c 100 -i 10 -t bench/%i -p 8883 -S # 发布测试 docker run -it emqx/emqtt-bench pub -c 100 -I 10 -t bench/%i -p 8883 -s 256 -S
使用客户端证书和私钥进行双向 SSL 认证:
# 订阅测试(需挂载证书文件到容器内,假设本地证书路径为 /local/certs/) docker run -it -v /local/certs:/certs emqx/emqtt-bench sub -c 100 -i 10 -t bench/%i -p 8883 --certfile /certs/client-cert.pem --keyfile /certs/client-key.pem # 发布测试 docker run -it -v /local/certs:/certs emqx/emqtt-bench pub -c 100 -i 10 -t bench/%i -s 256 -p 8883 --certfile /certs/client-cert.pem --keyfile /certs/client-key.pem
注意:双向 SSL 连接需将本地证书文件挂载到容器内,使用
-v参数指定挂载路径。
-c(客户端数量)选项不应设置超过 60,000。EMQX 团队
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429