Centos 6.5下 mosquitto 阿里云单机压力测试

上篇文章 MQTT之centos6.5 下编译Mosquitto 我们让 mosquitto 正常运行,那么单机环境下mosquitto 能承载多少长连接呢?为此需要靠压力测试说话,用什么进行压力测试呢?

经过寻找,找到了一个测试工具 https://github.com/emqtt/emqtt_benchmark, 此工具是用erlang 编写的,但不影响测试


测试环境:

broker:  阿里云centos6.5, 双核, 4G 内存

client: 3台阿里云双核, 4G 内存


1. 首先进行linux 内核参数调优


参考地址:http://emqtt.com/docs/v2/tune.html


2. 用emqtt_benchmark 进行压力测试

首先需要安装erlang 环境,然后才能进行

./emqtt_bench_sub -h  serverip -c 25000 -t test -k 1800 -i 10 

上面这句执行语句表示创建25000个连接,keepalive 时间为1800 秒, 连接的间隔时间为10秒, 订阅主题为test, 我们同时在3台机器上执行,也就是75000个长连接,看执行情况











当创建完75000个连接,A, B,C 机器出现大面积的shutdown 情况, 而broker 则出现 大面积的socket error 情况

看来这种条件下不足与支撑75000个连接, 需要修改连接数改为17000, 也就是同时5100个连接
emqtt_bench_sub -h  serverip -c 17000 -t test -k 1800 -i 10 




broker 同时打开51002 个socket 句柄


也就是阿里云单机环境下只能支撑5000个长连接,显然不要说单机百万连接,连10万连接的目标都达不到,这是什么原因呢?阿里云主机的原因,还是mosquitto的原因,如果是mosquitto 的原因,在同样的单机环境下选用emt ,连接数甚至还达不到5W。看来还需要更深入的测试研究才能找出原因。

猜你喜欢

转载自blog.csdn.net/a_bcd_123/article/details/70133033