背景介绍
业务场景
- 业务上的任务类型分两类:在线推理(
inference)和离线训练(training)。 - 在线推理和离线训练任务使用不同的队列管理配额。
- 在线推理服务按照租户和项目空间维度通过不同的队列管理配额。
- 离线训练任务按照业务队列的维度管理配额,底层均是由
Volcano queue来实现配额管理。
Volcano调度器
Volcano原生提供了两个支持按照优先级进行资源抢占驱逐的action:preempt和reclaim。其中preempt仅支持单队列内的多个任务之间的抢占驱逐,而reclaim则支持跨队列的抢占驱逐。根据当前业务背景来看,我们需要通过reclaim动作来实现跨队列的资源抢占驱逐。
由于Volcano不支持卡维度的配额管理,因此在我们的调度器中使用的是自定义的capacity-card插件来实现卡维度的配额管理。具体可以参考章节:Volcano调度器支持智算卡Quota改进方案。由于在抢占和驱逐过程中也会涉及到对资源的计算,因此该过程也依赖此插件来实现卡维度的计算。