emqtt_bench安装使用

emqtt_bench 是基于 Erlang 编写的,一个简洁强大的 MQTT 协议性能测试工具,emqtt_bench的运行依赖于 Erlang/OTP 21.2 以上版本运行环境建议使用erlang1:24.1.5-1

Erlang安装参考

1 下载 emqtt-bench 最新代码,并编译

# 下载emqtt-bench源码
git clone https://github.com/emqx/emqtt-bench

cd emqtt-bench
# 安装编译所需包
sudo apt install libatomic1
# 执行编译
make

2 安装cmake命令

编译过程可能会报错缺少cmake命令

执行

# 安装cmake
sudo apt  install cmake

再进行编译,出现下图证明编译完成

编译完成过后emqtt_bench文件内容如下

3 安装完成

3.1 查看是否安装成功

执行./emqtt_bench,出现如下内容则证明 emqtt_bench 已正确安装到主机

3.2 修改系统参数

# 增加句柄
ulimit -n 200000
# 增加端口
sudo sysctl -w net.ipv4.ip_local_port_range="1025 65534"
# 查看端口范围
cat /proc/sys/net/ipv4/ip_local_port_range

4 常用命令

emqx普通tcp连接默认端口为1883,ssl双向认证默认端口为8883

使用ssl连接时需要将erlang升级到erlang opt 25,具体版本为1:25.0-1

4.1 连接数测试

1.查看帮助

./emqtt_bench conn --help

参数简写可选值默认值说明
--host-h-localhost要连接的 MQTT 服务器地址
--port-p-1883MQTT 服务端口
--version-V3
4
5
5使用的 MQTT 协议版本
--count-c-200客户端总数
--startnumber-n-0客户端数量起始值
--interval-i-10每间隔多少时间创建一个客户端;单位:毫秒
--interval_of_msg-I-1000每间隔多少时间发送一个消息
--username-u-无;非必选客户端用户名
--password-P-无;非必选客户端密码
--topic-t-无;必选发布的主题;支持站位符:
%c:表示 ClientId
%u:表示 Username
%i:表示客户端的序列数
--szie-s-256消息 Payload 的大小;单位:字节
--qos-q-0Qos 等级
--retain-rtrue
false
false消息是否设置 Retain 标志
--keepalive-k-300客户端心跳时间
--clean-Ctrue
false
true是否以清除会话的方式建立连接
--ssl-Strue
false
false是否启用 SSL
--certfile--客户端 SSL 证书
--keyfile--客户端 SSL 秘钥文件
--ws-true
false
false是否以 Websocket 的方式建立连接
--ifaddr--指定客户端连接使用的本地网卡

2.普通tcp连接

./emqtt_bench conn -h 127.0.0.1 -u root -P 123456 -c 50000 -R 1000  -k 300 -C false -p 1883

3.ssl双向认证连接

./emqtt_bench conn -h 127.0.0.1 -u root -P 123456 -c 50000 -R 1000 --certfile /home/ubuntu/mycerts/client.pem --keyfile /home/ubuntu/mycerts/client.key -S -k 300 -C true -p 8883

4.2 发布测试

1.查看帮助

./emqtt_bench pub --help

-I:每间隔多少时间发送一个消息(ms)

-t:发布的主题;支持站位符(%c:表示 ClientId,%u:表示 Username,%i:表示客户端的序列数)

-s:消息 Payload 的大小;单位:字节

-q:Qos 等级(0,1,2)默认为0

-r:消息是否设置 Retain 标志,默认为false

2.普通tcp连接发送

./emqtt_bench pub -h 127.0.0.1  -u root -P 123456 -c 50000 -R 1000 -I 25000 -t iot/commands/set/i% -s 2048 -q 1 -r true -k 300 -C false -p 1883

3.ssl双向认证连接

./emqtt_bench pub -h 127.0.0.1  -u root -P 123456 -c 20 -R 10 -I 2000 -t iot/commands/set/test  --certfile /home/ubuntu/mycerts/client.pem --keyfile /home/ubuntu/mycerts/client.key -S -s 2048 -q 0 -r true -k 300 -C false -p 8883

4.3 订阅测试

1.查看帮助

./emqtt_bench sub --help

2.普通tcp连接

./emqtt_bench sub -h 127.0.0.1  -u root -P 123456 -c 50000 -i 4  -t iot/commands/set/%i -q 1 -k 300 -C false -p 1883

3.ssl双向认证连接

./emqtt_bench sub -h 127.0.0.1  -u root -P 123456 -c 10000 -R 1000  -t iot/commands/set/test  --certfile /home/ubuntu/mycerts/client.pem --keyfile /home/ubuntu/mycerts/client.key -S -p 8883 -q 0  -k 300 -C false

  • 22
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值