当前位置:首页>Linux>Linux 内核参数 sysctl 详解总结

Linux 内核参数 sysctl 详解总结

  • 2026-10-11 05:46:35
Linux 内核参数 sysctl 详解总结

sysctl 是 Linux 内核运行时参数管理工具,用于动态查看和修改 /proc/sys/ 下的内核参数,而无需重启系统。

对于 Linux 运维工程师、系统架构师、SRE、云平台工程师来说,掌握 sysctl 是系统性能优化、安全加固、高并发调优的核心技能之一。


一、sysctl 工作原理

Linux 内核参数实际存储在:

/proc/sys/

例如:

/proc/sys/net/ipv4/ip_forward

查看:

cat /proc/sys/net/ipv4/ip_forward

等价于:

sysctl net.ipv4.ip_forward

二、sysctl 常用命令

查看所有参数

sysctl -a

输出:

kernel.hostname = node01vm.swappiness =60net.ipv4.ip_forward =0

查看单个参数

sysctl vm.swappiness

输出:

vm.swappiness =60

临时修改参数

sysctl -w vm.swappiness=10

或:

echo10 > /proc/sys/vm/swappiness

说明:

仅当前运行有效

重启失效


永久生效

编辑:

vim /etc/sysctl.conf

增加:

vm.swappiness =10

加载:

sysctl -p

三、sysctl 参数分类

Linux 参数大致分为:

kernelvmfsnetuserdebugdev

四、kernel 参数详解

1 kernel.hostname

查看主机名

sysctl kernel.hostname

修改:

sysctl -w kernel.hostname=node01

2 kernel.pid_max

最大 PID

查看:

sysctl kernel.pid_max

默认:

4194304

高并发服务器:

kernel.pid_max=4194304

3 kernel.sysrq

Magic SysRq 开关

kernel.sysrq=1

作用:

紧急故障处理

例如:

Alt+SysRq+b

直接重启


4 kernel.panic

系统崩溃自动重启时间

kernel.panic=10

表示:

10秒后自动重启

五、VM(内存管理)参数

1 vm.swappiness

交换分区使用倾向

默认:

60

查看:

sysctl vm.swappiness

推荐:

场景
建议值
数据库
1~10
Redis
0~5
普通服务器
10~20

设置:

vm.swappiness=10

2 vm.dirty_ratio

脏页比例

vm.dirty_ratio=15

含义:

达到15%开始回写磁盘


3 vm.dirty_background_ratio

后台刷盘阈值

vm.dirty_background_ratio=5

4 vm.overcommit_memory

内存分配策略

0

启发式

1

允许超分配

2

严格限制

Redis推荐:

vm.overcommit_memory=1

5 vm.min_free_kbytes

保留空闲内存

vm.min_free_kbytes=262144

避免内存耗尽


六、FS(文件系统)参数

1 fs.file-max

系统最大文件句柄

查看:

sysctl fs.file-max

高并发建议:

fs.file-max=2097152

2 fs.aio-max-nr

异步IO数量

fs.aio-max-nr=1048576

Oracle/MySQL推荐提高


3 fs.inotify.max_user_watches

文件监控数

默认:

8192

Kubernetes推荐:

524288

七、网络参数(最重要)


1 IP转发

net.ipv4.ip_forward=1

应用:

路由器VPNKubernetes

2 SYN Flood防御

net.ipv4.tcp_syncookies=1

启用:

SYN Cookie

防止SYN攻击


3 TIME_WAIT优化

net.ipv4.tcp_fin_timeout=30

默认:

60

4 TCP Keepalive

net.ipv4.tcp_keepalive_time=600

默认:

7200

5 端口范围

net.ipv4.ip_local_port_range

查看:

3276860999

高并发:

102465535

配置:

net.ipv4.ip_local_port_range=102465535

6 TCP最大连接队列

net.core.somaxconn=65535

默认:

128

Nginx:

listen backlog=65535;

需要同步调整


7 SYN队列

net.ipv4.tcp_max_syn_backlog=65535

8 网络接收缓存

net.core.rmem_max=16777216

16MB


9 网络发送缓存

net.core.wmem_max=16777216

16MB


10 网络设备队列

net.core.netdev_max_backlog=65535

避免丢包


八、数据库服务器推荐参数

MySQL / PostgreSQL

fs.file-max=2097152vm.swappiness=1vm.dirty_ratio=15vm.dirty_background_ratio=5net.core.somaxconn=65535net.ipv4.tcp_max_syn_backlog=65535net.ipv4.tcp_fin_timeout=30net.core.rmem_max=16777216net.core.wmem_max=16777216

九、Redis 推荐参数

Redis 官方推荐:

vm.overcommit_memory=1vm.swappiness=1net.core.somaxconn=65535

验证:

redis-server --check-system

十、Kubernetes 推荐参数

net.bridge.bridge-nf-call-iptables=1net.bridge.bridge-nf-call-ip6tables=1net.ipv4.ip_forward=1fs.inotify.max_user_watches=524288fs.inotify.max_user_instances=8192

加载:

modprobe br_netfilter

十一、安全加固推荐

禁止 ICMP Redirect

net.ipv4.conf.all.accept_redirects=0net.ipv4.conf.default.accept_redirects=0

禁止 Source Route

net.ipv4.conf.all.accept_source_route=0

开启反向路径过滤

net.ipv4.conf.all.rp_filter=1

禁止 IPv6(无需IPv6时)

net.ipv6.conf.all.disable_ipv6=1

十二、企业级 sysctl.conf 模板(RHEL9/RHEL10)

# Kernelkernel.pid_max =4194304kernel.sysrq =1kernel.panic =10# Memoryvm.swappiness =1vm.overcommit_memory =1vm.dirty_ratio =15vm.dirty_background_ratio =5# Filefs.file-max =2097152fs.aio-max-nr =1048576# Networknet.ipv4.ip_forward =1net.core.somaxconn =65535net.core.netdev_max_backlog =65535net.ipv4.tcp_max_syn_backlog =65535net.ipv4.tcp_fin_timeout =30net.core.rmem_max =16777216net.core.wmem_max =16777216net.ipv4.tcp_syncookies =1net.ipv4.ip_local_port_range =102465535

运维高频 sysctl 参数 Top 20

排名
参数
用途
1
vm.swappiness
Swap控制
2
vm.overcommit_memory
内存超分配
3
fs.file-max
文件句柄
4
net.core.somaxconn
TCP队列
5
net.ipv4.tcp_max_syn_backlog
SYN队列
6
net.ipv4.tcp_syncookies
SYN攻击防护
7
net.ipv4.ip_forward
IP转发
8
net.core.netdev_max_backlog
网卡队列
9
net.ipv4.tcp_fin_timeout
TIME_WAIT
10
net.ipv4.ip_local_port_range
端口范围
11
kernel.pid_max
PID上限
12
kernel.sysrq
故障恢复
13
vm.dirty_ratio
脏页控制
14
vm.dirty_background_ratio
后台刷盘
15
fs.aio-max-nr
AIO
16
fs.inotify.max_user_watches
文件监听
17
net.core.rmem_max
接收缓存
18
net.core.wmem_max
发送缓存
19
net.ipv4.tcp_keepalive_time
长连接
20
net.ipv4.conf.all.rp_filter
防IP欺骗

对于运维、SRE、系统架构师岗位,建议重点掌握 内存(vm)→ 网络(net)→ 文件系统(fs)→ 内核(kernel) 四大类参数,并结合 Nginx、HAProxy、MySQL、Redis、Kubernetes 等场景进行调优实践。这样在性能优化、故障排查和架构设计中才能真正发挥 sysctl 的价值。

最新文章

随机文章