内核参数调优:文件句柄与网络队列
Linux系统 2026-11-10 16:46 6

针对高并发常见的「too many open files」与连接队列溢出,给出参数与验证。下面按“先判断、再动手、最后验证”的顺序展开,每一步都给出可核对的检查点。

涉及 内核参数、sysctl、文件句柄 的关键动作都写成了具体命令或配置项,可以照着走,也可以当检查表用。

句柄上限

ulimit -n 与 fs.file-max 两层都要改,systemd 服务还要在 unit 里设 LimitNOFILE。

连接队列

net.core.somaxconn 与 tcp_max_syn_backlog 调大,配合应用 listen backlog 一致。

TIME_WAIT

开启 tcp_tw_reuse 可缓解,但不要动 tcp_tw_recycle(新内核已移除且会害 NAT 用户)。

端口范围

ip_local_port_range 扩大,短连接多的场景能减少端口耗尽。

验证

ss -s 看 socket 统计,/proc/net/netstat 看 listen overflows 是否为 0。

速查表

环节关键动作
句柄上限ulimit -n 与 fs.file-max 两层都要改,systemd 服务还要在 unit 里设 LimitNOFILE
连接队列net.core.somaxconn 与 tcp_max_syn_backlog 调大,配合应用 listen backlog 一致
TIME_WAIT开启 tcp_tw_reuse 可缓解,但不要动 tcp_tw_recycle(新内核已移除且会害 NAT 用户)
端口范围ip_local_port_range 扩大,短连接多的场景能减少端口耗尽

常见问题

Q:按文中写法改完,怎么确认真的生效?
不要只看配置文件,用对应的验证命令或从外部视角复测一次;改完先小流量观察一段,再全量推进,出问题能马上回退。

Q:按文中的步骤做完,还需要注意什么?
把处理过程和最终生效的参数记下来。同类问题再出现时直接对照记录,比重查一遍快得多。

Q:业务规模小,也要按这套标准来吗?
不需要一次到位。先把影响最大的两项做到位,剩余的随着业务增长逐步补齐,比一开始就追求完美更容易落地。

小结

回到这篇的 5 个环节:句柄上限、连接队列、TIME_WAIT、端口范围、验证。把这几个动作写进检查表,下次遇到同类问题按顺序过一遍,比凭经验跳步骤稳。

相关阅读:文件权限与属主:chmod踩坑与修复、启动失败的处理:fstab与单用户模式、DNS解析失败与连接超时排查。

延伸阅读:内存占用高排查:从free到smem、Nginx反向代理与负载均衡配置、磁盘扩容:LVM与文件系统在线扩展。

Powered by ©智简魔方