Linux内核参数优化是提升系统性能、安全性和稳定性的重要手段。以下是一些关键的内核参数及其优化建议:
# 增大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
临时设置:使用sysctl
命令
sudo sysctl -w parameter=value
永久设置:编辑/etc/sysctl.conf
文件,添加或修改参数后执行:
sudo sysctl -p
根据工作负载调整:
监控与调优:
vmstat
, iostat
, netstat
等工具监控系统表现安全考虑:
# 禁用ICMP重定向
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
# 防止SYN洪水攻击
net.ipv4.tcp_syncookies = 1
虚拟化环境:
# 提升虚拟机的时钟精度
kernel.hz = 1000
记住,内核参数优化需要根据具体硬件配置和工作负载进行调整,建议在生产环境实施前先在测试环境验证效果。