Centos7 下测试mosquitto性能

摘要: 测试mosquitto性能首先需要安装如下模块代码片段, 请查看文章详情 ...

测试mosquitto性能
首先需要安装如下模块

yum install libncurses5-dev m4 fop freeglut3-dev libwxgtk2.8-dev g++ libssl-dev xsltproc build-essential tk8.5  unixodbc unixodbc-dev libxml2-utils

下载erlang语言安装包,并解压
wget http://erlang.org/download/otp_src_22.0.tar.gz
tar zxvf otp_src_22.0.tar.gz

然后进入源码目录进行安装, 我这里安装到/home/summer/projects/tools/erlang这个目录下,确保目录已经存在,并有权限操作
./configure --prefix=/home/summer/projects/tools/erlang
make
make install



配置erlang环境变量, 编辑 /etc/profile, 在最后增加如下内容并保存,注意路径
export ERLANG_HOME=/home/summer/projects/tools/erlang
export PATH=$PATH:$ERLANG_HOME/bin

使配置文件生效
source /etc/profile


在命令行输入命令erl 测试是否生效.


到此为止erlang 安装完毕。

*****************************压力测试部分**************************
压力测试工具github上开源的工具:https://github.com/emqx/emqtt-bench, 下载emqtt-bench-master.zip, 并上传到linux服务器某个目录下,执行unzip命令解压,得到emqtt-bench-master 目录. 当然如果你安装了git的话,直接运行git clone命令也是可以得到源码的。解压后,进入目录,进行编译.
make



这个时候,你会发现,编译生成了可执行文件 emqtt_bench, 通过这个文件,就可以测试MQTT的吞吐量了.对于这个命令的用法,在github上有,我这里也抄下:
./emqtt_bench pub --help
Usage: emqtt_bench pub [--help ] [-h []] [-p []]
                       [-c []] [-i []]
                       [-I []] [-u ]
                       [-P ] [-t ] [-s []]
                       [-q []] [-r []] [-k []]
                       [-C []] [--ifaddr ]

  --help                 help information
  -h, --host             mqtt server hostname or IP address [default:
                         localhost]
  -p, --port             mqtt server port number [default: 1883]
  -c, --count            max count of clients [default: 200]
  -n, --startnumber      start number [default: 0]
  -i, --interval         interval of connecting to the broker [default: 10]
  -I, --interval_of_msg  interval of publishing message(ms) [default: 1000]
  -u, --username         username for connecting to server
  -P, --password         password for connecting to server
  -t, --topic            topic subscribe, support %u, %c, %i variables
  -s, --size             payload size [default: 256]
  -q, --qos              subscribe qos [default: 0]
  -r, --retain           retain message [default: false]
  -k, --keepalive        keep alive in seconds [default: 300]
  -C, --clean            clean session [default: true]
  --ifaddr               local ipaddress or interface address


我做了如下测试:
 100个客户端,每个客户端每秒100条消息,也就是吞吐量 10000/S, QOS1最少发送一次方式,每条消息字节数为 1024,也就是1K. 
 ./emqtt_bench pub -h 192.168.99.228 -p 17915 -c 100 -I 10 -t bench/%i -s 1024 -q 1


上一篇: python识别图片中是否包含水印(opencv)
下一篇: elasticsearch high level rest api分页查询数据
 评论 ( What Do You Think )
名称
邮箱
网址
评论
验证
   
 

 


  • 微信公众号

  • 我的微信

站点声明:

1、一号门博客CMS,由Python, MySQL, Nginx, Wsgi 强力驱动

2、部分文章或者资源来源于互联网, 有时候很难判断是否侵权, 若有侵权, 请联系邮箱:summer@yihaomen.com, 同时欢迎大家注册用户,主动发布无版权争议的 文章/资源.

3、鄂ICP备14001754号-3, 鄂公网安备 42280202422812号