Skip to content

服务器系统优化 ​

1. 部署或压测前,请先进行系统优化!!! ​

2. 为什么要进行服务器的系统优化? ​

1.TCP端口限制

建立一个MQTT连接就需要占用一个TCP端口,因此需要进行优化

TCP 端口的范围是从 1 到 65535。 在 Linux 系统中,0 到 1023 这些端口被称为“知名端口”或“系统端口”,通常需要管理员权限才能使用。 1024 到 49151 是“注册端口”,由特定的应用程序或服务注册使用。 49152 到 65535 是“动态端口”或“私有端口”,可由普通用户的应用程序自由使用。 所以,Linux 系统默认可供普通用户自由使用的 TCP 端口数量是 16384 个(65535 - 49151 = 16384)。但需要注意的是,实际可用的端口数量可能会受到系统配置、已被占用的端口等因素的影响。 例如,如果某些服务或应用程序已经占用了部分动态端口,那么实际可用的数量就会相应减少。

2.全局最大文件句柄的限制

全局最大文件句柄的限制, 导致更多的TCP连接会失效

3. 内存分配策略 ​

修改内存分配 ​

sh
vi /etc/sysctl.conf

增加下面内容 ​

shell
vm.overcommit_memory=1
增加下面内容页面截图

执行刷新 ​

sh
sysctl -p
执行刷新页面截图

4. 系统全局最大文件句柄 ​

shell
sysctl -w fs.file-max=1048576
sysctl -w fs.nr_open=1048576
echo 1048576 > /proc/sys/fs/nr_open
系统全局最大文件句柄页面截图

5. 设置服务的最大文件句柄 ​

编辑服务句柄 ​

sh
vi /etc/systemd/system.conf

增加如下内容 ​

shell
DefaultLimitNOFILE=1048576
增加如下内容页面截图

6. 设置用户的最大文件句柄、最大文件句柄数 ​

编辑用户句柄 ​

sh
vi /etc/security/limits.conf

增加如下内容

shell
*  soft nofile 1048576   
*  hard nofile 1048576
编辑用户句柄页面截图

7. Tcp网络优化 ​

并发连接优化 ​

shell
sysctl -w net.core.somaxconn=32768
sysctl -w net.ipv4.tcp_max_syn_backlog=16384
sysctl -w net.core.netdev_max_backlog=16384
并发连接优化页面截图

端口使用范围 ​

shell
sysctl -w net.ipv4.ip_local_port_range='1024 65535'
端口使用范围页面截图

蜂信物联 | fastbee.cn