Centos7 下测试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 <help>] [-h [<host>]] [-p [<port>]]
                       [-c [<count>]] [-i [<interval>]]
                       [-I [<interval_of_msg>]] [-u <username>]
                       [-P <password>] [-t <topic>] [-s [<size>]]
                       [-q [<qos>]] [-r [<retain>]] [-k [<keepalive>]]
                       [-C [<clean>]] [--ifaddr <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




除非申明,文章均为一号门原创,转载请注明本文地址,谢谢!
[本日志由 yihaomen 于 2019-08-08 03:56 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: erlang emqtt
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.