首页主机资讯Linux minimal如何调整内核参数

Linux minimal如何调整内核参数

时间2026-01-21 16:07:12发布访客分类主机资讯浏览989
导读:Linux Minimal 调整内核参数的实用步骤 一、核心机制与位置 运行时查看与临时修改:通过 /proc/sys 虚拟文件系统查看参数,使用 sysctl -w 参数=值 临时生效;写入 /proc/sys/… 文件亦可(例如:ec...

Linux Minimal 调整内核参数的实用步骤

一、核心机制与位置

  • 运行时查看与临时修改:通过 /proc/sys 虚拟文件系统查看参数,使用 sysctl -w 参数=值 临时生效;写入 /proc/sys/… 文件亦可(例如:echo 值 > /proc/sys/net/ipv4/tcp_fin_timeout)。此类修改在重启后会丢失。
  • 永久生效:编辑 /etc/sysctl.conf(或 /etc/sysctl.d/*.conf),然后执行 sysctl -p 使配置加载。
  • 常用查询:sysctl -a 查看全部;sysctl 参数名 查看单个值。
  • 建议:最小化系统默认工具较少,必要时先安装 procps(提供 sysctl)与 iproute2(提供 ip、ss)。

二、标准流程与示例

  • 步骤
    1. 备份当前值:sysctl -a > /root/sysctl-$(date +%F).bak
    2. 临时调优(验证用):sysctl -w net.ipv4.tcp_fin_timeout=30
    3. 永久写入:在 /etc/sysctl.conf/etc/sysctl.d/99-tune.conf 追加参数
    4. 使配置生效:sysctl -p
    5. 验证:sysctl 参数名 或 cat /proc/sys/…
  • 示例(网络与内存的基础优化)
    # /etc/sysctl.d/99-tune.conf
    # 降低交换倾向(根据负载在 10–30 之间更常见)
    vm.swappiness = 10
    
    # 基础网络防护与连接复用
    net.ipv4.tcp_syncookies = 1
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_fin_timeout = 30
    net.ipv4.tcp_keepalive_time = 1800
    net.ipv4.tcp_keepalive_intvl = 30
    net.ipv4.tcp_keepalive_probes = 3
    
    # 监听队列与 SYN 队列
    net.core.somaxconn = 1024
    net.ipv4.tcp_max_syn_backlog = 2048
    
    # 可选:如不使用 IPv6
    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1
    
    应用:sysctl -p;验证:sysctl net.ipv4.tcp_fin_timeout、cat /proc/sys/net/ipv4/tcp_fin_timeout。

三、按场景给出可直接使用的参数

  • System V IPC(数据库/中间件常见)
    • 建议将 kernel.shmmax 设为接近物理内存大小(字节),kernel.shmall 按系统页大小计算(总页数≈内存/页大小),kernel.shmmnikernel.msgmni 可按内存容量线性放大;kernel.sem 为四元组:SEMMSL、SEMMNS、SEMOPM、SEMMNI。
    • 示例(以 16GB 内存为例,页大小常见为 4096 字节):
      kernel.shmmni = 4096
      kernel.shmmax = 17179869184   # 16GB
      kernel.shmall = 4194304       # 16GB/4KB
      kernel.sem   = 250 1024000 32 4096
      kernel.msgmni = 16384
      kernel.msgmax = 65536
      kernel.msgmnb = 65536
      
      应用:sysctl -p;如需持久化,写入 /etc/sysctl.conf 或 /etc/sysctl.d/。
  • 网络吞吐与并发
    • 增大套接字缓冲与自动调优、提升监听/半连接队列、缩短 keepalive 探测间隔:
      net.core.rmem_max = 212992
      net.core.wmem_max = 212992
      net.ipv4.tcp_rmem = 4096 87380 6291456
      net.ipv4.tcp_wmem = 4096 16384 4194304
      net.ipv4.tcp_moderate_rcvbuf = 1
      
      net.core.somaxconn = 1024
      net.ipv4.tcp_max_syn_backlog = 2048
      net.core.netdev_max_backlog = 2000
      
      net.ipv4.tcp_keepalive_time = 1800
      net.ipv4.tcp_keepalive_intvl = 30
      net.ipv4.tcp_keepalive_probes = 3
      
      net.ipv4.tcp_tw_reuse = 1
      net.ipv4.tcp_fin_timeout = 30
      
    • 说明:在 NAT/负载均衡 场景不建议开启 tcp_tw_recycle;需要时再评估。
  • 内存与脏页回写(通用服务器)
    vm.swappiness = 10
    vm.dirty_background_ratio = 5
    vm.dirty_ratio = 10
    vm.dirty_expire_centisecs = 3000
    vm.dirty_writeback_centisecs = 500
    
    提示:数值需结合业务与内存容量压测后微调。

四、验证、回滚与注意事项

  • 验证
    • 即时查看:sysctl 参数名;或 cat /proc/sys/…;网络可用 ss -s、ip -s link 观察连接与丢包。
    • 共享内存/信号量/消息队列:ipcs -l(查看),ipcs -s/m/q(具体列表)。
  • 回滚
    • 临时改动直接重启即恢复;永久改动可:
      1. 使用备份文件覆盖 /etc/sysctl.conf 或 /etc/sysctl.d/*.conf;
      2. 执行 sysctl -p 重新加载;
      3. 针对单条参数:sysctl -w 参数=旧值。
  • 注意事项
    • root 操作,变更前先备份;变更后观察系统日志与关键业务指标。
    • 最小化系统可能缺少工具,必要时安装:yum/dnf install -y procps iproute2;Debian/Ubuntu:apt-get update & & apt-get install -y procps iproute2。
    • 某些参数在不同发行版/内核版本表现不同,生产环境请先在测试环境验证并逐步推广。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux minimal如何调整内核参数
本文地址: https://pptw.com/jishu/788797.html
Linux minimal如何使用脚本自动化任务 Linux minimal中如何使用命令行

游客 回复需填写必要信息