队列子用户资源配额管理
概述
在全托管资源池中,队列(Queue)级别的资源隔离已经能够保证不同业务团队之间的资源边界,但在同一队列内部,不同子用户之间仍可能出现"一人占满全队列"的资源争夺问题。
子用户资源配额管理功能允许队列管理员在队列维度下,为指定的子用户或用户组设置资源使用上限(加速芯片卡数、CPU 核数、内存容量),从而实现队列内部的精细化资源治理:
- 防止单个用户突发任务占满整个队列资源;
- 保障队列内多业务、多用户的公平共享;
- 在保留队列总体弹性的同时,控制每位成员的资源天花板。
核心概念
在使用本功能前,建议先了解以下名词:
| 名词 | 含义 |
|---|---|
| 队列加速芯片总量 | 队列中所有节点的加速芯片总数 |
| 队列最大可用量 | 队列中所有可用节点(排除故障节点、封锁节点)的加速芯片总数 |
| 队列分配量 | 队列中所有负载(开发机、分布式训练、在线服务)已分配的资源总和 |
| 队列空闲量 | 队列中所有可用节点(排除故障、封锁节点)的空闲芯片总数 |
| 子用户资源配额 | 在特定队列中,分配给该子用户的资源使用硬性上限,包含加速芯片、CPU 核数、内存容量。达到上限后,无法调度新任务 |
| 子用户资源已用量 | 该子用户在当前队列中正在运行的所有任务(开发机、训练、在线服务等)实际占用的资源总和,随任务启停实时变化 |
| 子用户剩余配额 | 子用户剩余配额 = 子用户资源配额 − 子用户资源已用量;为 0 时表示该用户在该队列的额度已耗尽,此时哪怕队列有剩余资源,该用户的任务也无法调度。 |
适用范围与权限说明
-
支持的工作负载范围:
- 子用户配额对该队列中提交的开发机、分布式训练、在线服务部署(推理)的工作负载总和生效,不区分负载类型
-
前置条件
- 队列中必须存在加速卡资源。若队列没有 GPU/XPU 资源,开启功能时会提示:该队列没有加速卡资源,不支持开启该配置。
- 调度器组件需达到所需版本。版本不满足时会提示:当前调度器组件版本暂不支持此功能,请联系百舸技术人员升级后再试。
- 权限说明
| 角色 | 权限 |
|---|---|
| 队列管理员及以上 | 可配置、编辑、删除子用户资源配额 |
| 队列开发人员 | 仅可查看 |
配置子用户资源配额
-
配置入口
- 队列详情 → 队列配置 → 资源使用额度配置。
- 该开关默认关闭。关闭状态下,队列内所有用户默认共享队列的全部资源。
- 开启功能,新增配额规则,点击 + 新增配置,依次填写以下字段:
| 字段 | 必填 | 说明 |
|---|---|---|
| 生效范围类型 | 是 | 单选:用户 / 用户组(默认:用户)。 |
| 生效范围 | 是 | 选择"用户"时,从本队列已添加的用户中多选;选择"用户组"时,从本队列已添加的用户组中多选 |
| 最高可用加速芯片卡数 | 是 | 正整数,不能超过队列总卡数 |
| 最高可用 CPU 核数 | 否 | 正整数,不能超过队列总 CPU 核数。不填则不限制 |
| 最高可用内存数 | 否 | 正整数,不能超过队列总内存数。不填则不限制 |

-
支持编辑规则
- 在规则列表中点击编辑按钮,对应的三个字段进入编辑态,修改后保存。保存时校验"是否完全重复"以及"最高可使用加速芯片卡数"是否合法。
- 支持删除规则
- 支持关闭
配额生效逻辑
-
用户组配额按"每个成员独立生效"
- 为用户组设置的配额,表示组内每个用户均按该规格独立生效,而非整组共用。例如:为某用户组配置"最高 100 卡",则组内每位用户的上限均为 100 卡,而不是全组合计 100 卡。
-
同一用户存在多条配额时:取"最小交集",以 GPU 为准
- 由于一个用户可能同时被列入"用户配置"和某个"用户组配置",其最终生效配额按以下规则确定:以 GPU 配额最小的那条规则为准,整条规则(含 GPU/CPU/内存)整体生效。
示例 1:
- 用户 A 单独配置:30 卡
- 用户 A 所在用户组配置:100 卡
- → 用户 A 实际上限:30 卡
示例 2:
- 用户 A 单独配置:30 卡 / 60 核 / 100 GB
- 用户 A 所在用户组配置:40 卡 / 50 核 / 60 GB
- → 比较 GPU,30 卡更小,整条规则生效:30 卡 / 60 核 / 100 GB(不是 30 卡 / 50 核 / 60 GB)
-
配额校验范围:配额限制的是该用户在本队列中所有非终止态任务(启动中 + 运行中)的资源占用总和:
- 不是"单任务不超过配额",而是"该用户全部运行任务的总和不超过配额";
- 设置规则前已经在跑的任务不会被强制杀掉;
- 新任务提交时若
已用 + 本次申请 > 配额,则任务进入排队(即使队列还有更多空闲资源,也不会被调度); 已用 + 本次申请 ≤ 配额→ 正常调度。
-
双层封顶示例:假设一个队列:GPU 100 卡,10 个用户每人配置 20 卡:
-
所有用户配额合计 200 卡,远超队列物理总量,但通过双层约束治理:
- 单用户封顶:任何人最多 20 卡,不会被单人占满;
- 队列全局封顶:所有人合计不超过 100 卡;
- 多人同时满配时,超出队列余量的任务进入排队。
-
-
队列资源变动的影响:队列资源视图本身不受配额影响。需注意的边界情况:
- 队列初始 100 卡,某子用户配额为 90 卡;
- 当队列因故障、封锁、节点移出/转让导致最大可用量下降,甚至低于 90 卡时,子用户配额可能大于队列最大可用量;
- 此时该用户的实际可调度资源以队列空闲量为准。
提交工作负载时的诊断与拦截
-
事前诊断 · 资源概览:在创建负载页面,如果当前用户在该队列已配置个人配额,会展示个人资源概览:
- 个人空闲量 / 个人可用资源配额
- 若管理员只配置了 GPU,未配置 CPU、内存,则个人 CPU、内存配额位置展示为
-
-
事前诊断 · 校验项:当事前诊断命中下述拦截规则时,用户在点击提交时会再次弹出拦截确认框,提示用户调整配置或确认排队后提交。
- 单实例规格 vs. 节点最大可用量
单实例的资源申请量超过节点规格的最大可用量,**无法调度**,请修改配置 GPU 最大可用量:1 卡 当前申请:2 卡 超出资源量:1 卡 CPU 最大可用量:12 核 当前申请:20 核 超出资源量:8 核 内存最大可用量:106 GB 当前申请:200 GB 超出资源量:94 GB
1* 申请总量 vs. 子用户配额上限
该子用户在本队列配置的可用资源上限超过资源申请,**无法调度**,请修改配置 个人 GPU 配额:1 卡 当前申请:2 卡 超出资源量:1 卡 个人 CPU 配额:12 核 当前申请:20 核 超出资源量:8 核 个人内存配额:106 GB 当前申请:200 GB 超出资源量:94 GB
1* 申请总量 vs. 队列最大可用量
资源申请量超过当前队列资源的最大可用量,**无法调度**,请修改配置 (展示 GPU/CPU/内存 各维度的最大可用量、当前申请、超出资源量)
-
事前诊断 · 空闲资源判断:不满足时,在创建页面提示需要排队:
- 个人空闲配额是否满足(新增)
当前用户在本队列的可用空闲资源无法满足资源申请,请检查配置或者等待排队 个人 GPU 空闲:1 卡 当前申请:2 卡 超出资源量:1 卡 个人 CPU 空闲:12 核 当前申请:20 核 超出资源量:8 核 个人内存空闲:106 GB 当前申请:200 GB 超出资源量:94 GB
- 队列空闲资源总量
当前队列中空闲资源无法满足资源申请,请检查配置或者等待排队 (展示满足规格的节点数、可调度实例数等)
- 队列空闲资源碎片分布
在节点维度比对 GPU/CPU/内存可用量、CDS 可挂载数、PFS L2 服务挂载情况,给出可调度实例数与缺口。

典型场景与最佳实践
-
场景一:保障多团队公平使用 100 卡队列
- 队列:GPU 100 卡 / CPU 800 核 / 内存 6144 GB;
- 10 名工程师,每人配额 GPU 20 卡;
- 效果:单人最多 20 卡,整队列累计不超过 100 卡,超出部分自动排队,避免单人独占。
-
场景二:用户组批量授权 + 个别用户特殊额度
- 为用户组"算法组"统一配置 50 卡;
- 为用户组中的负责人 A 单独配置 80 卡;
- 由于"取最小交集,以 GPU 为准",A 实际生效配额为 50 卡(用户组配置更小);
- 若需要 A 享受更高额度,应将用户组配置调高,或将 A 移出用户组。
-
场景三:仅约束 GPU,不约束 CPU/内存
- 配额配置:GPU 30 卡,CPU 与内存留空;
- 用户在该队列的 CPU/内存上限由资源规格模板约束,不再单独限制;
- 在事前诊断的"个人资源概览"中,个人 CPU/内存配额展示为
-。
-
场景四:队列资源缩水后的配额行为
- 初始队列 100 卡,用户 A 配额 90 卡;
- 因部分节点故障,队列最大可用量降至 70 卡;
- 用户 A 的配额仍为 90 卡,但实际可调度量受队列空闲量限制;
- 建议管理员定期复核配额与队列实际容量的匹配关系。
常见问题(FAQ)
Q1:开启功能后,队列里之前已经在跑的任务会被杀掉吗? 不会。配额仅作用于新任务的调度,已在运行的任务不会被强制中断。
Q2:用户组配额是组内共享,还是每人独立? 每人独立。组内每位用户都按该规格各自享有上限。
Q3:用户既被单独配置,又属于某个用户组,最终听谁的? 取最小交集,以 GPU 为准:选 GPU 配额最小的那条规则整体生效,而不是逐字段取最小。
Q4:配额加起来超过了队列总量,可以保存吗? 可以。系统支持超配(合计超过队列总量),通过"单人封顶 + 队列全局封顶"的双层约束治理资源争抢。
Q5:关闭"资源使用额度配置"开关后,规则会消失吗? 不会消失,仅是停用。再次开启时已有规则会重新生效。
Q6:达到配额后再提交任务会发生什么? 任务进入排队,即便队列还有更多空闲资源也不会被调度,直到该用户已用资源回落、低于配额为止。
Q7:开发机被多人共享,校验谁的配额? 开发机的所有者。即便其他成员有公开管理权进行更配,校验仍以所有者的个人配额为准。建议仅由所有者执行更配操作。
Q8:开启功能时提示"调度器组件版本暂不支持此功能"怎么办? 联系百舸技术支持升级调度器组件后重试。
评价此篇文章
