调度器
概述
调度器的主要职责是计算模型实例所需的资源,并通过一系列策略评估和选择最优的工作节点/GPU来运行模型实例。这确保了模型实例能够高效运行。本文档详细介绍了调度器所使用的策略和流程。
调度流程
筛选阶段
筛选阶段旨在将可用的工作节点或GPU缩小到符合特定条件的范围。涉及的主要策略包括:
- 标签匹配策略
- 状态策略
- 资源适配策略
标签匹配策略
该策略根据模型配置的标签选择器筛选工作节点。如果模型未定义任何标签选择器,则所有工作节点都会被纳入考量。否则,系统会检查每个工作节点的标签是否与模型的标签选择器匹配,仅保留符合条件的工作节点。
状态策略
该策略根据工作节点状态进行筛选,仅保留处于就绪(READY)状态的节点。
资源适配策略
资源适配策略是调度系统中的关键策略,用于根据资源兼容性筛选工作节点或GPU。该策略的目标是确保模型实例能在所选节点上运行而不超出资源限制。资源适配策略按以下顺序优先考虑候选节点:
- 单工作节点,单GPU完全卸载:识别出单个工作节点上的单个GPU可以完全卸载模型的候选方案,这通常能提供最佳性能。
- 单工作节点多GPU全卸载:识别单个工作节点上多个GPU可以完全卸载模型的候选方案。
- 单工作节点部分卸载:识别单个工作节点上能够处理部分卸载的候选对象,仅在允许部分卸载时使用。
- 跨多工作节点的分布式推理:识别候选方案,其中跨多个工作节点的GPU组合可以处理全部或部分卸载,仅在允许跨节点分布式推理时使用。
- 单工作节点,CPU:当没有可用的GPU时,系统将使用CPU进行推理,识别单个工作节点上内存资源充足的候选对象。
评分阶段
评分阶段对筛选后的候选方案进行评估,通过打分选择最优的部署位置。主要采用的策略包括:
- 放置策略策略
放置策略策略
- 装箱
该策略旨在将尽可能多的模型实例"打包"到最少数量的"容器"(如Worker/GPU)中,以优化资源利用率。目标是在最大化资源效率的同时最小化使用的容器数量,确保每个容器在不超出其容量的情况下尽可能高效地填满。模型实例会被放置在剩余空间最少的容器中,以最小化每个容器的闲置容量。
- 扩散
该策略旨在尽可能均匀地将多个模型实例分布到不同的工作节点上,从而提高系统的容错性和负载均衡能力。