MQTT
代理程序的高并发性能测试方案
代理程序的选择:
mosquitto
和
EMQ2.2
1.
代理程序安装
1.EMQ2.2
的安装环境和需要的库
Erlang
:
otp R19
,
EMQ2.2
:
emqttd-windows7-v2.2-beta.3.zip,python3.6,MQTT
库:
paho.mqtt.python-master
因为公司的文档不能贴出来,就贴个别人的EMQ2.2的安装教程:
https://blog.csdn.net/wangshuminjava/article/details/80589899
2.Mosquitto
的安装环境
代理:
mosquitto
客户端:
python3
、
python3-pip
、
paho-mqtt
mosquitto安装:
-
目前最新的版本是1.4.14版本,将下载的
mosquitto-1.4.14.tar.gz
包解压; -
进入
mosquitto-1.4.14
目录下; -
执行
make
命令; -
执行
make install
命令,直到安装完成;
需要注意的是paho库的安装,需要pip,这个教程很多。
2.测试方案
1.
设备
3
台
一台服务器,两台客户端(一台用于多开推送者进程,一台多开发布者进程)
2.
代理的并发连接数
1
万
-2
万,且尽量无限接近高并发连接且是同时稳定连接
这里,因为虽然订阅者和发布者都是客户端,各
1
万是加起来
2
万连接,而发包量和订阅的主题相关的,
1
对
N
的关系,所以测试模式得分开,多个订阅或多个发布
3.测试
准备工作:服务器上执行
#fdisk -l;
服务器打开
套接字限制,可能还需要调整内核
tcp
参数
Raid
磁盘阵列,暂时用不到(暂时不涉及数据库的安装和部署)
4.监控负载情况
服务器程序(
broker
)保持高并发连接且高并发收发包时,服务器的实时负载情况,各项指标:
Tcp
状态 抓
established
和
time_wait
,
CPU
使用率,内存使用率,
I/O
由于各项数据,数值不同,坐标单位不同,所以为了图表对比清晰,一次性只能看少量对比,
TCP
状态
cpu
负载对比,
TCP
状态和内存对比。
5.监控方式
初期简单对比数据:
写一个脚本,让服务器运行时的各项指标,导入
Excel
或者
word
中,然后用图表对比数据。(几秒刷新一次,传输出来),效果图由于保密性,没法上传。
脚本的实现我写在另一篇博客中了:
https://blog.csdn.net/zcyzsy/article/details/80098432
接入
zabbix
,使用
zabbix
进行实时监控,可以监控几个服务,然后通过浏览器在
web
中,实时查看多项指标的图表,且可以监控某项服务,再利用脚本恢复某些瘫痪的服务
前期只需查看负载情况和性能,所以个人觉得
zabbix
有点牛刀小用了。
(最近的几篇都是实习时候的自己的笔记,因为公司的保密性,所以一些效果图片和核心的文档没法分享,只能贴出自己写的这部分,抱歉)