文章目录
基础知识
# 官方文档(含参数演示)
https://docs.emqx.com/zh/emqx/v5.8/performance/benchmark-emqtt-bench.html
# emqtt_bench 共三个子命令
pub: 创建大量client,并执行发布主题操作
sub: 创建大量client,并执行订阅主题,并接受消息的操作
conn: 创建大量连接
# 帮助手册
emqtt_bench pub --help
emqtt_bench sub --help
emqtt_bench conn --help
# 特别说明的几个参数
-V # 可选参数(3|4|5),分别表示 MQTT v3.1,MQTT v3.1.1,MQTT v5
--ifaddr 192.168.0.100 # 指定用某个ip发起连接
如何启动emqtt-bench
## 拉取镜像,并启动容器,并进入其命令行便可以执行测试命令(不要尝试-d 后台运行,我就没成功过)
docker pull emqx/emqtt-bench:latest
docker run --rm -it --name emqtt-bench --network host --entrypoint bash emqx/emqtt-bench:latest
emqtt典型测试场景
## A、仅连接数测试(单纯看能连多少)
# 启动2000个连接测试
emqtt_bench conn -h 192.168.60.81 -p 1883 -c 2000
## B、吞吐测试(找两个emqtt_bench,一个先启动订阅,一个后启动发布)
# 第一步、在 1号 emqtt_bench 测试机上 启动 1w 个订阅客户端(-V 4 表示 MQTT v3.1.1)
emqtt_bench sub -h 192.168.60.81 -p 1883 -t "t/%i" -c 10000 -V 4
# 第二步、同时 在 2号 emqtt_bench 测试机上 启动 1w 个发布端,间隔30s发布一条大小为16KB的QoS 0消息。
emqtt_bench pub -h 192.168.60.81 -p 1883 -t "t/%i" -c 10000 -I 30000 -s 16384 -q 0 -V 4
## 性能观察(单纯连接 资源占用很低,主要是订阅消息耗费资源,建议haprox,emqx 主机的CPU 主频尽可能高)
# 在允许emqx 容器的主机上执行 top -H 查看 emqx调度器是否分配了 与cpu对应的 线程数量
top -H
如果文章对你有帮助,欢迎点击上方按钮打赏作者
暂无评论