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