DCDC2018–混合部署场景下RDT的应用

5月中旬,我参加了在加利福尼亚圣克拉拉万豪举办的Intel Data Center Design Conference 2018(DCDC’18)这个主要针对与数据中心设计的会议。期间我做了关于Intel RDT技术在数据中心业务质量(QoS)保障为主题的presentation。尽管在本月还有台北、上海、北京三场普通话的同主题演讲,这里还是分享下整个英文版本演讲的主要内容。

背景

随着这些年越来越多的CSP将自己的云计算集群从大规模逐渐升级到了hyper的级别,越来越多的挑战正在等待着他们。比较常见的问题比如:各个时代的硬件混合部署导致的软硬件之间的兼容性、亲和性的不一致;各种业务混合并行导致的权限控制、资源调度的复杂化;节点管理和故障隔离等。为了解决这些可能碰到的问题,有个概念叫做DCOS,旨在将整个DC的所有资源管理、故障诊断、任务调度、自动部署等痛点通过统一的接口封装成一个类似与传统OS的界面。比如: K8S, Mesos都算是某种DCOS概念的产品级实现。

DCOS带来的一个好处就是用户可以很容易地实现混合软件部署——或者说混合业务并行。传统DC中对于不同的业务往往会分布于不同的集群中,至少也是同一集群的不同时段来进行。混合部署则要求同一集群中,同时运行,多个不同业务。这样可以很大程度上提升整个系统的资源使用率,让硬件上花的每一分钱都物尽其用。

然而事实上,当系统的整体利用率上升时,单一业务的服务质量特别是对于响应延时敏感型的服务质量将会大幅下降。而正是这种服务质量的下降导致了CSP不敢过多的提升利用率,而很多包括知名CSP在内的系统整体利用率不足20%。

省略数据部分的展示,下同。

Intel RDT介绍

QoS的下降很大程度上是由于资源争抢。我们知道通过Linux的cgroup技术可以实现大颗粒度的CPU,内存,IO级别的隔离。但是由于IA架构的设置,不同于L1,L2cache的每个物理核心独享,L3cache和memory bandwidth是在每个socket内的所有核心之间共享的。而这种共享如果不加任何控制,势必会造成资源的争抢以及性能的下降。

Intel RDT就是基于这种背景产生的技术。4个组件CAT/CMT/MBA/MBM分别对应了L3 cache和内存带宽的控制(Allocation)和监控(Monitoring)。当然此范畴下还有个CDP ,可以看作是CAT增强了安全性。之后Intel还会不断的把其他组件加入到此范畴内。

具体介绍可参考这里,不做累述。

静态和动态

大多数人会将CAT/MBA当成某种静态配额来使用。不过,如果简单粗暴的将CAT设定为高低优先级来保证QoS的话,我们会碰到几个问题:

  1. 产品环境中变化多端,没有人能够准确的预估出CAT/MBA大小和具体QoS指标的直接对应关系。用户需要大量的测量工作。
  2. 静态配额需要弹性,而弹性往往会带来浪费,这对于磁盘这种低成本的资源来说本不是问题,但L3,MBW这类的细粒度资源则来说这是不可接受的。

针对这个问题我们做了很多调研,比如汽车的定速巡航,车速是用户和汽车之间唯一的SLA,而市面上不会有针对燃油、转速设定的定速巡航。考虑到通用性,原型中我们将IPC(instruction per second)作为输入指标,PID算法调控CAT/MBA,在负责的混布环境中获得了稳定的QoS。IPC带来的优势还有对于很多业务的实际QoS指标都可以换算成某种IPC关联。

此外PID算法的优势还在于任何一种资源调度手段都可以通过不同的参配达到动态调整的目的。而IA平台上可供使用的调整手段并不在少数。唯一的要求只在于调度手段和QoS指标之间存在相关——正负相关都可以。

通过PID算法的控制用户可以通过设定不同QoS目标值来实现优先级调整甚至最大性能上限等功能。

另一方面,由于PID算法本身并不能解决多目标调整的问题。比如在RDT技术中,PID可以单独的控制CAT或者MBA,但无法通过一个简单的PID控制器实现自动选择CAT或者MBA作为首要的调控手段。这将会使PID控制器只能工作在部分受限条件中,如果需要更为复杂的,多目标,多路径的调控,可以采用更为复杂的算法实现。

推荐阅读:
似乎每次开头都要讲述一下计算机
长久以来,我们对计算机资源的理
在虚拟机的日常使用和开发中,我

发表评论

电子邮件地址不会被公开。 必填项已用*标注

请补全下列算式: *

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据