字节跳动积极为 Kexec 提交补丁,优化重启 Linux 内核速度

字节跳动在过去几年中一直在积极优化 Linux 内核,最近的贡献是提升使用 Kexec 重启内核的速度。原因在于他们的产品越来越流行,比如抖音及其海外版,以及其他应用都需要依赖大量 Linux 服务器,所以字节跳动工程师会尽其所能优化 Linux 内核,将服务器的启动/重启时间缩短几毫秒,以减少服务器停机时间。这就是他们参与大多数 Linux 优化的目的,包括这个最新的补丁系列——以实现更快的 Kexec 重启。

和许多其他大型组织一样,出于安全、维护和优化的原因,字节跳动依靠 Kexec 重启来迁移到新的内核。通过使用Kexec,他们避免了服务器 POST'ing 和其他任务发生严重停机时间。不过即便使用了 Kexec 来切换到一个新的内核,以避免硬件初始化,但引导加载程序仍可能会导致停机时间过长。

字节跳动最新贡献的"faster kexec reboot"系列补丁如名字所示,可加快 Kexec 的重启速度。他们的优化目标是减少大约 500 毫秒的时间,将机器使用 Kexec 启动内核功能的时间缩短到只有 15 毫秒。

字节跳动提出的优化措施包括:在 x86/x86_64 上支持启用未压缩的内核,以加快启动过程,而不是压缩内核镜像,避免在内核未压缩时进行内存拷贝,以及将已崩溃的内核所保留的内存重新用于正常的 kexec 操作。经测试,仅在 x86 上启用未压缩内核就可以将启动时间缩短 150 毫秒以上,但这意味着内核镜像大小从 8.5M 增加到 53M。

目前这个补丁系列涉及到了大约 100 行 Linux 内核代码,字节跳动希望能在上游将 Kexec 重启时间缩短半秒左右。

猜你喜欢

转载自www.oschina.net/news/204190/bytedance-faster-kexec-reboot