低成本资源
Spot 实例
Spot 实例适合可中断、有 checkpoint 或可重试机制的非关键任务。使用 Spot 资源时,任务可能在资源紧张时被驱逐,任务状态可能变为失败。 在创建训练任务时,进入 计算资源 配置,选择 Spot 资源类型,再按页面展示选择实例类型、实例规格和单节点实例规格数。Spot 资源可用量会随集群机器利用率变化;如果页面没有可选实例,说明当前筛选范围内暂不可用。 使用 Spot 时,建议关注以下信息:- 适合实验性任务、批处理任务或可快速重提的训练。
- 不适合没有 checkpoint 的长时间关键训练。
- Spot 属于非保障型资源,所在机器资源紧张时任务可能被驱逐。
- 被驱逐后,任务可能进入失败状态。建议根据任务输出和 checkpoint 重新提交;关键训练改用预留或按量资源。
闲时任务
闲时任务使用集群当前空闲资源运行,提交时无需绑定已购买配额。闲时任务成本低,但资源不保障,可能被更高优先级任务抢占。 在创建训练任务时,进入 计算资源 配置,选择 闲时资源。选择后按页面展示选择实例类型、实例规格和单节点实例规格数,并按需配置 闲时稳定性等级。 使用闲时任务时,建议关注以下信息:- 适合可中断、可重试、不要求固定完成时间的任务。
- 闲时资源可用量会动态变化,任务可能被更高优先级任务抢占。
- 闲时资源碎片 会随稳定性等级变化。分布式训练需要每个副本能落到可用节点,不能把多行碎片简单相加判断是否可调度。
- 闲时资源不支持设置 任务优先级 和 资源保障,以页面禁用状态为准。
- 任务被抢占后可能进入失败状态,状态信息可能包含
was preempted by another task。 - 闲时资源按实际计费说明结算,不能默认理解为免费资源。
- 建议为训练脚本配置 checkpoint 或重试机制,避免把关键训练流程完全依赖在非保障资源上。
调度和资源保障
任务优先级和资源优先级
训练任务支持配置 任务优先级 和 资源优先级。前者影响资源竞争中的调度顺序,后者影响同一任务内多个候选实例方案的尝试顺序。 在创建训练任务时,按页面展示配置优先级。通常可以按任务重要性和时效性选择任务优先级:
任务优先级普通取值范围为
1 到 9,数值越大优先级越高。任务优先级不是资源预留承诺,任务能否启动仍取决于资源池状态、个人配额、实例规格和调度条件。
资源优先级用于多个候选实例方案。平台会优先尝试排在前面的候选实例;如果前序候选暂不可用,再尝试后续候选。配置多个候选实例前,请确认训练代码兼容对应 GPU 型号、显存、CPU / 内存组合和通信能力。
资源保障
资源保障用于控制任务是否使用不可抢占资源。开启资源保障后,任务稳定性更高;不开启时,任务可能在资源竞争中被抢占。 在创建训练任务时,如果页面提供 资源保障 配置,可根据任务稳定性要求选择是否开启。关键训练、长时间训练或恢复成本较高的任务,建议开启资源保障;短时实验、可快速重提的任务,可以结合成本和资源紧张程度选择不开启。 优先级和资源保障会共同影响资源竞争中的调度结果。资源保障针对调度和抢占,不处理代码异常、镜像拉取失败、数据路径错误、硬件故障、网络故障或程序卡住;这些问题需要结合日志、事件、监控和容错机制排查。接受闲时资源
使用预留实例时,如果页面提供 接受闲时资源,可允许任务在预留资源不足时将闲时资源作为备选。实际使用闲时资源时,任务会按闲时资源规则处理优先级、稳定性和回收风险。 配置该能力时,建议关注以下信息:
启用闲时备选并不表示平台会把部分预留资源和部分闲时资源拼成一个分布式任务。任务仍需满足完整副本规模的调度条件。
节点调度策略
节点调度策略由 配置管理 > 调度策略 统一维护,可按负载类型作用于训练任务。您可以通过 屏蔽 排除指定节点,也可以通过 仅调度 将任务限制在指定节点上运行。策略可以默认作用于匹配负载,也可以仅在创建负载时主动选择后生效。 节点调度策略会改变任务可使用的节点范围,可能影响任务能否调度。提交任务前,请确认策略的调度类型、生效范围、生效模式、负载类型、节点名称和策略失效时间符合预期。创建、查找和维护策略的方法请参见 管理节点调度策略。 如果任务因节点屏蔽策略无法调度,事件或错误信息中可能出现quota check failed due to node blacklist: XXX。此时请检查是否存在命中当前任务的调度策略。
RayJob 增强能力
共享存储
RayJob 可配置共享存储,将同一个 Volume 挂载到 Head 和 Worker Pod 中,用于共享 checkpoint、日志、中间结果或缓存数据。 在创建训练任务时,选择任务类型为 RayJob,在 RayJob 专有配置中打开 挂载共享存储,选择要挂载的 Volume。按需选择是否在任务退出后清理共享存储数据。 提交后,平台会校验当前账号对 Volume 的权限,并将共享存储挂载到 RayJob 各 Pod。任务代码可通过/tmp/ray 读写共享存储。
使用共享存储时,建议关注以下信息:
- 共享存储仅适用于 RayJob,PyTorchJob 不支持该能力。
- 共享存储会挂载到 RayJob 各 Pod 的
/tmp/ray目录。 - 调试阶段可以不勾选退出后清理,便于保留现场数据;生产任务建议开启清理,避免空间泄漏。
- 共享存储适合跨 Pod 共享数据,不替代任务输入数据集或长期模型归档。
- 共享存储不参与调度决策;任务是否能调度成功仍取决于资源池、实例规格、节点策略和配额。
- 共享存储需要使用支持多 Pod 读写的 Volume,具体可选 Volume 以页面展示和管理员配置为准。
- 共享存储会按任务组织目录,同一任务的 Head 和 Worker Pod 可在
/tmp/ray下共享数据。需要减少不同任务之间的数据混淆时,建议使用不同的任务名称前缀,并在代码中使用明确的子目录。 - 任务退出后清理共享存储数据不会改变任务最终状态。清理失败时,可进入对应 Volume 手动清理本任务目录。
自动扩缩容
RayJob 可根据负载自动调整 Worker 数量。配置时需要关注缩容下限、扩容上限、回收时间和扩容模式。 在创建训练任务时,选择任务类型为 RayJob,在 Ray 自动扩缩容配置中启用该能力,并填写扩缩容参数。
负载波动明显的 Ray 任务适合开启自动扩缩容。对资源稳定性要求高的任务,应谨慎设置扩缩容上下限,避免频繁扩缩容影响训练或计算过程。
Runtime Env
Runtime Env 用于配置 Ray 作业运行时依赖、环境变量等内容。使用前请确认镜像中已有基础 Ray 环境,并确认 Runtime Env 配置格式正确。 在创建训练任务时,选择任务类型为 RayJob,在 RayJob 专有配置中填写 Runtime Env。Runtime Env 使用 Ray 支持的 YAML 格式,可用于声明运行时依赖、环境变量等配置;不需要额外运行时配置时可以留空。 RayJob 需要使用包含 Ray 运行环境的镜像。如果使用自定义镜像,请确认镜像内包含任务所需的 Ray 组件和依赖,否则 Ray 进程可能无法启动,任务无法进入运行中状态。Pod 组成和日志
RayJob 提交后通常包含以下 Pod:
RayJob 最终占用训练资源的 Pod 数通常为
Worker 数 + 1。用户代码日志通常通过 Submitter Pod 查看;Ray 集群自身日志可查看 Head Pod 或 Worker Pod。
如果需要访问 Ray Dashboard,请确认镜像中包含对应依赖,并以训练任务详情页展示的入口为准。
RayJob 运行过程中,如果未开启 Debug,Ray 集群通常会在 Submitter Pod 结束后回收;如果开启 Debug,Ray 集群会在配置的保存时间内继续保留,便于进入 Head Pod 查看集群状态。非停止状态下停止 RayJob 会释放相关 Pod 资源。
