跳到主要内容

Linux 常用内核参数调优速查

目标:快速定位常用 sysctl 参数、推荐值和落地方式。 说明:推荐值需结合业务负载与内核版本验证。

1. 参数管理命令

命令语法说明示例
查看参数sysctl 参数查看单个参数sysctl net.ipv4.ip_forward
临时修改sysctl -w 参数=值重启后失效sysctl -w vm.swappiness=10
永久修改编辑 /etc/sysctl.conf/etc/sysctl.d/*.conf持久生效echo "vm.swappiness=10" >> /etc/sysctl.d/tune.conf
加载配置sysctl -p重新加载配置文件sysctl -p /etc/sysctl.d/tune.conf
查看全部sysctl -a列出全部参数sysctl -a | grep tcp

2. 网络相关参数

2.1 IPv4

参数默认值说明推荐值
net.ipv4.ip_forward0IP 转发1(路由/网关场景)
net.ipv4.tcp_syncookies1SYN Flood 保护1
net.ipv4.tcp_max_syn_backlog1024SYN 队列大小8192
net.ipv4.tcp_fin_timeout60FIN 等待超时(秒)30
net.ipv4.tcp_keepalive_time7200Keepalive 首次探测间隔600
net.ipv4.tcp_keepalive_probes9Keepalive 探测次数5
net.ipv4.tcp_keepalive_intvl75Keepalive 探测间隔15

2.2 连接与端口

参数默认值说明推荐值
net.core.somaxconn4096最大连接队列65535
net.ipv4.tcp_max_tw_buckets16384TIME_WAIT 上限180000
net.ipv4.ip_local_port_range32768 60999本地端口范围1024 65000
net.ipv4.tcp_tw_reuse0重用 TIME_WAIT1
net.ipv4.tcp_tw_recycle0快速回收 TIME_WAIT0(已废弃)

2.3 缓冲区

参数默认值说明推荐值
net.core.rmem_max212992最大接收缓冲区16777216
net.core.wmem_max212992最大发送缓冲区16777216
net.ipv4.tcp_rmem4096 87380 6291456TCP 接收缓冲区4096 87380 16777216
net.ipv4.tcp_wmem4096 16384 4194304TCP 发送缓冲区4096 16384 16777216

3. 内存与文件系统参数

3.1 虚拟内存

参数默认值说明推荐值
vm.swappiness60交换倾向10~30
vm.overcommit_memory0内存分配策略0 或 1
vm.overcommit_ratio50过度提交比率80
vm.dirty_ratio20脏页上限比例10
vm.dirty_background_ratio10后台刷脏阈值5
vm.dirty_expire_centisecs3000脏页过期时间500
vm.vfs_cache_pressure100inode/dentry 回收压力50

3.2 透明大页

参数默认值说明推荐值
vm.nr_hugepages0大页数量按场景设置
vm.hugetlb_shm_group0允许大页的组按需
transparent_hugepagealways透明大页模式madvisenever

3.3 文件系统

参数默认值说明推荐值
fs.file-max依内存而定最大文件句柄数2097152
fs.inotify.max_user_watches8192watch 上限524288
fs.inotify.max_user_instances128inotify 实例上限1024
fs.aio-max-nr65536AIO 事件上限1048576

4. 系统与安全参数

4.1 进程/线程

参数默认值说明推荐值
kernel.pid_max32768最大 PID4194304
kernel.threads-max依内存而定最大线程数2097152
vm.max_map_count65530最大内存映射区域262144

4.2 信号量/消息队列

参数默认值说明推荐值
kernel.sem250 32000 32 128信号量配置250 32000 100 128
kernel.msgmnb16384消息队列最大字节65536
kernel.msgmax8192单消息最大大小65536

4.3 安全

参数默认值说明推荐值
kernel.randomize_va_space2ASLR 地址随机化2
net.ipv4.icmp_echo_ignore_all0忽略 Ping0 或 1
net.ipv4.conf.all.accept_redirects1接受 ICMP 重定向0
net.ipv4.conf.all.secure_redirects1接受安全重定向0

5. 一份可直接套用的示例

#!/bin/bash

# 临时优化
sysctl -w net.core.somaxconn=65535
sysctl -w net.ipv4.tcp_max_syn_backlog=8192
sysctl -w net.ipv4.tcp_fin_timeout=30
sysctl -w vm.swappiness=10
sysctl -w vm.dirty_ratio=10
sysctl -w vm.dirty_background_ratio=5

# 永久配置
cat >/etc/sysctl.d/99-performance.conf <<'CONF'
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_fin_timeout = 30
vm.swappiness = 10
vm.dirty_ratio = 10
vm.dirty_background_ratio = 5
CONF

# 生效
sysctl -p /etc/sysctl.d/99-performance.conf

6. 参数文件位置

文件路径说明
/proc/sys/内核参数虚拟文件系统
/etc/sysctl.conf主配置文件
/etc/sysctl.d/*.conf自定义配置目录(推荐)
/run/sysctl.d/*.conf运行时配置
/usr/lib/sysctl.d/*.conf系统预置配置

7. 常用排查命令

# 查看单项
cat /proc/sys/net/ipv4/ip_forward

# 持续观察
watch -n 1 'sysctl net.ipv4.tcp_rmem'

# 过滤查找
sysctl -a | grep -E 'tcp|somaxconn|max_map_count'

8. 注意事项

  1. 生产环境修改前先备份配置
  2. 每次调整后都要做压测/回归验证
  3. 参数之间存在联动,建议成组调优
  4. 推荐值与硬件、内核版本、业务模型强相关

提示:可通过 man sysctlman proc 获取参数细节。