资源模型

混部是一套资源调度解决方案,用于对延迟敏感的工作负载与大数据计算工作负载进行精细化编排。它需要解决两个主要问题:

  1. 如何为延迟敏感的工作负载调度资源,以满足性能和长尾延迟的要求。这里涉及到的关键点是资源调度策略和 QoS 感知策略。
  2. 如何调度和编排大数据计算工作负载,以较低的成本满足任务对计算资源的需求。这里涉及到的关键是如何在极端异常情况下实现合理的资源超额配置和 QoS 保障。

定义

Resource Model

上图是 Koordinator 的混部资源模型,其基本思想是利用那些已分配但未使用的资源来运行低优先级的 pod。如图所示,有四条线:

  1. limit:灰色,高优先级 Pod 所请求的资源量,对应于 Kubernetes 的 Pod 请求。
  2. usage:红色,Pod 实际使用的资源量,横轴为时间线,红线为 Pod 负载随时间变化的波动曲线。
  3. short-term reservation:深蓝色,这是基于过去(较短)时期内的资源使用量,对未来一段时间内其资源使用量的估计。预留和限制的区别在于,分配的未使用(未来不会使用的资源)可以用来运行短期执行的批处理 Pod。
  4. long-term reservation:浅蓝色,与 short-term reservation 类似,但估计的历史使用期更长。从保留到限制的资源可以用于生命周期较长的Pod,与短期的预测值相比,可用的资源较少,但更稳定。

整个混部资源调度是基于上图所示的资源模型构建的,不仅可以满足各种工作负载的资源需求,还可以充分利用集群的闲置资源。

SLO描述

在集群中运行的 Pod 资源 SLO 由两个概念组成,即优先级和 QoS。

  • 优先级,即资源的优先级,代表了请求资源被调度的优先级。通常情况下,优先级会影响 Pod 在调度器待定队列中的相对位置。

  • QoS,代表 Pod 运行时的服务质量。如cgroups cpu share、cfs 配额、LLC、内存、OOM 优先级等等。

需要注意的是,Priority 和 QoS 是两个维度的概念,但在实际业务场景中,两者之间会有一些约束(不是所有的组合都是合法的)。

下一步是什么

以下是推荐下一步阅读的内容:

  • 学习 Koordinator 的优先级
  • 学习 Koordinator 的QoS