压测工具
使用工具
这里使用emqtt-bench
安装
操作系统:centos7
安装包:emqtt-bench-0.4.6-alpha.2-centos7-amd64.tar.gz(已编译好,下载解压即可使用,自编译可能要踩一堆坑)
链接:https://pan.baidu.com/s/1phZbYbQx_e0zotQnigj-1Q
提取码:mest
使用
# 创建存放目录并解压
mkdir -p /home/mqtt/emqtt-bench/
tar -zxvf emqtt-bench-0.4.6-alpha.2-centos7-amd64.tar.gz -C /home/mqtt/emqtt-bench/
# 添加环境变量
echo 'export PATH=$PATH:/home/mqtt/emqtt-bench/bin' >> /etc/profile
soure /etc/profile
emqtt_bench
共三个子命令:
-
pub
:用于创建大量客户端执行发布消息的操作。 -
sub
:用于创建大量客户端执行订阅主题,并接受消息的操作。 -
conn
:用于创建大量的连接
要查看每个子命令的方法,可以通过例如emqtt_bench pub --help 查看
性能压测
例如:创建50000个mqtt:ssl客户端连接(emqx单台支持的mqtt:ssl连接最大102400)
./emqtt_bench conn -h 127.0.0.1 -p 11883 -u user -P password -c 50000 -S
出现如下错误
这个可能时系统能打开的文件句柄数设置太小了,可以通过ulimit -n 1000000(临时生效)
永久生效:修改文件,设置用户最大打开文件数 ):文件末尾添加如下
* soft nofile 1000000
* hard nofile 1000000
修改系统所有进程可打开的文件数量
临时方案
sysctl -w fs.file-max=