来源:
https://lore.kernel.org/linux-pm/20250923153146.365015-1-fam.zheng@bytedance.com/
Parker 团队进一步阐述了其多内核设计方案:
“每个内核实例可使用相同镜像,但初始内核(即引导内核)负责控制硬件分配与分区。其余内核均为次级内核(应用内核),各自管理其分配的CPU/内存/I/O设备。”
Parker的主要应用场景是高核心数机器,这类环境可能存在可扩展性问题。启动后,内核实例之间不存在通信。换言之,它们不共享任何资源,从而提升可扩展性。每个内核都需要独立的(PCIe)设备进行I/O操作,例如NVMe或网卡。
另一种可能的应用场景是:根据工作负载需求,为不同内核实例配置差异化的性能调优方案、CONFIG_选项以及FDO/PGO策略。
该概念旨在允许多个 Linux 内核在一台物理机上同时运行,而无需依赖 KVM 等传统虚拟化工具。
Parker 的工作原理是划分硬件资源。所谓的引导内核 (Boot Kernel) 首先负责,划分出 CPU 核心、内存区域和 I/O 设备,然后将这些部分交给开发人员所谓的应用程序内核 (Application Kernel)。
因此,每个内核独立运行,彼此之间无需通信,理论上这使得设置在具有非常高核心数的服务器上更具可扩展性。
工程师们看到的一个用例是运行具有不同配置或性能调优的内核,以适应其处理的工作负载。Parker 通过公开一个kernfs接口并将kexec辅助内核映像热加载到预留内存中来实现这一点。在此之前,引导内核必须离线 CPU、预留内存并分离设备,以确保每个分区能够安全运行。
然而,并非所有人都相信这种方法是正确的。英特尔(Intel)的戴夫·汉森 (Dave Hansen)驳斥了该提议,并警告称,如果没有监督层,就无法阻止内核之间的冲突。例如,一个内核切换分裂锁检测或发出类似 的系统级指令,WBINVD可能会导致机器上所有其他内核出现问题。
https://lore.kernel.org/linux-pm/40419dea-666e-4a8d-97a7-fa571d7122f4@intel.com/
目前,很多家企业都在致力于多内核实验,以更好地应对当代高核心数系统。这项工作将走向何方,以及其中哪些方案最终能演进为适用于上游Linux内核的设计,值得我们持续关注。
作者:洛逸
本篇文章为 @ 场长 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。
请扫描二维码,使用微信支付哦。