linux服务器 越来越慢(ibm服务器启动不了)

出品|开源中国

文|御坂弟弟

在 Linux 5.15 合并窗口中,一组关于 Kernfs 性能改进的补丁通过驱动程序核心 PR 合并,可解决大型 IBM 服务器引导 Linux 内核过慢的问题。

在 Linux 内核中,kernfs 是一组函数,其中包含创建各种内核子系统内部使用的伪文件系统所需的功能。它通过将硬件设备和相关设备驱动程序的信息从内核的设备模型导出到用户空间来提供一组虚拟文件,成为一个独立且可重用的功能,因此其他内核子系统可以更轻松、更一致地实现自己的伪文件系统。

此前,具有 “数百个 CPU 和 64TB RAM” 的大型 IBM Power 系统需要 30 多分钟才能启动 Linux 内核,而且还需要额外的内核参数以避免内核在启动时超时。而造成该问题的原因即在于对不存在的文件进行多次路径查找以及 VFS 代码中的锁竞争。更糟糕的是,IBM Power 会将 64TB 的系统内存分成 256MB 的本地块,导致大量的 sysfs 节点创建。

而此次更改涉及将 Kernfs 互斥体切换为使用读写信号量以允许并行节点搜索、改善路径解析以及使用 VFS 缓存。通过这些优化,大型 IBM 系统的启动时间可缩短到 5 分钟以内。