用户工具

站点工具


public:mosquitto

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

public:mosquitto [2020/10/21 11:25]
idstewiki 创建
— (当前版本)
行 1: 行 1:
-====== 设置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.1603250709.txt.gz · 最后更改: 2020/10/21 11:25 由 idstewiki