调度策略
场景描述
在华为云的资源管理场景中,用户在配置推理服务时,可能会遇到需要优化调度策略以提高服务性能或资源利用率的情况。例如,当用户希望确保服务的高可用性时,通常会选择高可用调度策略,这要求不同部署副本的Pod尽量均匀分布到不同节点上,以减少单点故障的影响。然而,在实际操作中,用户可能会发现现有的调度策略配置选项不够灵活,无法满足特定的业务需求,如在某些场景下需要更精细地控制调度优先级或应用高性能调度策略来提高资源利用率。面对这一挑战,用户可能会产生疑问:如何在华为云平台上更灵活地配置调度策略,以适应不同的业务场景需求?
ModelArts平台针对专属资源池在线推理服务,提供多种调度策略,通过灵活调整服务实例在集群节点中的分布逻辑,分别满足业务高可靠运行、资源高效利用、定制化部署管控三类核心诉求。
支持的调度策略
推理服务支持各种调度策略协同。
- 高可用调度:同副本 Pod 集中部署,跨副本 Pod 分散部署,减少单节点故障的影响,保障服务高可用。
- 高利用率调度:同副本集中部署,跨副本采用 Binpack 装箱至高负载节点,减少资源碎片。
- 高性能调度:同一部署副本下的多个 Pod 强制调度到相同相同超平面网络下的节点,降低通信延迟,提升推理速度。
- 亲和调度:节点亲和/反亲和
- 单副本资源实例调度:强约束单副本资源实例的 Pod 组调度至同一个网络性能域下。
| 对比维度 | 高可用调度 | 高利用率调度 | 高性能调度 | 亲和调度 | 单副本资源实例调度 |
|---|---|---|---|---|---|
| 核心作用 | 抵御单点故障,保障业务稳定连续运行 | 整合闲置资源,提升整体资源利用率 | 降低通信延迟,提升推理速度 | 自定义部署范围,实现业务专属管控与隔离 | 降低通信延迟,提升推理速度 |
| 适用场景 | 线上核心生产业务、实时高并发推理 | 测试调试、灰度业务、低流量非核心业务 | 多机PD分离,减少Prefill节点和Decode节点之间的数据传输延迟 | 模型预热部署、硬件绑定、业务安全隔离 | 大EP部署,单个P/D实例可能存在多个POD,减少实例内多个POD间的数据传输延迟 |
| 实例分布 | 分散分布至多个不同节点或不同超平面网络下节点 | 集中收拢至部分节点或超平面网络下节点 | 强制集中至同一个超平面网络下节点 | 按自定义规则定点部署 / 定点规避 | 强制集中至同一个超平面网络或同一个机柜下节点 |
| 适配资源池 | 仅专属资源池 | 仅专属资源池 | 仅专属资源池 | 仅专属资源池 | 仅专属资源池 |
| 故障风险 | 风险分散,单节点故障影响极小 | 风险集中,节点故障易批量影响服务 | 风险集中,节点故障易批量影响服务 | 随选定节点状态而定,强规则容错性低 | 风险集中,节点故障易批量影响服务 |
| 资源利用率 | 中等平稳 | 最高最优 | 中等平稳 | 按需可控 | 中等平稳 |
| 核心约束 | 副本数≥2,依赖充足集群节点 | 不可用于核心生产,仅限同规格节点池 | 超节点资源池(节点类型Snt9b23、Snt9E)可选 | 强规则易部署失败,节点勾选数量有限 | 超节点资源池(节点类型Snt9b23、Snt9E)可选 |
| 基础部署前提 | 专属资源池正常运行,副本数量达标 | 无高可用硬性要求,节点规格统一 | 专属资源池正常运行 | 目标节点健康可用,提前完成预热 / 节点划分 | 专属资源池正常运行,单副本资源实例数大于1 |
| 快速配置要点 | 调高调度优先级,配置滚动升级与自愈 | 关闭亲和调度,调低调度优先级 | 关闭亲和调度,调高调度优先级 | 开启调度功能,选定类型与强度,勾选指定节点 | 开启单副本资源实例调度约束,选择约束范围 |
上述的调度策略中,高性能调度、节点亲和和节点反亲和配置为强亲和、单副本资源实例调度约束三种场景属于强约束,调度器必须无条件满足。其余场景均为弱约束,调度器会优先尽力满足。但在节点资源极度紧张或物理资源池规模较大(如节点数超过100)情况下,存在无法完全满足的可能性。
高可用调度策略
概念介绍:
高可用调度是在线推理服务的默认推荐策略,核心目标是避免单点故障、保障服务持续可用。调度策略会根据资源池类型自动适配部署粒度,当选择超节点类型(节点类型Snt9b23、Snt9E)资源池时,系统为超平面网络粒度,同副本 Pod 集中部署至同一超平面网络,跨副本 Pod 分散部署至不同超平面网络;若为其他节点类型资源池时,系统为节点粒度,同副本 Pod 集中部署至同一节点,跨副本 Pod 分散部署至不同节点。从而避免单节点 / 机架故障导致服务整体不可用,同时支持滚动升级时无损切换,保障业务零中断。
配置入口:
登录ModelArts管理控制台,在左侧菜单栏中选择“模型推理>在线推理”,进入在线服务管理页面。部署在线服务时,在“资源配置 > 调度策略 ”中勾选“高可用调度”。在线服务部署具体操作请参见部署在线服务-部署配置。
约束限制:
- “高可用调度”与“高利用率调度”和“高性能调度”只能三选一,默认开启“高可用调度”。
- 当同时开启“高可用调度”和“亲和调度”时,以“亲和调度”设置优先。
高利用率调度
概念介绍:
高利用率调度核心目标是最大化资源利用率、降低部署成本。调度策略会根据资源池类型自动适配部署粒度,当选择超节点类型(节点类型Snt9b23)资源池时,系统为超平面网络粒度,同一部署副本下的多个 Pod 尽量调度到同一超平面网络,不同部署副本的 Pod 使用装箱调度(Binpack)优先将 Pod 调度到资源消耗较多的超平面网络;若为其他节点类型资源池时,系统为节点粒度,使用装箱调度策略(Binpack)优先将Pod调度到资源消耗较多的节点。减少各节点空闲资源碎片,提高集群资源利用率。
适用场景:
适用于非核心测试环境、离线推理过渡场景、资源紧张的边缘部署等对稳定性要求适中、优先控制成本的场景,如模型功能验证、小流量测试、边缘节点轻量级推理等。
配置入口:
登录ModelArts管理控制台,在左侧菜单栏中选择“模型推理>在线推理”,进入在线服务管理页面。部署在线服务时,在“资源配置 > 调度策略 ”中勾选“高利用率调度”。在线服务部署具体操作请参见部署在线服务-部署配置。
约束限制:
- “高可用调度”与“高利用率调度”和“高性能调度”只能三选一,默认开启“高可用调度”。
- 当同时开启“高利用率调度”和“亲和调度”时,以“亲和调度”设置优先。
高性能调度
概念介绍:
高性能调度核心目标是最大化降低通信延迟,提升推理速度。调度策略为同一部署副本下的多个 Pod 强约束调度到同一超平面网络,超节点资源池(节点类型Snt9b23)可选。
适用场景:
适用于多机PD分离场景,减少Prefill节点和Decode节点之间的数据传输延迟。
配置入口:
登录ModelArts管理控制台,在左侧菜单栏中选择“模型推理>在线推理”,进入在线服务管理页面。部署在线服务时,在“资源配置 > 调度策略 ”中勾选“高性能调度”。在线服务部署具体操作请参见部署在线服务-部署配置。
约束限制:
- 节点类型为Snt9b23时,展示高性能调度选项,公共池和专属资源池均支持。
- “高可用调度”与“高性能调度”只能二选一,默认开启“高可用调度”。
- 当同时开启“高性能调度”和“亲和调度”时,“亲和调度”中节点亲和和节点反亲和配置为强亲和时两者都生效,节点亲和和节点反亲和配置为弱亲和时“高性能调度”设置优先。
亲和调度
概念介绍:
亲和调度是精细化自定义调度策略,支持通过节点亲和 / 反亲和规则,精准控制服务副本部署的节点范围,适配特殊部署约束场景。通过配置节点亲和类型和强度,可实现资源池灵活的工作负载调度。若不指定,将根据集群默认调度策略随机调度。
配置入口:
登录ModelArts管理控制台,在左侧菜单栏中选择“模型推理>在线推理”,进入在线服务管理页面。部署在线服务时,在“单元配置 > 更多配置 ”中勾选“亲和调度”,在右侧弹窗中配置具体的亲和调度策略。在线服务部署具体操作请参见部署在线服务-部署配置。
| 亲和类型 | 强度 | 适用场景 |
|---|---|---|
| 节点亲和 | 弱亲和 | 优先部署到指定节点,节点资源不足时可调度至其他节点,平衡缓存复用与资源灵活性。 |
| 强亲和 | 强制部署到指定节点,适用于已预热模型专属节点、挂载本地硬件加密卡节点、绑定特定外设(如摄像头、传感器)的边缘节点,确保模型缓存复用、硬件资源独占。 | |
| 节点反亲和 | 弱亲和 | 尽量不部署到指定节点,无其他节点时可妥协部署,兼顾隔离需求与资源可用性。 |
| 强亲和 | 禁止部署到指定节点,适用于避免与高负载服务同节点、规避故障频发节点、隔离敏感业务与非敏感业务。 |
在“添加节点”列表中勾选实现以上配置规则的节点。当选择超节点类型(节点类型Snt9b23、Snt9E)资源池时,节点列表将以树形结构展示。如果节点类型为Snt9b23,层级分别为超节点实例 | 节点;如果节点类型为Snt9E,层级分别为超节点实例 | 机柜 | 节点。
亲和调度策略中,默认单个账号(不是IAM子用户)最多可以添加20个节点。如果要扩大创建数量,需要提工单申请。
用户在选择了已预热模型后,在配置亲和调度页面会展示已经预热成功的节点,未预热的节点不展示,并且页面会提示“当前选择的模型已预热,将自动部署至最优节点,若手动指定节点可能导致预热加速失效”。
单副本资源实例调度约束
概念介绍:
单副本资源实例调度约束,强约束单元副本资源实例的 Pod 组调度至同一个网络性能域下,约束范围可选“超平面网络”和“机柜”。超节点资源池下选择单元类型实例规格为Snt9b2、Snt9E时可设置。
- 超平面网络:强约束单元副本资源实例的 Pod 组调度至同一个超平面网络下。在物理资源池详情页面,单击节点页签可以查看超平面网络信息列。在亲和调度弹窗页面,也可以查看超平面网络信息列。单元类型实例规格为Snt9b2、Snt9e时可选。
- 机柜:强约束单元副本资源实例的 Pod 组调度至同一个机柜性下,相比超平面网络网络通信效率更高。在亲和调度弹窗页面,节点列表以超节点实例 | 机柜 | 节点三层树形结构展示。单元类型实例规格为Snt9e时可选。
适用场景:
适用于大EP部署场景,单个P/D实例可能存在多个POD,减少实例内多个POD间的数据传输延迟。
配置入口:
登录ModelArts管理控制台,在左侧菜单栏中选择“模型推理>在线推理”,进入在线服务管理页面。部署在线服务时,在“单元配置”中调整单副本资源实例数大于1,勾选“单副本资源实例调度约束”,然后可以选择约束范围。在线服务部署具体操作请参见部署在线服务-部署配置。
约束限制:
- 勾选“单副本资源实例调度约束”后,“超平面网络”与“机柜”只能二选一,默认不开启“单副本资源实例调度约束”。
- “高可用调度”、“高利用调度”、“高性能调度”是部署维度,针对的是部署下所有实例;“亲和调度”是单元维度,针对单个单元所有实例,“单副本资源实例调度约束”是单元副本维度,针对单个单元副本的所有资源实例。