当前位置:首页>Linux>Linux 内核参数调优完整版(带详细注释|生产可用)

Linux 内核参数调优完整版(带详细注释|生产可用)

  • 2026-09-11 02:19:42
Linux 内核参数调优完整版(带详细注释|生产可用)

❝

一份系统化、可直接落地的 Linux 内核优化方案,适用于高并发 Web、网关、数据库、缓存等服务器。 所有参数均附带说明+作用+注意事项,运维/开发都能看懂。


⚠️ 重要提醒(必看)

  1. 不要无脑复制,根据业务场景微调。
  2. 一次只改少量参数,观察稳定后再上线。
  3. 必须先在测试环境验证,再上生产。
  4. 修改前备份配置文件。

一、配置生效方法

临时生效(重启失效)

sysctl -w 参数名=值

永久生效(推荐)

# 创建自定义配置
vim /etc/sysctl.conf

# 加载生效
sysctl -p /etc/sysctl.conf

二、完整优化配置(带详细注释)

# ==================================================
# 网络性能优化(高并发服务器必备)
# ==================================================

# 监听端口最大连接队列,应对高并发
net.core.somaxconn = 2048

# 网卡数据包队列长度,高流量场景增大
net.core.netdev_max_backlog = 4096

# TCP半连接队列最大值,防SYN洪水、提升并发
net.ipv4.tcp_max_syn_backlog = 2048

# 开启SYN Cookie,防御SYN Flood攻击
net.ipv4.tcp_syncookies = 1

# 缩短FIN_WAIT2时间,加快连接回收
net.ipv4.tcp_fin_timeout = 30

# 允许TIME-WAIT套接字重用,高并发非常重要
net.ipv4.tcp_tw_reuse = 1

# 已废弃,NAT环境会出问题,必须关闭
net.ipv4.tcp_tw_recycle = 0

# 扩大本地端口范围,避免大量外连时端口耗尽
net.ipv4.ip_local_port_range = 1024 65000

# TCP保活:更快发现并清理死连接
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 5

# 最大Socket读写缓冲区(16MB)
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

# TCP读写缓冲区:最小、默认、最大
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 87380 16777216

# 使用BBR拥塞控制,低延迟、高吞吐(内核≥4.9)
net.ipv4.tcp_congestion_control = bbr

# ==================================================
# 内存与Swap优化(数据库/Redis/缓存优先)
# ==================================================

# 降低使用swap的倾向,0尽量不用,10更稳妥
vm.swappiness = 10

# 触发进程同步刷盘的脏页比例,降低避免I/O尖刺
vm.dirty_ratio = 10

# 触发后台异步刷盘的脏页比例,平滑写入
vm.dirty_background_ratio = 5

# Redis专用:允许内存超分配,需要再开启
# vm.overcommit_memory = 1

# ==================================================
# 文件系统优化(高并发连接、文件读写必备)
# ==================================================

# 系统最大打开文件句柄数
fs.file-max = 1000000

# 增大inotify监控上限,Node/IDE/热重载用
fs.inotify.max_user_watches = 524288

# ==================================================
# 内核通用配置
# ==================================================

# 系统最大PID号,防止大量进程耗尽PID
kernel.pid_max = 4194303

三、验证与监控

# 使配置生效
sysctl -p

# 查看某个参数当前值
sysctl 参数名

# 常用监控工具
# 网络:ss -antlp、netstat -s、sar -n DEV、iftop
# 内存:free -h、vmstat 1
# 磁盘I/O:iostat -xz 1、iotop
# 系统整体:htop、dstat

最新文章

随机文章