Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion docs/KeyFeatures/HierarchicalQueue.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,4 +134,9 @@ spec:

When cluster resources are insufficient for pod requirement, pod's resources can be reclaimed. For pods in different queues, they will first reclaim pods in sibling queues (if the allocated resources of the sibling queue exceed the `deserved` value). If the resources in sibling queues are still insufficient to meet the pod's requirements, the hierarchical structure of the queues (i.e., ancestor queues) will be traversed upward to find sufficient resources. For example, if job-a and job-c are submitted first and the cluster resources are insufficient for job-b, job-b will first reclaim job-a. If reclaiming job-a does not meet the resource requirements, job-c will then be considered for reclaiming.

Note that in the current version, users can only submit jobs to **leaf queues**. If tasks have already been submitted to a parent queue, child queues cannot be created under that queue. This ensures effective management of resources and tasks across different levels in the queue hierarchy. Additionally, the sum of the `deserved`/`guarantee` values of child queues cannot exceed the `deserved`/`guarantee` values configured for the parent queue. Each child queue's `capability` values cannot exceed the `capability` limits of the parent queue. If a queue does not specify the `capability` value for a certain resource dimension, it will inherit the `capability` from its parent queue. If the parent queue and all ancestor queues do not specify it, the value will finally inherit from the root queue. By default, the root queue's `capability` is set to the total available resources of that dimension in the cluster.
Note that in the current version, users can only submit jobs to **leaf queues**. If tasks have already been submitted to a parent queue, child queues cannot be created under that queue. This ensures effective management of resources and tasks across different levels in the queue hierarchy.

A queue's resource fields are also constrained by the queue hierarchy, and `deserved`/`guarantee` behave differently from `capability`:

- `deserved` (entitled resources) and `guarantee` (reserved resources) act as lower bounds and default to 0 when unset. The sum of the child queues' `deserved`/`guarantee` cannot exceed the parent's, and because an unset value is 0, a child cannot set `deserved`/`guarantee` for a resource dimension that its parent has not set.
- `capability` (the resource ceiling) acts as an upper bound. A child queue's `capability` cannot exceed its parent's. When a queue does not set `capability` for a resource dimension, it inherits the parent's; if the parent and all ancestors leave it unset, it inherits from the root queue, whose `capability` defaults to the total available resources of that dimension in the cluster.
Comment thread
aeron-gh marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -134,4 +134,9 @@ spec:

当集群资源不足以满足 Pod 需求时,可以回收 Pod 的资源。对于不同队列中的 Pod,它们将首先回收兄弟队列中的 Pod(如果兄弟队列的已分配资源超过 `deserved` 值)。如果兄弟队列中的资源仍然不足以满足 Pod 的需求,则会向上遍历队列的层级结构(即祖先队列)以寻找足够的资源。例如,如果 job-a 和 job-c 先提交,而集群资源不足以运行 job-b,则 job-b 将首先回收 job-a。如果回收 job-a 不能满足资源要求,则随后将考虑回收 job-c。

请注意,在当前版本中,用户只能向 **叶子队列** 提交作业。如果任务已提交给父队列,则无法在该队列下创建子队列。这确保了对队列层级结构中不同级别的资源和任务进行有效管理。此外,子队列的 `deserved`/`guarantee` 值之和不能超过为父队列配置的 `deserved`/`guarantee` 值。每个子队列的 `capability` 值不能超过父队列的 `capability` 限制。如果队列未指定某个资源维度的 `capability` 值,它将继承其父队列的 `capability`。如果父队列和所有祖先队列都未指定,则该值最终将继承自 root 队列。默认情况下,root 队列的 `capability` 设置为集群中该维度的总可用资源。
请注意,在当前版本中,用户只能向 **叶子队列** 提交作业。如果任务已提交给父队列,则无法在该队列下创建子队列。这确保了对队列层级结构中不同级别的资源和任务进行有效管理。

队列的资源字段同样受队列层级结构的约束,并且 `deserved`/`guarantee` 与 `capability` 的行为并不相同:

- `deserved`(资源应得量)和 `guarantee`(预留资源)是下界,未设置时默认为 0。子队列的 `deserved`/`guarantee` 值之和不能超过为父队列配置的 `deserved`/`guarantee` 值;由于未设置的值即为 0,如果父队列未设置某个资源维度的 `deserved`/`guarantee`,则其子队列也不能设置该维度的值。
- `capability`(资源能力限制)是上界。每个子队列的 `capability` 值不能超过父队列的 `capability` 限制。如果队列未指定某个资源维度的 `capability` 值,它将继承其父队列的 `capability`;如果父队列和所有祖先队列都未指定,则该值最终将继承自 root 队列。默认情况下,root 队列的 `capability` 设置为集群中该维度的总可用资源。