Linux 最大连接数修改

邱秋 • 2024年12月31日 • 阅读:4 • linux

系统默认1024 或者 4096, 当太多的请求并发时, 会报错 too many request.. , 此时就是连接数过小的问题.

要查看系统当前允许的最大连接数,并永久更改它,需要调整几个关键参数。以下是详细步骤:

查看系统当前的最大连接数

文件描述符限制

系统的最大连接数受文件描述符限制控制,每个连接会占用一个文件描述符。 • 查看当前用户的文件描述符限制:

ulimit -n

• 查看系统级别的最大文件描述符限制:

cat /proc/sys/fs/file-max

本地端口范围

查看本地端口范围限制:

sysctl net.ipv4.ip_local_port_range

• 输出示例:

net.ipv4.ip_local_port_range = 32768 60999

• 表示本地可以使用的端口范围。

TCP 连接跟踪表限制

查看跟踪的最大连接数:

sysctl net.netfilter.nf_conntrack_max

• 输出示例:

net.netfilter.nf_conntrack_max = 262144

永久更改最大连接数

调整文件描述符限制

编辑 /etc/security/limits.conf 文件,增加以下内容:

* soft nofile 65535
* hard nofile 65535

也可以

echo "\n* soft nofile 65536\n* hard nofile 65536\n" >> /etc/security/limits.conf
echo "\nnet.core.somaxconn = 65535\nnet.netfilter.nf_conntrack_max = 1048576" >> /etc/sysctl.conf && sudo sysctl -p

对于系统服务(如 nginx 或其他服务),需要编辑 /etc/systemd/system.conf 和 /etc/systemd/user.conf:

DefaultLimitNOFILE=65535

• 重启系统服务:

systemctl daemon-reexec

调整本地端口范围

编辑 /etc/sysctl.conf 文件,添加以下内容:

net.ipv4.ip_local_port_range = 1024 65535

• 应用更改:

sysctl -p

调整 TCP 连接跟踪限制

编辑 /etc/sysctl.conf 文件,添加以下内容:

net.netfilter.nf_conntrack_max = 1048576

• 应用更改:

sysctl -p

验证更改

验证文件描述符限制:

ulimit -n

验证本地端口范围:

sysctl net.ipv4.ip_local_port_range

验证连接跟踪限制:

sysctl net.netfilter.nf_conntrack_max

总结

通过以上配置,可以调整系统的最大连接数。确保调整的参数值适合你的硬件和应用需求,并根据系统资源(如内存)合理规划。

我,秦始皇,打钱!