银河麒麟v10系统调优需按优先级顺序修改内核参数:/etc/sysctl.d/*.conf > /etc/sysctl.conf > 内核默认值;推荐将参数写入/etc/sysctl.d/99-kylin-tuning.conf并执行sudo sysctl --system加载,避免被覆盖或重启失效。

您在银河麒麟V10上部署高并发服务、容器平台或Kubernetes集群时,发现连接拒绝、TIME_WAIT堆积、文件句柄不足或内存回收异常,很可能是系统内核限制参数未适配实际负载。直接修改这些参数是系统调优最关键的一步,必须按加载优先级操作,否则修改会被覆盖或重启后失效。
确认当前参数来源与加载顺序
银河麒麟V10 SP1+ 使用 systemd-sysctl 机制加载内核参数,真实生效顺序为:【/etc/sysctl.d/*.conf > /etc/sysctl.conf > 内核编译默认值】。若只改 /etc/sysctl.conf,但 /etc/sysctl.d/ 下存在同名参数(如 k8s.conf 或 99-custom.conf),后者会完全覆盖前者。
执行命令查看当前所有已加载参数的来源:sudo sysctl --system 2>&1 | grep "applying"
重点检查输出中是否包含 /etc/sysctl.d/99-kylin-tuning.conf 或类似路径——这是官方推荐的自定义参数存放位置,避免系统更新时被覆盖。
永久修改内核参数(推荐方式)
方法一:写入独立配置文件(最安全)
- 创建专用配置文件:
sudo tee /etc/sysctl.d/99-kylin-tuning.conf,然后输入参数内容,例如:
net.ipv4.ip_forward = 1
net.core.somaxconn = 65535
fs.file-max = 1048576
vm.swappiness = 10 - 立即加载该文件:
sudo sysctl --system - 验证某项是否生效:
sudo sysctl net.core.somaxconn
注意:不要用 sysctl -p,它只读取 /etc/sysctl.conf;--system 才会按完整优先级顺序重载全部配置。
临时修改内核参数(仅调试用)
该操作仅在当前运行内核中生效,重启即失效,适用于快速验证某参数效果是否符合预期。
直接写入 proc 接口:sudo sh -c 'echo 65535 > /proc/sys/net/core/somaxconn'
或使用 sysctl -w:sudo sysctl -w net.ipv4.tcp_tw_reuse=1
批量设置多个参数:sudo sysctl -w net.core.rmem_max=16777216 net.core.wmem_max=16777216
这一步操作起来很简单,但切记——临时修改后若确认有效,必须补到 /etc/sysctl.d/ 下的持久化文件中,否则重启后参数还原,问题复现。
验证参数是否真正生效
第一步:检查 proc 值是否已变sudo cat /proc/sys/net/ipv4/tcp_max_syn_backlog
第二步:确认该值来自哪个配置文件sudo sysctl -a --no-pager | grep "tcp_max_syn_backlog" | head -n1
第三步:模拟真实负载压测(如用 wrk 发起短连接洪峰),观察 dmesg 日志与连接状态统计是否改善。











