字節(jié)跳動開源 Godel-Rescheduler:適用于云原生系統(tǒng)的全局最優(yōu)重調(diào)度框架
背景
在云原生調(diào)度中,一次調(diào)度往往無法解決所有問題,需要配合重調(diào)度來優(yōu)化資源分配和任務擺放。傳統(tǒng)的重調(diào)度框架主要集中在識別異常節(jié)點或任務,并通過遷移或刪除來解決。然而,這些框架往往只能解決局部問題,無法提供全局最優(yōu)的調(diào)度方案,且容易出現(xiàn)多重調(diào)度策略沖突,影響整體穩(wěn)定性。
為了解決這些問題,字節(jié)跳動研發(fā)了 Godel-Rescheduler,一個基于全局最優(yōu)調(diào)度策略的重調(diào)度框架。它不僅能識別集群中的異常節(jié)點和任務,還能智能推薦任務到最合適的位置,并通過圖算法生成詳細的遷移步驟,確保集群的整體穩(wěn)定性,真正實現(xiàn)全局最優(yōu)調(diào)度。
項目簡介
Godel-Rescheduler 由兩個核心模塊組成:Policy Manager 和 Movement Manager。其中,Policy Manager 負責輸出重調(diào)度決策,而 Movement Manager 則負責拆解并執(zhí)行這些決策。整個框架的目標是通過重調(diào)度,使集群朝向全局最優(yōu)狀態(tài)發(fā)展。
> 架構概覽
> 組件介紹
Policy Manager 作為算法與策略控制中心,Policy Manager 負責配置重調(diào)度策略、遷移條件檢測和執(zhí)行相應的算法。它輸出全局或局部最優(yōu)的調(diào)度結(jié)果,并將決策傳遞給 Movement Manager。
- Policy Controller 負責整體調(diào)度流程的控制,利用各子模塊提供的功能,輸出最優(yōu)的調(diào)度決策。
- Policy Configurator 負責讀取并解析配置文件,定義重調(diào)度策略的觸發(fā)條件、參數(shù)和作用范圍。支持四種觸發(fā)方式:周期執(zhí)行、Signal 信號、HTTP 請求和 Cronjob。每個策略都可以根據(jù)需要配置不同的觸發(fā)方式。
- Detector 用于檢測集群、機器和實例的狀態(tài),評估是否需要進行局部遷移或全局重調(diào)度。不同的策略可以通過定制化 Detector 實現(xiàn)不同的檢測邏輯,如熱點檢測、負載均衡或碎片整理等。
- Algorithm Provider 根據(jù) Detector 提供的輸入,算法插件為每個需要重調(diào)度的實例找到最適合的目標節(jié)點。為確保調(diào)度決策的有效性,算法會進行目標節(jié)點的校驗,并與其他策略的決策進行沖突檢查。
- Movement Checker 校驗一個遷移是否會對集群穩(wěn)定性造成負面影響,特別是對目標節(jié)點的資源消耗、負載情況等進行驗證。
- Validator 在框架層面對每個移動決策進行最終校驗,確保未經(jīng)過校驗的錯誤決策不會被執(zhí)行。
Movement Manager 負責決策的執(zhí)行和排序,并將新的調(diào)度結(jié)果上報,同時清除過期的推薦結(jié)果。
- Movement Generator 算法基于有向圖強連通分量分解,依據(jù)實例在節(jié)點間的轉(zhuǎn)移關系和 PDB(PodDisruptionBudget)限制,生成優(yōu)化的遷移批次。目標是盡可能減少遷移次數(shù),同時保證集群穩(wěn)定性。
- Task Killer 負責按順序執(zhí)行每個移動決策,確保每個決策在保證穩(wěn)定性的前提下逐步實施。
- Movement Recycler 確保在新策略生成前,及時清除舊的調(diào)度決策,避免過期決策影響新的調(diào)度計劃。
> 字節(jié)跳動的實際落地
目前,字節(jié)跳動已經(jīng)成功將 Godel-Rescheduler 應用到多個內(nèi)部項目中,支持多種重調(diào)度策略的協(xié)同工作。例如:
- 合并部署重調(diào)度:優(yōu)化上下游應用實例在相同節(jié)點上的調(diào)度。
- 負載均衡重調(diào)度:在負載、內(nèi)存帶寬、網(wǎng)絡帶寬等方面進行優(yōu)化。
- 碎片整理重調(diào)度:有效減少 CPU、GPU 等資源的碎片率等。
在實際應用中,Godel-Rescheduler 已幫助字節(jié)跳動的數(shù)萬卡 GPU 集群將碎片率控制在 5% 以下,同時在大規(guī)?;旌喜渴鸺褐?,熱點節(jié)點比例控制在 0.1% 以下,取得了顯著的效果。
未來發(fā)展
未來,Godel-Rescheduler 將持續(xù)擴展和優(yōu)化:
- 更多重調(diào)度策略:引入更多實時數(shù)據(jù),以豐富調(diào)度策略的多樣性。
- 穩(wěn)定性建設:在優(yōu)化調(diào)度效果的同時,持續(xù)降低重調(diào)度對集群穩(wěn)定性的影響。
- 擴展性優(yōu)化:進一步簡化策略接入方式,提升插件化能力。
- 通用指標構建:制定通用的重調(diào)度評價指標,以全面評估調(diào)度效果。
- 優(yōu)化可解釋性:增強重調(diào)度算法的可解釋性,幫助用戶更好地理解調(diào)度決策的依據(jù)。
相關鏈接
Godel ReScheduler 項目地址: