基于Intel RDT平台技术的系统资源隔离能力提升|龙蜥大讲堂103期
内容介绍:
一、NRI与Koordinator
二、RDT与Koordinator
三、RDT技术发展
本次分享的主题是在Koordinator项目NRI模式中基于Intel RDT平台技术的系统资源隔离能力提升。
本次课程将围绕三个方面展开。
第一部分NRI与Koordinator,第二部分,RDT与Koordinator。第三部分RDT技术发展。
一、NRI与Koordinator
首先是NRI与Koordinator。
NRI(Node Resource Interface)是一个通用的容器扩展框架,在Containerd1.7版本和CRI-O1.26版本之后可以启用该特性。通过NRI框架可以进行更加灵活的一些资源的管理,可以对一些Hook进行injection,可以对容器的创建请求和修改请求添加日志或者debug,然后也可以进行一些安全的检查。目前NRI一套框架已经有一些实验性质的功能。
在这些repo中已经有一些NRI比较成熟的Plugins,比如说Topology-Aware,Balloons,memory-QoS,memtired,SGX-EPC这样的插件,可以通过这些NRI插件对于节点侧的资源进行一些更大的加强。可以通过HELM进行一键的安装试用。本身NRI有一些example,开发者也可以通过一些自定义的NRI Plugins进行一些加强。
这个是NRI在Koordinator中的落地回顾,在今年5月,Koordinator社区提出使用NRI小框架来解决Runtime Proxy和standalone的局限性问题,主要就是想去掉需要添加的一个Runtime Proxy插件。在6月,Intel的同学跟阿里connect社区的同学一起合作,提出一个设计proposal,在7月进行了代码的开发与合并,在8月发布的Koordinator1.3版本。在9月份的KubeCon China中也有相关的演讲。
二、RDT与Koordinator
下一部分是RDT与Koordinator
Koordinator本身是专注于混合布署的一套框架,对于在线应用和离线应用进行混布时,他进行一些调度测还有探测的分析。提高集群内部单节点的资源利用率。Intel RDT技术可以把CPU上的cash和内存带宽等资源进行一些监控和资源的分配。目前Intel RDT技术在Koordinator项目中已经有一些简单的应用.可以通过在ConfigMap中进行一些简单的设置,进行限制beClass这种低优先级的workload,限制它们使用的cash和内存带宽,防止对于高优先级的应用造成影响。
对于降本增效这些要求下,有一些新的挑战出现,比如有一些应用workload对于延迟会更加的敏感,这要求它们对于RDT的资源进行更好的分配,同时对于之前介绍过的一刀切式的RDT资源的设置,会造成cash资源或者内存带宽资源的一些浪费,因为静态的资源并不符合我们在系统中动态的一些应用,所以现在就会提出一些新的需求,像request与limit模型进行一些动态的设置,同时根据RDT的一些监控测的能力来去探测noisy neighbor,探测出这些在于单机节点中大量的耗费了Cash和内存带宽的一些应用,对他们进行限制,来防止对在线的高优先级的workload产生performance的下降。
三、RDT的技术发展
下一部分是RDT的技术发展
RDT技术是一个持续开发了很多年的一个技术,在第一代之前就有一些简单的应用,在第一代一开始有CMT,MAM,然后还有最简单的初步的内存带宽分配技术(第一代的MBA技术),但是第一代的技术相对于不那么完善,他们只能对于物理call上进行一些内存带宽的静态的限制。在第二代处理器中添加了对L3 CAT的一些分配能力,基于之前的L3 CAT监控的一些数据,加上L3 CAT的分配。到了第三代处理器添加了MBA技术第二代升级,通过对于L3 CAT和内存带宽的两个联合监控,达到了更加更准确的内存带宽的监控。同时对于L3 CAT分为了数据测和代码测两个部分,对于不同要求的workload可以进行更加灵活的区分。到了第4代,对L2 CAT也像L3CAT那样进行区分,在未来还可能对于IO设备,外设设备上加入I/O RDT的能力,同时MBA的能力也会继续提升,加入对于超线程的支持。
目前在Koordinator这个项目中已经有一些进展,已经在Koordinator这个项目中加入了对Porf的支持,来为后期RDT的一些动态调整提供了一些基础能力。目前还在对于RDT在Koordinator中的项目框架进行重构和RDT library的一些design,,后面会对于这个library进行持续的孵化开发,同时对于单机侧的节点的能力基于之前提到的Porf的一些采集指标进行一个联合动态的调整单机侧的RDT资源,再往后还会有一些基于Scheduling的这些能力,在未来还会有更多更先进的RDT能力的支持。