插件窝 干货文章 优化Linux内核参数,提升性能稳定

优化Linux内核参数,提升性能稳定

sysctl echo conf etc 403    来源:    2025-04-17

Linux内核参数优化指南

网络性能优化

TCP/IP栈调优

# 增加TCP最大连接数
echo "net.ipv4.ip_local_port_range = 1024 65535" >> /etc/sysctl.conf

# 增加TCP SYN队列长度
echo "net.ipv4.tcp_max_syn_backlog = 8192" >> /etc/sysctl.conf

# 启用TCP快速打开
echo "net.ipv4.tcp_fastopen = 3" >> /etc/sysctl.conf

# 调整TCP窗口大小
echo "net.ipv4.tcp_window_scaling = 1" >> /etc/sysctl.conf
echo "net.ipv4.tcp_rmem = 4096 87380 16777216" >> /etc/sysctl.conf
echo "net.ipv4.tcp_wmem = 4096 65536 16777216" >> /etc/sysctl.conf

# 减少TIME_WAIT状态的连接
echo "net.ipv4.tcp_tw_reuse = 1" >> /etc/sysctl.conf
echo "net.ipv4.tcp_tw_recycle = 1" >> /etc/sysctl.conf

文件系统优化

# 增加文件描述符限制
echo "fs.file-max = 2097152" >> /etc/sysctl.conf
echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.conf

# 优化虚拟内存管理
echo "vm.swappiness = 10" >> /etc/sysctl.conf
echo "vm.vfs_cache_pressure = 50" >> /etc/sysctl.conf
echo "vm.dirty_ratio = 10" >> /etc/sysctl.conf
echo "vm.dirty_background_ratio = 5" >> /etc/sysctl.conf

内核调度优化

# 调整进程调度
echo "kernel.sched_min_granularity_ns = 10000000" >> /etc/sysctl.conf
echo "kernel.sched_wakeup_granularity_ns = 15000000" >> /etc/sysctl.conf

# 禁用透明大页(THP) - 对某些数据库工作负载有益
echo "never" > /sys/kernel/mm/transparent_hugepage/enabled
echo "never" > /sys/kernel/mm/transparent_hugepage/defrag

内存管理优化

# 增加共享内存段大小
echo "kernel.shmmax = 68719476736" >> /etc/sysctl.conf
echo "kernel.shmall = 4294967296" >> /etc/sysctl.conf

# 调整内存分配策略
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
echo "vm.overcommit_ratio = 95" >> /etc/sysctl.conf

应用优化后

# 使配置生效
sysctl -p

# 对于limits.conf的更改需要重新登录或重启服务

注意事项

  1. 这些参数应根据实际硬件配置和工作负载进行调整
  2. 生产环境修改前应在测试环境验证
  3. 某些参数(如TCP窗口大小)需要两端设备都支持
  4. 数据库服务器可能需要特殊的调优参数
  5. 监控系统性能变化,持续优化

监控工具推荐

  • vmstat - 监控系统整体性能
  • sar - 系统活动报告
  • dstat - 多功能系统资源统计
  • netstat/ss - 网络连接统计
  • iotop - I/O监控
  • htop - 增强版进程监控

通过合理调整这些内核参数,可以显著提升Linux系统的性能和稳定性,特别是在高负载环境下。