本文主要介绍队列内的任务对于资源配额的抢占策略。
说明
该功能目前处于 公测 阶段。
设置任务资源分配抢占策略相关操作,请参见 队列。
下文以队列queue-a
举例,介绍队列内任务的资源配额抢占策略。
queue-a
的 任务抢占策略 > 队列内抢占策略 为 优先级抢占。queue-a
不属于任何一个队列组,或者queue-a
所在队列组中其他队列均无空余资源可以被queue-a
借用时,queue-a
中的任务只能在queue-a
队列内部进行资源配额抢占:
queue-a
队列中运行Job-1
、Job-2
、Job-3
三个任务,其优先级分别是 P0、P0、P2(优先级 P0>P1>P2),此时队列新接受了一个Job-4
任务,且优先级为 P1。示意图如下所示。queue-a
队列的剩余资源不足以支撑Job-4
任务的调度执行,且queue-a
中存在比Job-4
低优先级的任务Job-3
,所以在 优先级抢占 策略下Job-3
将中断执行释放资源。示意图如下所示。queue-a
队列中的资源配额被释放出来后,释放出来的资源,被用于Job-4
任务的调度执行,而Job-3
任务会重新在队列中排队等待资源。示意图如下所示。下文以队列queue-a
和queue-b
,属于同一个队列组queue-group-1
举例,介绍队列组内任务的资源配额抢占策略。
queue-a
队列中的资源配额不足以运行本队列内Job-a4
任务,但同队列组queue-group-1
中的queue-b
队列有空余资源配额时,Job-a4
任务可以占用该部分资源配额。示意图如下所示。queue-b
队列新接受一个Job-b3
任务,原本queue-b
队列本身的资源配额足以支持Job-b3
任务的调度,但目前资源配额被queue-a
队列中的Job-a4
任务占用。示意图如下所示。queue-b
队列的 任务抢占策略 > 队列组内抢占策略 为 任意抢占,即当前队列自身的资源配额尚未用满的情况下,可以将原本属于自己的资源配额收回(抢占),用于运行自己的任务。因此被queue-a
队列中Job-a4
任务占用的资源配额会被收回。示意图如下所示。queue-b
队列中被收回的资源配额,用于运行Job-b3
任务。queue-a
队列中的Job-a4
任务会按照队列内抢占策略抢占/等待本队列内资源配额,或等待同队列组内其他队列的空余资源配额。