龍蜥白皮書精選:敏捷開發場景下的排程器熱升級 SDK

OpenAnolis小助手發表於2023-03-27

文/Cloud Kernel SIG

01 背景概述

不同的應用程式,通常需要不同的排程策略來最佳化效能。而核心釋出週期很長,升級核心的成本通常較高,最佳化無法快速規模化部署。並且針對特定應用的排程器最佳化,常常造成其他場景的效能回退,發生問題也難以回滾。透過傳統熱修復技術,可以在不升級核心的情況下,實現核心區域性更新和最佳化,針對性提升一些應用的效能。但傳統技術無法實現整個子系統升級,不支援大型排程特性,停機時間長。而排程器熱升級技術解決了以上問題。

02 技術方案

排程器熱升級 SDK 透過模組化、資料重建、熱替換等技術,實現排程器研發、測試、上線、維護的敏捷化和定製化。其中,模組化技術自動地從核心中解耦出排程器模組程式碼,面向核心開發者提供敏捷開發的 SDK 。熱替換技術使得管理員可在毫秒級 downtime 內部署。資料重建技術將資料狀態從升級前的排程器遷移到升級後的排程器。透過這些技術,可以實現定製化排程器,從而解決不同應用和負載需要不同排程器的問題,並實現生產可用。相關論文「Efficient Scheduler Live Update for Linux Kernel with Modularization 」已經發表在體系結構頂會 ASPLOS '23 上。軟體架構如下圖所示:

龍蜥白皮書精選:敏捷開發場景下的排程器熱升級 SDK

方案相容多架構、核心版本。已測試透過的包括 AArch64、x86-64 架構,4.19、5.10 系列核心。對 3.10 系列核心提供有限支援。方案同時支援各種排程器特性,經測試驗證透過的包括以下:微型排程器、物理核排程器(Core Scheduling)、刪除限流功能(CFS bandwidth control)、龍蜥 CPU 混部特性等、上游 Linux 社群的各種 bugfix。

03 應用場景及效能收益

排程器熱升級 SDK 適合於下面幾種場景,這些場景均已得到驗證。

  • 架構上有針對特殊硬體、應用、負載來定製化排程器的需求。

  • 管理員不能切換核心,或週期很長;或由於社群運作停止核心版釋出和維護。

  • 核心開發者需要敏捷且可回滾地開發測試上線排程器。

某雲 Serverless 服務,透過排程器熱升級 SDK,將 Linux 上游物理核排程器特性,以及基於之上自研的算力穩定技術,安裝到龍蜥 4.19 核心老系統上。最後透過這一最佳化,他們的客戶例項減少了約 10% 的 P99 延遲,並降低了效能的抖動,還大幅降低了啟動時間。驗證了排程器熱升級方便支援大型特性以及擴充套件研發的能力。

某網際網路金融服務公司,利用排程器熱升級 SDK,敏捷地將他們自研的排程器最佳化安裝到他們的核心業務中。包括了 Linux CFS 排程器和龍蜥核心的 CPU 資源隔離技術的最佳化。穩定減少了 5% 的 CPU 資源浪費,同時降低業務 rt。上線過程中,在 40,000 執行緒的環境中,停機時間小於 12 ms。最終最佳化效果得到運維人員的認可,排程器熱升級 SDK 的易用性也得到研發人員的認可,希望繼續使用排程器熱升級 SDK 進行系統最佳化。

Cloud Kernel SIG 主頁:

附:

2022 龍蜥社群全景白皮書(或公眾號回覆關鍵字“白皮書”獲取)

—— 完 ——


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70004278/viewspace-2941960/,如需轉載,請註明出處,否則將追究法律責任。

相關文章