调度概述
CCE支持多种资源与任务调度策略,有助于提升应用性能和集群整体资源利用率。本文将重点介绍CPU资源调度、GPU/NPU异构资源调度以及Volcano调度的主要功能。
CPU调度
CCE提供CPU管理策略,可为应用分配完整的物理CPU核,从而提升性能并降低调度延迟。
功能 |
描述 |
参考文档 |
---|---|---|
CPU管理策略 |
当节点上运行大量CPU密集型Pod时,工作负载可能会在不同的CPU核之间迁移。对于CPU敏感型应用,可通过Kubernetes提供的CPU管理策略为其分配独占物理核,从而提升性能并降低调度延迟。 |
|
增强型CPU管理策略 |
在传统的CPU管理策略基础上,该策略新增Burstable Pod(要求CPU的Request和Limit值都是正整数)的智能调度能力,允许这类Pod优先使用特定CPU,而非完全独占。 |
GPU调度
CCE为集群中的GPU异构资源提供调度能力,从而实现资源的精细化分配与高效利用,满足不同类型工作负载对GPU算力的差异化需求,提升整体集群的调度效率与业务运行性能。
功能 |
描述 |
参考文档 |
---|---|---|
Kubernetes默认GPU调度 |
该调度模式可以指定Pod申请的GPU显卡数量,支持申请设置为小于1的数量,实现多个Pod共享使用GPU。 |
|
GPU虚拟化 |
GPU虚拟化能够动态对GPU设备显存与算力进行划分,单个GPU卡最多虚拟化成20个GPU虚拟设备。相对于静态分配来说,虚拟化的方案更加灵活,最大程度保证业务稳定的前提下,可以完全由用户自己定义使用的GPU量,提高GPU利用率。 |
|
GPU监控 |
GPU指标可分为CCE提供的GPU监控指标和DCGM提供的GPU监控指标。通过Prometheus和Grafana,可以实现这些GPU指标的全面监测,从而优化计算性能,快速定位故障,合理调度资源,进而提升GPU利用率并降低运维成本。 |
|
GPU弹性伸缩 |
CCE支持通过GPU指标配置工作负载和节点弹性伸缩策略,从而实现资源的动态调度与优化,提高计算效率,保障业务稳定运行,并有效降低运维成本。 |
|
GPU故障处理 |
当GPU资源出现故障时,CCE集群会及时上报事件,并根据事件信息提供单GPU故障隔离功能,确保其他正常GPU继续提供服务,最大限度降低业务影响。 |
NPU调度
CCE为集群中的NPU异构资源提供调度能力,从而实现对推理和图像识别等工作的高效处理。
功能 |
描述 |
参考文档 |
---|---|---|
NPU芯级独占调度 |
该调度模式可以根据Pod申请的NPU数量,为工作负载提供NPU资源。 |
|
NPU拓扑感知调度 |
该调度模式指结合昇腾AI处理器和节点间的拓扑结构灵活匹配调度策略,其能够有效减少计算资源碎片和网络拥塞,最大化提升NPU算力利用率。 |
|
NPU虚拟化 |
NPU虚拟化指将通过资源虚拟化的方式将物理机中配置的NPU(昇腾AI产品)切分为多个虚拟NPU(vNPU),并挂载至容器中使用,以实现对硬件资源的灵活切分与动态管理。 |
|
NPU监控 |
当集群中包含NPU节点时,监控NPU指标可以帮助用户识别性能瓶颈、优化资源利用率、快速定位异常,从而提升系统的整体稳定性和效率。在CCE Standard和Turbo集群中,您可以使用npu-exporter组件将dcmi/hccn tool采集的NPU指标数据上传至云原生监控系统,实现NPU资源的实时监控与告警,从而提升系统的可靠性和性能。 |
Volcano调度
Volcano是一个基于Kubernetes的批处理平台,提供了机器学习、深度学习、生物信息学、基因组学及其他大数据应用所需要而Kubernetes当前缺失的一系列特性,提供了高性能任务调度引擎、高性能异构芯片管理、高性能任务运行管理等通用计算能力。
功能 |
描述 |
参考文档 |
---|---|---|
使用Volcano调度工作负载 |
一般情况下,Kubernetes在调度工作负载时会使用自带的默认调度器,若需要使用Volcano调度器的能力,您可以为工作负载指定调度器。 |
|
资源利用率优化调度 |
针对计算资源进行优化的调度策略,可以有效减少各节点资源碎片,最大化地提高计算资源的利用率。 |
|
业务优先级保障调度 |
根据业务的重要性和优先级,设置自定义的策略对业务占用的资源进行调度,确保关键业务的资源优先级得到保障。 |
|
AI任务性能增强调度 |
根据AI任务的工作性质、资源的使用情况,设置对应的调度策略,可以增强集群业务的吞吐量,提高业务运行性能。 |
|
任务队列调度 |
通过队列资源管理机制,动态分配集群资源,确保高优先级任务优先执行,同时优化资源利用率和作业吞吐量。 |
|
NUMA亲和性调度 |
Volcano可解决调度程序NUMA拓扑感知的限制,实现以下目标:
|
|
应用扩缩容优先级策略 |
通过应用扩缩容优先级策略,可以精确控制Pod在不同类型节点上的扩容与缩容顺序,从而实现资源管理的最优化。 |
云原生混部
云原生混部解决方案围绕Volcano和Kubernetes生态,帮助用户提升资源利用率,实现降本增效。
功能 |
描述 |
参考文档 |
---|---|---|
动态资源超卖 |
根据在线作业和离线作业类型,通过Volcano调度将集群中申请而未使用的资源(即申请量与使用量的差值)利用起来,实现资源超卖和混合部署,提升集群资源利用率。 |
|
基于Pod实例画像的资源超卖 |
提供一种超卖算法,能够持续采集节点上Pod的CPU和内存利用率,统计资源使用的概率分布,并在一定置信度下评估节点资源占用。算法综合考虑资源使用的整体水平及波动,能够计算出稳定的超卖量,从而减少资源竞争,避免业务波动引起的Pod频繁驱逐。 相比直接基于节点实时CPU和内存利用率的算法,该算法能有效减少超卖量波动,提升对突发资源尖峰的覆盖能力,从而在保障业务性能相对稳定的同时实现资源超卖。 |
|
CPU Burst弹性限流 |
提供一种可以短暂突破CPU Limit值的弹性限流机制,以降低业务长尾响应时间,可以有效提升时延敏感型业务的服务质量。 |
|
出口网络带宽保障 |
平衡在线业务与离线业务对出口网络带宽的使用,保证在线业务有足够的网络带宽。 |
云容器的编排与调度