跳至内容
iDste
用户工具
登录
站点工具
搜索
工具
显示页面
修订记录
反向链接
最近更改
媒体管理器
网站地图
登录
>
最近更改
媒体管理器
网站地图
您的足迹:
public:mosquitto
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
====== 设置mosquitto服务器的打开最大文件数 ====== ===== 1:背景: ===== * **1.1 单台服务器支持同时管理的最大设备数量为2048个设备。** * **1.2 服务器在6.6以后的版本中,支持MQTT协议,在服务器上面会安装mosquitto服务来做MQTT的Broker,提供MQTT的代理功能。** ===== 2:出现的问题: ===== *** 2.1 mosquito在服务器中是当做系统daemon进程由Linux系统启动的,那么默认情况下,该服务器能够打开的最大文件数为1024。** *** 2.2 那么当连接Broker的设备数量接近1024时,就会因为linux系统的限制,出现Broker无法创建TCP socket,进而导致其他的设备无法上线。** ===== 3:产生的影响: ===== *** 3.1 如果学校里面的设备都是V3协议的设备,并且设备数量大于1000台,就可能出现部分设备无法上线的问题。** *** 3.2 如果学校的设备数量较少,不超过500台,该问题可以忽略。** ===== 4:修改方案: ===== 在升级或者安装服务器软件版本的时候,在升级脚本里面,实现自动的升级mosquitto服务,并且校验和修改mosquitto服务打开的最大文件数。 由于调整mosquitto服务的最大文件打开数量的流程比较多,也比较繁琐,在自动升级的时候,有可能存在失败的情况,当出现失败的时候,需要安装服务器的人员手动进行处理。 该文档就是提供手动安装的具体方法,以便于解决自动升级出现失败的情况。 ===== 5:具体的修改方法: ===== *** 5.1 mosquitto的版本必须是1.6以后的,因为Ubuntu系统源的1.4版本里面没有service文件,无法采用下面的方式进行修改。** *** 5.2 安装mosquitto最新版本的方法可以参考:** [[https://blog.csdn.net/lclfans1983/article/details/105694696/#Systemd%20%E5%90%AF%E5%8A%A8|Mosquitto安装配置和使用指南]] ==== 安装的主要命令: ==== sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa\\ sudo apt-get update\\ sudo apt-get install mosquitto *** 5.3 判断系统已经安装的mosquitto版本是否支持service的方式来修改打开文件最大数的方法是:** 在安装完成mosquitto之后,执行systemctl status mosquitto | grep loaded,可以看到load的方式是否是从一个service文件的。支持的情况如下: {{:public:mos1.png?direct|}} /lib/systemd/system/mosquitto.service文件就是该服务启动的service文件。 *** 5.4 修改打开文件数的方法是:** 打开/lib/systemd/system/mosquitto.service文件,然后再[Service]下面增加一行内容:\\LimitNOFILE = 5000\\ 需要将限制设置大于2048,建议设置为5000即可,修改之后效果如下: {{:public:mos2.png?direct|}} *** 5.5 重新加载并且重新服务生效:** systemctl daemon-reload\\ /etc/init.d/mosquitto restart\\ *** 5.6 查看是否生效的方法:** 获取mosquitto的pid,然后查看/proc/pid/limits文件,如下:\\ {{:public:mos3.png?direct|}} 可以看到Max open files 已经变为了5000,此时就可以正常连接2048个设备了。 ===== 6:写在最后,如果最终安装过程中出现问题,请联系研发解决。 =====
public/mosquitto.txt
· 最后更改: 2020/10/21 11:25 由
idstewiki
页面工具
显示页面
修订记录
反向链接
回到顶部