乐闻世界logo
搜索文章和话题

Linux 内核参数调优中常用的网络、内存和文件系统参数有哪些?

2月17日 13:41

Linux 内核参数调优是提升系统性能的重要手段,通过调整 /etc/sysctl.conf 文件可以优化系统行为。

网络参数调优:

  • TCP 连接参数:
    • net.ipv4.tcp_tw_reuse=1:允许将 TIME-WAIT sockets 重新用于新的 TCP 连接
    • net.ipv4.tcp_tw_recycle=0:关闭 TCP 连接快速回收(可能导致 NAT 问题)
    • net.ipv4.tcp_fin_timeout=30:减少 FIN-WAIT-2 状态的超时时间
    • net.ipv4.tcp_keepalive_time=600:TCP keepalive 探测时间
    • net.ipv4.tcp_keepalive_probes=3:TCP keepalive 探测次数
    • net.ipv4.tcp_keepalive_intvl=15:TCP keepalive 探测间隔
  • TCP 缓冲区参数:
    • net.ipv4.tcp_rmem="4096 87380 16777216":TCP 接收缓冲区大小
    • net.ipv4.tcp_wmem="4096 65536 16777216":TCP 发送缓冲区大小
    • net.core.rmem_max=16777216:最大接收缓冲区
    • net.core.wmem_max=16777216:最大发送缓冲区
  • TCP 连接队列:
    • net.core.somaxconn=65535:最大监听队列长度
    • net.ipv4.tcp_max_syn_backlog=8192:最大 SYN 队列长度
    • net.ipv4.tcp_syncookies=1:启用 SYN cookies 防止 SYN 攻击
  • 其他网络参数:
    • net.ipv4.ip_local_port_range="1024 65535":本地端口范围
    • net.ipv4.tcp_max_tw_buckets=5000:TIME-WAIT bucket 数量
    • net.ipv4.tcp_fastopen=3:启用 TCP Fast Open

内存参数调优:

  • 虚拟内存:
    • vm.swappiness=10:降低使用 swap 的倾向(0-100)
    • vm.vfs_cache_pressure=100:调整内核回收内存的倾向
    • vm.dirty_ratio=10:脏页占内存的比例
    • vm.dirty_background_ratio=5:后台写入脏页的比例
    • vm.dirty_expire_centisecs=3000:脏页过期时间
  • 内存分配:
    • vm.overcommit_memory=1:允许过度分配内存
    • vm.overcommit_ratio=50:过度分配比例
  • Huge Pages:
    • vm.nr_hugepages=0:大页数量
    • vm.hugetlb_shm_group=0:允许使用大页的组 ID

文件系统参数调优:

  • 文件句柄:
    • fs.file-max=65535:系统最大打开文件数
    • fs.inotify.max_user_watches=524288:inotify 监控数量
  • 文件系统:
    • fs.aio-max-nr=1048576:最大异步 I/O 数量
    • fs.nr_open=1048576:进程最大打开文件数

进程和线程参数调优:

  • 进程限制:
    • kernel.pid_max=4194303:最大进程 ID
    • kernel.threads-max=4194303:最大线程数
  • 信号量:
    • kernel.sem="250 32000 100 128":信号量参数
    • kernel.shmmax=68719476736:最大共享内存段大小
    • kernel.shmall=4294967296:共享内存页数

安全参数调优:

  • 网络安全:
    • net.ipv4.conf.all.rp_filter=1:启用反向路径过滤
    • net.ipv4.conf.default.rp_filter=1:默认启用反向路径过滤
    • net.ipv4.icmp_echo_ignore_all=0:允许 ICMP echo 请求
    • net.ipv4.icmp_echo_ignore_broadcasts=1:忽略广播 ICMP
    • net.ipv4.conf.all.accept_source_route=0:拒绝源路由
    • net.ipv4.conf.default.accept_source_route=0:默认拒绝源路由
  • 内核安全:
    • kernel.dmesg_restrict=1:限制 dmesg 访问
    • kernel.kptr_restrict=1:限制内核指针访问
    • kernel.perf_event_paranoid=2:限制性能事件访问

性能监控参数:

  • 系统监控:
    • kernel.sysrq=0:禁用 SysRq 键
    • kernel.randomize_va_space=2:地址空间随机化
  • 日志参数:
    • kernel.printk="4 4 1 7":控制台日志级别

参数应用方法:

  • 临时修改:sysctl -w parameter=value
  • 永久修改:编辑 /etc/sysctl.conf 文件
  • 应用配置:sysctl -p 或 sysctl --system
  • 查看当前值:sysctl parameter
  • 查看所有参数:sysctl -a

调优建议:

  • 根据实际应用场景调整参数
  • 修改前备份原配置
  • 逐步调整,观察效果
  • 使用性能监控工具验证调优效果
  • 参考官方文档和最佳实践
  • 生产环境调优前先在测试环境验证

常见应用场景:

  • Web 服务器:增加连接队列、调整 TCP 参数
  • 数据库服务器:优化内存参数、增加文件句柄
  • 高并发服务:增加端口范围、优化 TCP 缓冲区
  • 虚拟化环境:调整内存参数、启用 Huge Pages
标签:Linux