本文主要是介绍智算AI平台介绍:Volcano的Queue,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
上一篇提到,Volcano涉及了三个重要的功能--Queue,Podgroup, VCjob;
今天主要介绍的的Queue!
Queue属于资源级别的对象,可声明资源配额,多个namespace共享。一般一个算法部门对应一个volcano queue
Queue是容纳一组podgroup的队列,podgroup里面都是pod。
Queue 用于管理和优先级排序任务。
这有助于更好地控制资源分配和调度优先级,确保高优先级的任务可以优先获取资源。
首先看一下,创建Queue的yaml:
apiVersion: scheduling.volcano.sh/v1beta1
kind: Queue
metadata:annotations:resourceGroupID: 7753d0e6-77b0-46e9-ba8b-5a9253ec7010creationTimestamp: "2024-03-30T10:46:58Z"generation: 1name: 298332a6-d69e-4342-8e04-21923cce1a1bresourceVersion: "2670973"uid: 90c9535c-fe6e-4f8c-929f-b0ca1e2b2d4c
spec:capability:cpu: "1"memory: 1Ginvidia.com/gpu: "1"guarantee: {}reclaimable: trueweight: 1
status:reservation: {}state: Open
字段解释:
1.weight
weight表示该queue在集群资源划分中所占的相对比重,
该queue应得资源总量为 (weight/total-weight) * total-resource。
其中, total-weight表示所有的queue的weight总和,
total-resource表示集群的资源总量。
weight是一个软约束,取值范围为[1, 2^31-1]
weight的软约束是指weight决定的queue应得资源的份额并不是不能超出使用的。当其他queue的资源未充分利用时,需要超出使用资源的queue可临时多占。但其 他queue后续若有任务下发需要用到这部分资源,将驱逐该queue多占资源的任务以达到weight规定的份额(前提是queue的reclaimable为true)。这种设计可以 保证集群资源的最大化利用。
2.capability
capability表示该queue内所有podgroup使用资源量之和的上限,它是一个硬约束
3.reclaimable
reclaimable表示该queue在资源使用量超过该queue所应得的资源份额时,是否允许其他queue回收该queue使用超额的资源,默认值为true
平台的队列功能就对应的是以下4种状态
1.Open
该queue当前处于可用状态,可接收新的podgroup
2.Closed
该queue当前处于不可用状态,不可接收新的podgroup
3.Closing
该Queue正在转化为不可用状态,不可接收新的podgroup
4.Unknown
该queue当前处于不可知状态,可能是网络或其他原因导致queue的状态暂时无法感知
说明事项
default queue
volcano启动后,会默认创建名为default的queue,weight为1。后续下发的job,若未指定queue,默认属于default queue
这篇关于智算AI平台介绍:Volcano的Queue的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!