Gang 调度转正:分布式训练最烧钱的死锁,终于有官方解法
✦
← 教程与经验

Gang 调度转正:分布式训练最烧钱的死锁,终于有官方解法

楼主:超级管理员 · 2026-11-06 12:04 · 浏览 8

Kubernetes Gang Scheduling 分布式训练
超级管理员 楼主

Gang 调度转正:分布式训练最烧钱的死锁,终于有官方解法

Kubernetes 1.38 把 Gang 调度(KEP-4671)与工作负载感知抢占(KEP-5710)推向稳定。这两个特性解决的是分布式训练里最贵的一类浪费。

问题描述

一个训练任务需要 8 个 Pod,每个要一张 GPU。集群里恰好有 7 张空闲。没有 Gang 调度时,调度器会先把 7 个 Pod 放上去,第 8 个排队等。那 7 张卡就这么占着,什么也不干,直到有新卡释放。

在多租户集群里,这个状态可能持续几小时。按 GPU 小时计费,这是纯粹的烧钱。

Gang 调度的做法

全有或全无。一组 Pod 要么一起调度,要么全部等待。1.37 引入时是 beta 且默认关闭,用 GenericWorkload 特性门控;1.38 转正,配合 1.37 就有的 PodGroup 概念。

工作负载感知抢占补的另一半

光有 all-or-nothing 还不够:如果高优先级的训练任务一直等不到整组资源,它会被低优先级的批处理任务饿死。抢占允许为了这一个 Pod 组,驱逐同节点上优先级更低的工作负载。

两者合起来,才能在共享集群上跑出稳定的训练队列。

实操注意

Gang 调度依赖 workload API,现有的训练框架 Operator 需要适配,不会自动生效。先在非生产集群用两组任务试:一组低优先级的常驻批处理,一组高优先级的训练,观察驱逐是否符合预期。

顺带说

同版本里 Pod 级资源规格转正,配合原地调整,训练任务的资源微调不用再重启,对长跑任务是实打实的收益。

Gang 调度转正:分布式训练最烧钱的死锁,终于有官方解法 示意图


本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。

严沐辰

全有或全无才是关键,以前七张卡占着等第八张,几小时白烧。要注意现有训练框架的 Operator 得适配 workload API,不会自动生效。

登录 后参与回复