字节跳动开源 Godel-Rescheduler:适用于云原生系统的全局最优重调度框架

背景

在云原生调度中,一次调度往往无法解决所有问题,需要配合重调度来优化资源分配和任务摆放。传统的重调度框架主要集中在识别异常节点或任务,并通过迁移或删除来解决。然而,这些框架往往只能解决局部问题,无法提供全局最优的调度方案,且容易出现多重调度策略冲突,影响整体稳定性。

为了解决这些问题,字节跳动研发了 Godel-Rescheduler,一个基于全局最优调度策略的重调度框架。它不仅能识别集群中的异常节点和任务,还能智能推荐任务到最合适的位置,并通过图算法生成详细的迁移步骤,确保集群的整体稳定性,真正实现全局最优调度。

项目简介

Godel-Rescheduler 由两个核心模块组成:Policy ManagerMovement Manager。其中,Policy Manager 负责输出重调度决策,而 Movement Manager 则负责拆解并执行这些决策。整个框架的目标是通过重调度,使集群朝向全局最优状态发展。

> 架构概览

> 组件介绍

Policy Manager 作为算法与策略控制中心,Policy Manager 负责配置重调度策略、迁移条件检测和执行相应的算法。它输出全局或局部最优的调度结果,并将决策传递给 Movement Manager。

  • Policy Controller 负责整体调度流程的控制,利用各子模块提供的功能,输出最优的调度决策。

  • Policy Configurator 负责读取并解析配置文件,定义重调度策略的触发条件、参数和作用范围。支持四种触发方式:周期执行、Signal 信号、HTTP 请求和 Cronjob。每个策略都可以根据需要配置不同的触发方式。

  • Detector 用于检测集群、机器和实例的状态,评估是否需要进行局部迁移或全局重调度。不同的策略可以通过定制化 Detector 实现不同的检测逻辑,如热点检测、负载均衡或碎片整理等。

  • Algorithm Provider 根据 Detector 提供的输入,算法插件为每个需要重调度的实例找到最适合的目标节点。为确保调度决策的有效性,算法会进行目标节点的校验,并与其他策略的决策进行冲突检查。

  • Movement Checker 校验一个迁移是否会对集群稳定性造成负面影响,特别是对目标节点的资源消耗、负载情况等进行验证。

  • Validator 在框架层面对每个移动决策进行最终校验,确保未经过校验的错误决策不会被执行。

Movement Manager 负责决策的执行和排序,并将新的调度结果上报,同时清除过期的推荐结果。

  • Movement Generator 算法基于有向图强连通分量分解,依据实例在节点间的转移关系和 PDB(PodDisruptionBudget)限制,生成优化的迁移批次。目标是尽可能减少迁移次数,同时保证集群稳定性。

  • Task Killer 负责按顺序执行每个移动决策,确保每个决策在保证稳定性的前提下逐步实施。

  • Movement Recycler 确保在新策略生成前,及时清除旧的调度决策,避免过期决策影响新的调度计划。

> 字节跳动的实际落地

目前,字节跳动已经成功将 Godel-Rescheduler 应用到多个内部项目中,支持多种重调度策略的协同工作。例如:

  • 合并部署重调度:优化上下游应用实例在相同节点上的调度。

  • 负载均衡重调度:在负载、内存带宽、网络带宽等方面进行优化。

  • 碎片整理重调度:有效减少 CPU、GPU 等资源的碎片率等。

在实际应用中,Godel-Rescheduler 已帮助字节跳动的数万卡 GPU 集群将碎片率控制在 5% 以下,同时在大规模混合部署集群中,热点节点比例控制在 0.1% 以下,取得了显著的效果。

未来发展

未来,Godel-Rescheduler 将持续扩展和优化:

  • 更多重调度策略:引入更多实时数据,以丰富调度策略的多样性。

  • 稳定性建设:在优化调度效果的同时,持续降低重调度对集群稳定性的影响。

  • 扩展性优化:进一步简化策略接入方式,提升插件化能力。

  • 通用指标构建:制定通用的重调度评价指标,以全面评估调度效果。

  • 优化可解释性:增强重调度算法的可解释性,帮助用户更好地理解调度决策的依据。

相关链接

Godel ReScheduler 项目地址:

github.com/kubewharf/g...

相关推荐
zenRRan14 分钟前
综述 | GUI Agent:让AI学会「玩手机」的新革命
人工智能
满怀101528 分钟前
【OpenCV图像处理实战】从基础操作到工业级应用
图像处理·人工智能·python·opencv·计算机视觉·编程入门
AI视觉网奇28 分钟前
四元数转旋转矩阵
人工智能·pytorch·python
爱编程的鱼1 小时前
Windows 各版本查找计算机 IP 地址指南
人工智能·windows·网络协议·tcp/ip·tensorflow
Apifox.1 小时前
Apifox 4月更新|Apifox在线文档支持LLMs.txt、评论支持使用@提及成员、支持为团队配置「IP 允许访问名单」
前端·人工智能·后端·ai·ai编程
Tech Synapse1 小时前
人脸识别考勤系统实现教程:基于Face-Recognition、OpenCV与SQLite
人工智能·opencv·sqlite
硅谷秋水1 小时前
CoT-Drive:利用 LLM 和思维链提示实现自动驾驶的高效运动预测
人工智能·机器学习·语言模型·自动驾驶
界面开发小八哥1 小时前
Java开发工具IntelliJ IDEA v2025.1——全面支持Java 24、整合AI
java·ide·人工智能·intellij-idea·idea
IT古董2 小时前
【漫话机器学习系列】214.停用词(Stop Words)
人工智能·机器学习