linux内核参数调整核心是“看得到、改得对”:通过sysctl或/proc/sys查看,区分临时(sysctl -w)与永久(/etc/sysctl.d/)修改,优先调优网络、内存、文件三类关键参数并验证生效。

Linux内核参数调整核心就两件事:**看得到、改得对**。不靠重启,就能让系统更稳更快——关键是用对 sysctl,分清临时和永久,再挑对参数。
怎么看当前内核参数
参数都映射在 /proc/sys/ 这个虚拟目录下,sysctl 是最直观的查看方式:
-
sysctl -a:列出全部参数(输出很长,建议配合grep,比如sysctl -a | grep tcp_tw) -
sysctl net.ipv4.ip_forward:查单个参数,清晰直接 -
cat /proc/sys/net/ipv4/ip_forward:等价于上条,路径转斜杠即可
怎么改参数才生效
改参数必须区分“现在起效”和“重启也不丢”:
- 临时修改(测试首选):
sysctl -w net.ipv4.tcp_tw_reuse=1或echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse,重启即还原 - 永久修改(生产必做):写入配置文件,推荐用
/etc/sysctl.d/下独立文件,比如/etc/sysctl.d/99-network.conf,添加:net.ipv4.tcp_tw_reuse = 1<br>fs.file-max = 2097152然后执行
sysctl --system全局加载,或sysctl -p /etc/sysctl.d/99-network.conf加载指定文件
哪些参数值得优先调
不是所有参数都要动,日常运维重点关注三类场景:
- 网络高并发:加
net.core.somaxconn=32768(连接队列)、net.ipv4.tcp_fin_timeout=15(缩短 FIN 等待)、net.ipv4.ip_local_port_range="1024 65535"(扩端口池) - 内存稳定性:降
vm.swappiness=10(减少 swap 倾向),设vm.overcommit_memory=1(避免 malloc 失败) - 文件资源瓶颈:提
fs.file-max=2097152(系统级上限),再配/etc/security/limits.conf中的* soft nofile 65535(用户级限制)
改完怎么验证
别只信配置文件写了,一定要现场确认:
- 查值是否已更新:
sysctl net.core.somaxconn或cat /proc/sys/net/core/somaxconn - 观察实际效果:比如压测时看
ss -s | grep "timewait"是否明显下降,或lsof -n | wc -l是否突破旧上限 - 留意报错:如果改了
vm.min_free_kbytes过高,可能触发 OOM;tcp_tw_recycle在 NAT 环境下已弃用,别用