wiki/运维/操作系统/Linux/笔记/31.Linux内核参数列表.md
2026-04-08 15:02:24 +08:00

246 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Linux 内核参数列表
## 1、说明
这篇笔记用于记录常见 `sysctl` 内核参数,方便按类别快速查阅。它不是完整清单,而是**运维中相对高频**的一组参数索引。
查看参数:
```shell
sysctl 参数名
```
临时设置参数:
```shell
sysctl -w 参数=value
```
永久生效通常写入:
```shell
/etc/sysctl.conf
/etc/sysctl.d/*.conf
```
## 2、Kernel 类
### 2.1 `kernel.panic`
内核崩溃后自动重启前等待的秒数。
### 2.2 `kernel.core_uses_pid`
控制 core dump 文件名中是否带进程 ID。
### 2.3 `kernel.core_pattern`
指定 core dump 文件名模式。
### 2.4 `kernel.msgmax`
单个 IPC 消息的最大大小。
### 2.5 `kernel.msgmnb`
单个 IPC 消息队列的最大大小。
### 2.6 `kernel.shmmax`
单个共享内存段最大大小。
### 2.7 `kernel.shmall`
系统共享内存总量上限。
### 2.8 `kernel.sem`
系统级信号量参数。
### 2.9 `kernel.sysrq`
是否启用 SysRq 紧急控制功能。
### 2.10 `kernel.randomize_va_space`
地址空间随机化ASLR开关影响系统安全性。
### 2.11 `kernel.pid_max`
系统可分配的最大 PID。
### 2.12 `kernel.threads-max`
系统线程总数上限。
### 2.13 `kernel.printk`
内核日志输出级别控制。
## 3、VM 类
### 3.1 `vm.swappiness`
控制系统使用 swap 的倾向,值越大越倾向使用交换分区。
### 3.2 `vm.dirty_ratio`
内存中脏页占比达到该阈值时,触发写回。
### 3.3 `vm.dirty_background_ratio`
后台刷盘开始的脏页比例。
### 3.4 `vm.dirty_expire_centisecs`
脏页可停留多久后被回写,单位是百分之一秒。
### 3.5 `vm.vfs_cache_pressure`
控制回收 inode / dentry 缓存的积极程度。
## 4、网络与 IPv4 类
### 4.1 `net.ipv4.ip_forward`
是否启用 IPv4 转发。
### 4.2 `net.ipv4.conf.all.accept_redirects`
是否接受 ICMP Redirect。
### 4.3 `net.ipv4.conf.all.send_redirects`
是否发送 ICMP Redirect。
### 4.4 `net.ipv4.conf.all.rp_filter`
是否启用反向路径过滤。
### 4.5 `net.ipv4.conf.all.log_martians`
是否记录异常来源的 IP 数据包。
## 5、TCP 类
### 5.1 `net.ipv4.tcp_syncookies`
SYN Cookies 开关,用于缓解 SYN Flood。
### 5.2 `net.ipv4.tcp_max_syn_backlog`
半连接队列最大长度。
### 5.3 `net.ipv4.tcp_fin_timeout`
连接关闭后 `FIN_WAIT` 等待时间。
### 5.4 `net.ipv4.tcp_keepalive_time`
TCP keepalive 首次探测时间。
### 5.5 `net.ipv4.tcp_keepalive_probes`
TCP keepalive 探测次数。
### 5.6 `net.ipv4.tcp_keepalive_intvl`
TCP keepalive 探测间隔。
### 5.7 `net.ipv4.tcp_retries1`
TCP 初阶段重传次数。
### 5.8 `net.ipv4.tcp_retries2`
TCP 更长阶段重传次数。
### 5.9 `net.ipv4.tcp_synack_retries`
服务端 SYN-ACK 重试次数。
### 5.10 `net.ipv4.tcp_timestamps`
是否启用 TCP 时间戳。
### 5.11 `net.ipv4.tcp_sack`
是否启用 TCP SACK。
### 5.12 `net.ipv4.tcp_window_scaling`
是否启用 TCP 窗口缩放。
### 5.13 `net.ipv4.tcp_slow_start_after_idle`
空闲后是否重新进入慢启动。
### 5.14 `net.ipv4.tcp_fastopen`
TCP Fast Open 开关。
### 5.15 `net.ipv4.tcp_mtu_probing`
TCP MTU 探测开关。
### 5.16 `net.ipv4.tcp_congestion_control`
TCP 拥塞控制算法,如 `cubic``bbr`
### 5.17 `net.ipv4.tcp_no_metrics_save`
是否禁用保存连接性能指标。
### 5.18 `net.ipv4.tcp_moderate_rcvbuf`
是否启用接收缓冲区自动调节。
### 5.19 `net.ipv4.tcp_ecn`
是否启用 ECN。
### 5.20 `net.ipv4.tcp_fack`
是否启用 FACK 相关机制。
### 5.21 `net.ipv4.tcp_low_latency`
低延迟倾向控制。
### 5.22 `net.ipv4.tcp_tw_reuse`
是否允许重用 `TIME_WAIT` 套接字。
### 5.23 `net.ipv4.tcp_tw_recycle`
旧参数,现代内核中通常不再建议或已移除。
### 5.24 `net.ipv4.tcp_abort_on_overflow`
连接队列溢出时是否直接中止连接。
### 5.25 `net.ipv4.tcp_adv_win_scale`
高级窗口缩放因子。
### 5.26 `net.ipv4.tcp_app_win`
应用窗口参数。
### 5.27 `net.ipv4.tcp_dsack`
是否启用 D-SACK。
## 6、使用建议
- 修改前先确认当前值:`sysctl 参数名`
- 临时调优先测试,再决定是否永久写入
- 网络内核参数对业务影响较大,尤其是高并发和代理场景
- 内核参数没有“通用最佳值”,一定要结合业务、内核版本、发行版默认行为来评估
## 7、小结
- 这份列表更适合作为索引,而不是盲目套参数模板
- 常见高频类别主要是 `kernel.*``vm.*``net.ipv4.*`
- 实际调优时,要先明确目标:稳定性、吞吐量、延迟,还是安全性