![]()
一年了,它终于公开了
差不多一年前,Multikernel 项目把它的 Linux 内核代码亮了出来,还提交了第一批补丁供审查。现在,团队终于第一次公开了 Multikernel Linux 内核树——基于 Linux 7.0,版本号 v7.0-mk2。目前官方只支持 x86_64。
没听过?没关系,这玩意儿挺有意思的。
不是虚拟机,是真·裸跑
Multikernel 的想法很直接:在大规模多核系统上,不让一个 Linux 内核包办一切,而是让好几个独立的 Linux 内核在同一台硬件上并排运行。
一个 Linux 实例当“房东”,管理 CPU、内存和 PCI 设备池。它能把这些资源切分成若干组,然后在每组里再启动另一个 Linux 内核。和虚拟机不同,这些额外内核不跑在 Hypervisor 上——它们各自拥有物理 CPU、内存和设备,直接在硬件上运行。
而且资源不是锁死的。项目方说,你可以随时关掉某个实例,把它的 CPU、内存和设备还给房东,然后按需启动一个新实例,甚至可以换不同版本的内核。
比 KVM 快?实测数据来了
这次发布,项目组还贴出了性能对比,看看裸跑方案比传统虚拟化强在哪儿。一组 lmbench 测试里,Multikernel 和一台调优过的 KVM 虚拟机比——同样的内核构建、两颗 CPU 核心、1GB 内存,跑在双路 Intel Xeon Gold 5418Y 系统上。
结果呢?内存延迟和带宽几乎一样,毕竟现代硬件虚拟化已经很高效了。但差别在那些需要频繁上下文切换和 CPU 唤醒的任务上就明显了。
比如:两个进程的上下文切换,Multikernel 只要 1.37 微秒,KVM 默认 guest 是 3.42 微秒。管道延迟 3.24 vs 7.06 微秒,Unix socket 延迟 4.81 vs 7.48 微秒。
快是有代价的,功耗涨了
不过开发者说了,别以为 Multikernel 总是比 KVM 快几倍。很多差异来自空闲 vCPU 的管理方式——KVM 默认唤醒一个空闲 vCPU 要退出再重新进入虚拟机,而 Multikernel 直接管理物理 CPU 核心。
代价是什么?这些 CPU 核心在房东看来是满负荷的,功耗自然上去。项目组测了一下,这套配置下多了大约 19 瓦。让 guest 多控制 CPU 电源管理能改善延迟,但依然要在功耗和资源之间做取舍。
目前只稳跑 x86_64
首次公开版,x86_64 测试最多。其他架构可能以后会支持,架构相关接口已经分离了,但还没有正式支持。
想了解更多?可以看官方公告 https://lore.kernel.org/lkml/ao34RJ7aZ2BLd67S@pop-os.localdomain/),源码在 GitHub https://github.com/multikernel/linux) 上,还有入门指南,感兴趣的不妨试试看。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.