当前位置:首页 > 技术 > 正文内容

银河麒麟V10系统内核参数加载机制解析

访客 技术 2026年7月23日 1

系统启动时内核参数的加载流程分析

在使用银河麒麟高级服务器操作系统V10部署Kubernetes集群时,常遇到内核参数未生效的问题。尽管通过sysctl -p命令看似已应用配置,但重启后部分参数仍恢复默认值,这背后涉及复杂的加载顺序逻辑。

核心服务与配置路径

系统启动过程中,内核参数由两个关键服务管理:

  • systemd-sysctl.service:负责初始化阶段加载各类sysctl配置文件
  • tuned.service:动态调优服务,可按工作负载模式调整性能参数

查看服务状态可确认其运行状态:

# systemctl status systemd-sysctl.service
# systemctl status tuned.service

systemd-sysctl.service 加载顺序

该服务按以下路径读取配置文件,优先级从高到低:

  1. /run/sysctl.d/*.conf
  2. /etc/sysctl.d/*.conf
  3. /usr/local/lib/sysctl.d/*.conf
  4. /usr/lib/sysctl.d/*.conf
  5. /lib/sysctl.d/*.conf
  6. /etc/sysctl.conf

值得注意的是:

  • 同名配置文件以目录优先级高的为准(如/etc/ > /usr/lib/
  • 不同文件名按字典序处理,建议命名格式为XX-xxx.conf,数字越小越早加载
  • 最终/etc/sysctl.conf虽优先级最低,但由于是最后加载,会覆盖之前设置

tuned.service 的影响机制

当启用tuned服务时,其执行顺序晚于systemd-sysctl,且会执行sysctl --system命令,再次加载所有可用配置文件:

* Applying /usr/lib/sysctl.d/10-default-yama-scope.conf ...
* Applying /usr/lib/sysctl.d/50-pid-max.conf ...
* Applying /etc/sysctl.d/99-sysctl.conf ...
* Applying /etc/sysctl.d/k8s.conf ...
* Applying /usr/lib/sysctl.d/kylin.conf ...
* Applying /etc/sysctl.conf ...

这意味着:即使提前通过sysctl -p设置了参数,只要后续被tuned加载的配置覆盖,依然无效。

特殊注意事项:kylin.conf 文件

银河麒麟系统自带/usr/lib/sysctl.d/kylin.conf文件,包含大量优化项,其加载位置较靠后。若在自定义配置中修改相同参数,需注意:

  • 将自定义文件命名为高于kylin.conf的数字前缀(如99-k8s.conf
  • 或直接修改kylin.conf内容
  • 或将配置写入/etc/sysctl.conf,确保最后生效

手动加载与验证

可通过以下方式主动加载特定配置:

sysctl -p /etc/sysctl.d/k8s.conf

并用以下命令验证实际生效值:

cat /proc/sys/net/ipv4/ip_forward

总结要点

  • systemd-sysctl先于tuned加载
  • 同名配置以高优先级目录为准
  • 非同名文件按文件名字典序加载
  • 最终生效值取决于最后一次加载的配置
  • 务必关注/usr/lib/sysctl.d/kylin.conf的存在与影响
  • 避免因覆盖机制导致配置失效

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。