插件窝 干货文章 linux内核参数如何优化

linux内核参数如何优化

优化 参数 net ipv 705    来源:    2025-04-27

Linux内核参数优化指南

Linux内核参数优化是提升系统性能、安全性和稳定性的重要手段。以下是一些关键的内核参数及其优化建议:

网络相关参数优化

TCP/IP协议栈优化

# 增大TCP窗口大小
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_adv_win_scale = 1

# 启用TCP时间戳
net.ipv4.tcp_timestamps = 1

# 增大最大连接数
net.ipv4.tcp_max_syn_backlog = 8192
net.core.somaxconn = 32768

# TIME_WAIT状态优化
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0  # 在NAT环境中建议设为0
net.ipv4.tcp_fin_timeout = 30

# 内存相关
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_rmem = 4096 87380 6291456
net.ipv4.tcp_wmem = 4096 16384 4194304

网络设备参数

# 增大网络设备队列长度
net.core.netdev_max_backlog = 50000

# 增大系统范围内端口范围
net.ipv4.ip_local_port_range = 1024 65535

内存管理优化

# 内存过量使用策略
vm.overcommit_memory = 0  # 0=启发式,1=总是允许,2=不允许
vm.overcommit_ratio = 50

# 交换分区使用倾向(0-100,值越大越倾向使用swap)
vm.swappiness = 10

# 减少内存碎片
vm.vfs_cache_pressure = 50
vm.dirty_ratio = 10
vm.dirty_background_ratio = 5

文件系统优化

# 文件描述符限制
fs.file-max = 655360

# inode缓存
fs.inotify.max_user_watches = 524288

# 文件系统异步I/O
fs.aio-max-nr = 1048576

进程调度优化

# 进程fork速率限制
kernel.pid_max = 65536
kernel.threads-max = 65536

# 避免OOM killer杀死重要进程
vm.panic_on_oom = 0
vm.oom_kill_allocating_task = 0

如何应用这些参数

  1. 临时设置:使用sysctl命令

    sudo sysctl -w parameter=value
    
  2. 永久设置:编辑/etc/sysctl.conf文件,添加或修改参数后执行:

    sudo sysctl -p
    

优化建议

  1. 根据工作负载调整

    • Web服务器:重点优化网络参数
    • 数据库服务器:重点优化内存和I/O参数
    • 计算密集型应用:优化进程调度
  2. 监控与调优

    • 使用vmstat, iostat, netstat等工具监控系统表现
    • 逐步调整参数并观察效果
  3. 安全考虑

    # 禁用ICMP重定向
    net.ipv4.conf.all.accept_redirects = 0
    net.ipv4.conf.default.accept_redirects = 0
    
    # 防止SYN洪水攻击
    net.ipv4.tcp_syncookies = 1
    
  4. 虚拟化环境

    # 提升虚拟机的时钟精度
    kernel.hz = 1000
    

记住,内核参数优化需要根据具体硬件配置和工作负载进行调整,建议在生产环境实施前先在测试环境验证效果。