内核参数调优模板
在ubuntu22.04 下,sysctl -a 能输出接近 1000 个内核参数,大部分是内核模块或子系统内部使用的,很少直接调优。
真正经常用到和调优相关的,大概集中在以下几个模块:
1. 网络相关(最常调优的部分)
在高并发服务、网关、负载均衡器上经常要优化。
-
连接追踪 / TIME_WAIT / 端口复用
-
net.ipv4.ip_local_port_range→ 本地端口范围 -
net.ipv4.tcp_tw_reuse→ 是否允许 TIME_WAIT 套接字复用 -
net.ipv4.tcp_tw_recycle(已废弃,22.04 不用了) -
net.ipv4.tcp_fin_timeout→ FIN-WAIT-2 超时时间
-
-
队列与 backlog
-
net.core.somaxconn→ listen backlog 上限 -
net.ipv4.tcp_max_syn_backlog→ 半连接队列长度 -
net.core.netdev_max_backlog→ 网络层接收队列大小
-
-
内存与缓冲
-
net.core.rmem_default/net.core.rmem_max→ 接收缓冲区 -
net.core.wmem_default/net.core.wmem_max→ 发送缓冲区 -
net.ipv4.tcp_rmem/net.ipv4.tcp_wmem→ TCP 自动调节窗口
-
-
内核 TCP 行为
-
net.ipv4.tcp_syncookies→ SYN Flood 防御 -
net.ipv4.tcp_keepalive_time→ TCP keepalive 时间 -
net.ipv4.tcp_keepalive_intvl/net.ipv4.tcp_keepalive_probes→ 探测间隔与次数
-
-
路由与转发
-
net.ipv4.ip_forward→ 是否允许转发 -
net.ipv4.conf.all.rp_filter→ 反向路径过滤(安全相关) -
net.ipv4.conf.all.accept_redirects/send_redirects→ 是否接受/发送路由重定向
-
2. 文件句柄 / 内存 / 进程相关
服务并发量大时需要调优。
-
文件描述符限制
-
fs.file-max→ 系统最大文件描述符数量 -
fs.nr_open→ 单进程最大打开文件数
-
-
内存管理
-
vm.swappiness→ swap 倾向(常调低如 10) -
vm.dirty_ratio/vm.dirty_background_ratio→ 脏页写回策略 -
vm.max_map_count→ 进程可 mmap 的最大内存区域数(Elasticsearch 等需要调高)
-
-
OOM 相关
-
/proc/sys/vm/overcommit_memory→ 内存分配策略 -
vm.overcommit_ratio→ overcommit 的比例
-
3. 内核安全相关
生产环境常常要求加固。
-
kernel.randomize_va_space→ 地址空间随机化(ASLR) -
kernel.sysrq→ SysRq 功能(建议生产禁用:0) -
kernel.dmesg_restrict→ 限制非 root 读取 dmesg -
fs.suid_dumpable→ 控制 suid 程序 coredump 行为
4. 调试 / 日志相关
-
kernel.printk→ 控制内核日志级别输出 -
kernel.core_pattern→ core dump 文件路径和命名规则
| 分类 | 常见参数 | 应用场景 |
|---|---|---|
| 网络连接 | tcp_tw_reuse, ip_local_port_range, tcp_fin_timeout |
高并发连接优化 |
| 队列/缓冲 | somaxconn, tcp_max_syn_backlog, netdev_max_backlog |
负载均衡 / Web 服务器 |
| TCP 行为 | tcp_keepalive_*, tcp_syncookies |
长连接 / 防御攻击 |
| 路由转发 | ip_forward, rp_filter, accept_redirects |
网关 / 路由器 |
| 文件句柄 | fs.file-max, fs.nr_open |
高并发 I/O 服务 |
| 内存管理 | vm.swappiness, vm.dirty_ratio, vm.max_map_count |
数据库 / ES 调优 |
| 安全 | randomize_va_space, sysrq, dmesg_restrict |
服务器安全加固 |
| 日志/调试 | printk, core_pattern |
内核日志与故障分析 |
5. 内核调优模板及参数说明
########################################
# 文件: /etc/sysctl.d/99-custom.conf
# 说明: 常用 Linux 内核参数优化(通用 Web/DB/微服务场景)
########################################
## =========================
## 1. 网络连接与端口复用
## =========================
net.ipv4.ip_local_port_range = 1024 65535 # 本地可用端口范围
net.ipv4.tcp_fin_timeout = 15 # TCP 连接关闭等待时间 (默认60)
net.ipv4.tcp_tw_reuse = 1 # 允许 TIME_WAIT 套接字复用
net.ipv4.tcp_max_tw_buckets = 5000 # 系统可同时保持的 TIME_WAIT 数
## =========================
## 2. 队列与 backlog
## =========================
net.core.somaxconn = 65535 # Listen backlog 上限 (默认128)
net.ipv4.tcp_max_syn_backlog = 8192 # 半连接队列长度
net.core.netdev_max_backlog = 65535 # 内核接收队列长度
## =========================
## 3. TCP keepalive 相关
## =========================
net.ipv4.tcp_keepalive_time = 600 # TCP 保活探测时间 (秒)
net.ipv4.tcp_keepalive_intvl = 30 # 探测间隔 (秒)
net.ipv4.tcp_keepalive_probes = 5 # 探测次数
## =========================
## 4. 内存管理
## =========================
vm.swappiness = 10 # 尽量少用 swap (默认60)
vm.dirty_ratio = 20 # 最大脏页比例 (默认30)
vm.dirty_background_ratio = 5 # 后台写回脏页比例 (默认10)
vm.max_map_count = 262144 # 进程可 mmap 区域数 (ES/DB 常调高)
## =========================
## 5. 文件句柄限制
## =========================
fs.file-max = 2097152 # 系统级最大文件句柄数
fs.nr_open = 2097152 # 单进程最大文件句柄数
## =========================
## 6. 网络安全 & 路由
## =========================
net.ipv4.ip_forward = 0 # 是否允许转发 (网关开启:1, 普通服务器:0)
net.ipv4.conf.all.rp_filter = 1 # 反向路径过滤
net.ipv4.conf.all.accept_redirects = 0 # 禁止 ICMP 重定向 (防止劫持)
net.ipv4.conf.all.send_redirects = 0 # 禁止发送 ICMP 重定向
## =========================
## 7. 内核安全相关
## =========================
kernel.randomize_va_space = 2 # 开启地址空间随机化 (ASLR)
kernel.sysrq = 0 # 关闭 Magic SysRq (防止误操作)
kernel.dmesg_restrict = 1 # 限制非 root 读取内核日志
fs.suid_dumpable = 0 # 禁止 suid 程序生成 core dump
## =========================
## 8. 调试 / 日志
## =========================
kernel.printk = 3 4 1 3 # 控制台日志级别
kernel.core_pattern = /var/core/core-%e-%p-%t # core dump 文件路径和格式

浙公网安备 33010602011771号