246 lines
4.6 KiB
Markdown
246 lines
4.6 KiB
Markdown
# 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.*`
|
||
- 实际调优时,要先明确目标:稳定性、吞吐量、延迟,还是安全性
|