Linux minimal如何调整内核参数
导读: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)。
二、标准流程与示例
- 步骤
- 备份当前值:sysctl -a > /root/sysctl-$(date +%F).bak
- 临时调优(验证用):sysctl -w net.ipv4.tcp_fin_timeout=30
- 永久写入:在 /etc/sysctl.conf 或 /etc/sysctl.d/99-tune.conf 追加参数
- 使配置生效:sysctl -p
- 验证:sysctl 参数名 或 cat /proc/sys/…
- 示例(网络与内存的基础优化)
应用:sysctl -p;验证:sysctl net.ipv4.tcp_fin_timeout、cat /proc/sys/net/ipv4/tcp_fin_timeout。# /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
三、按场景给出可直接使用的参数
- System V IPC(数据库/中间件常见)
- 建议将 kernel.shmmax 设为接近物理内存大小(字节),kernel.shmall 按系统页大小计算(总页数≈内存/页大小),kernel.shmmni 与 kernel.msgmni 可按内存容量线性放大;kernel.sem 为四元组:SEMMSL、SEMMNS、SEMOPM、SEMMNI。
- 示例(以 16GB 内存为例,页大小常见为 4096 字节):
应用:sysctl -p;如需持久化,写入 /etc/sysctl.conf 或 /etc/sysctl.d/。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
- 网络吞吐与并发
- 增大套接字缓冲与自动调优、提升监听/半连接队列、缩短 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;需要时再评估。
- 增大套接字缓冲与自动调优、提升监听/半连接队列、缩短 keepalive 探测间隔:
- 内存与脏页回写(通用服务器)
提示:数值需结合业务与内存容量压测后微调。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(具体列表)。
- 回滚
- 临时改动直接重启即恢复;永久改动可:
- 使用备份文件覆盖 /etc/sysctl.conf 或 /etc/sysctl.d/*.conf;
- 执行 sysctl -p 重新加载;
- 针对单条参数: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
