服务器系统优化
2025年2月19日大约 2 分钟
服务器系统优化
部署或压测前,请先进行系统优化!!!
为什么要进行服务器的系统优化?
1.TCP端口限制
建立一个MQTT连接就需要占用一个TCP端口,因此需要进行优化
TCP 端口的范围是从 1 到 65535。 在 Linux 系统中,0 到 1023 这些端口被称为“知名端口”或“系统端口”,通常需要管理员权限才能使用。 1024 到 49151 是“注册端口”,由特定的应用程序或服务注册使用。 49152 到 65535 是“动态端口”或“私有端口”,可由普通用户的应用程序自由使用。 所以,Linux 系统默认可供普通用户自由使用的 TCP 端口数量是 16384 个(65535 - 49151 = 16384)。但需要注意的是,实际可用的端口数量可能会受到系统配置、已被占用的端口等因素的影响。 例如,如果某些服务或应用程序已经占用了部分动态端口,那么实际可用的数量就会相应减少。
2.全局最大文件句柄的限制
全局最大文件句柄的限制, 导致更多的TCP连接会失效
内存分配策略
修改内存分配
vi /etc/sysctl.conf
增加下面内容
vm.overcommit_memory=1

执行刷新
sysctl -p

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

设置服务的最大文件句柄
编辑服务句柄
vi /etc/systemd/system.conf
增加如下内容
DefaultLimitNOFILE=1048576

设置用户的最大文件句柄、最大文件句柄数
编辑用户句柄
vi /etc/security/limits.conf
增加如下内容
* soft nofile 1048576
* hard nofile 1048576

Tcp网络优化
并发连接优化
sysctl -w net.core.somaxconn=32768
sysctl -w net.ipv4.tcp_max_syn_backlog=16384
sysctl -w net.core.netdev_max_backlog=16384

端口使用范围
sysctl -w net.ipv4.ip_local_port_range='1024 65535'
