字節跳動正貢獻代碼讓Linux內核更快地啟動Kexec系統
作為TikTok背後的中國公司,ByteDance(字節跳動)在過去幾年中一直致力於許多Linux內核的優化,他們最近的工作是加快內核的Kexec重啟。由於公司龐大的服務器群需要為TikTok和其他應用程序提供動力,他們必須盡其所能從其服務器的啟動/重啟時間中減少幾毫秒,這就其對Linux優化的目的:最新的Kexec重啟系列補丁。
像許多其他大型組織一樣,ByteDance依靠Kexec重啟來轉移到新的內核,無論是出於安全、維護還是優化的原因。通過使用Kexec,他們避免了服務器POST’ing和其他任務的更長的停機時間。但是,即使使用Kexec來切換到一個新的內核,以避免硬件初始化和引導程序,仍然可能帶來太長的停機時間。
通過今天的”faster kexec reboot”系列補丁,他們將削減的目標定在大約500毫秒,這些時間可以被優化掉,使從機器Kexec到啟動內核功能的時間降低到只剩下15毫秒。
提出的優化措施包括在x86/x86_64上支持未壓縮的內核,以加快啟動過程,而不是作為一個壓縮的內核鏡像,避免在內核未壓縮時進行內存拷貝,並重新使用崩潰的內核保留內存進行正常的kexec操作。這樣做之後,僅僅在x86上啟用未壓縮的內核,就使其啟動時間減少了150毫秒,但意味著內核鏡像的大小從8.5M猛增到53M。
這個補丁系列觸及了大約100行Linux內核代碼,字節跳動方面現在希望在上游將Kexec重啟時間縮短半秒左右。
了解更多:
https://lore.kernel.org/lkml/20220725083904.56552-1-huangjie.albert@bytedance.com/