0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

rubik混部引擎的愿景、目标、设计原则

openEuler 来源:openEuler 作者:openEuler 2022-08-30 09:16 次阅读

概述

在云上业务类型和硬件资源越来越丰富的背景下,对云原生系统提出了更高的管理要求,例如在概论[1]中提到的资源利用率问题,服务质量保障问题,黑盒泛化问题,异构算力效率问题等等。为了让多样性业务和算力混部系统以最佳状态运行,Rubik 混部解决方案应运而生,在 Rubik 解决方案中,包括了集群感知调度、单机混部引擎(rubik)和内核隔离技术等多层次优化系统。本文是对 rubik 混部引擎的概要性介绍。

Rubik 字面意思为魔方,魔方由 Rubik 在 1974 年发明,故 Rubik 既是人名也指代魔方,在我们的解决方案中,Rubik 象征着能够将任务和算力资源有条不紊的管理起来。

rubik 混部引擎的愿景是提供一套自适应的单机算力调优和服务质量保障服务。包括如下能力目标:

兼容原生 kubernetes 系统:基于原生 kubernetes 的扩展接口进行能力扩展。

兼容 openEuler 系统:自动使能 openEuler 提供的增强特性(如内核分级资源隔离技术),对于其他 linux 发行版,由于存在部分内核特性缺失,仅提供受限管理能力。

注入式应用画像:通过干扰自动注入对业务进行画像标记,指导调度及运行时干扰识别控制。

节点及业务特征收集:上报节点及业务特征信息指导集群资源规划、调度策略优化,实现集群负载均衡、节点资源错峰互补使用。

运行时干扰识别控制:提供对关键业务性能干扰实时检测能力、干扰源快速定位能力以及干扰快速控制能力。

自适应动态调优:例如对关键业务性能优化,使其能能更高效稳定的运行;动态在离线资源配比调优,减少关键业务 QoS 违规等等。

支持自定义扩展:支持高级用户针对特定业务场景开发自定义扩展插件。

95b85032-27e1-11ed-ba43-dac502259ad0.pngrubik混部引擎在系统中的位置

特性介绍

在保障在线业务服务质量前提下实现资源利用率最大化提升是在离线混合部署的设计目标,rubik 混部引擎作为节点管理组件在整个混部解决方案中起到至关重要的作用,因此,rubik 混部引擎主要围绕资源利用率提升、QoS 保障展开。

在资源利用率提升方面,rubik 提供以下机制指导集群资源调度、实现集群节点各维度资源均衡、错峰互补、干扰打散。

基于注入式应用画像指导作业调度的调度及重调度机制

待调度作业通过干扰自动注入对业务进行画像标记, 分析工作负载的资源敏感度及压力度,调度阶段结合节点各维度资源(CPU、内存带宽、缓存带宽、磁盘带宽、网络带宽等)预测使用情况,指导集群节点资源统筹管理调度,不同资源密集型业务交错部署,均衡各维度平均资源利用率水平,同时也指导作业二次调度。

基于在线业务资源预测的节点资源超卖机制

通过对在线业务的各维度资源采样,预测可/不可压缩资源使用情况并上报,为在线业务准确预留所需资源保障其 QoS 的同时,将未使用资源尽可能多地分配给离线业务,最大化离线的吞吐率,提升节点的资源利用率。

在 QoS 保障方面,在混部作业的运行过程中,由于在离线作业竞争 CPU、缓存带宽、内存带宽、网络带宽、磁盘带宽等共享资源以及由于进程在不同 CPU 频繁切换及负载流量突发等情况,往往会导致业务性能受损,为了保障在线业务服务质量,防范关键业务 QoS 违规,rubik 混部引擎规划提供多重保障以提升工作负载的运行效率及稳定性。

第一道防线 - 基于内核特性的资源隔离抢占机制

openEuler Kernel 为了适配云原生混部场景,规划了 CPU、cache、Disk I/O、Network I/O 等资源的分级抢占能力,rubik 作为用户态组件,为在离线业务配置 QoS 优先级,使得当在线业务流量上升时,内核层面能为其快速抢占到所需资源,保障在线业务的服务质量,当在线业务的流量下降时,放宽对离线业务资源的限制,提高离线业务的吞吐率。

第二道防线 - 基于资源预测的在离线资源配比调优的预防机制

通过对在线业务相关资源的监控采集,预测在线业务各资源的使用情况,并结合节点资源的使用情况,提前对资源进行规划,降低在线业务 QoS 违规风险。当预测在线业务资源需求变大时,根据节点资源的空闲情况,选择是否对离线业务资源的配比调整。

第三道防线 - 基于资源编排与弹性限流的自适应性能调优机制

提供拓扑均衡&潮汐亲和性编排,减少进程在不同 CPU 的频繁切换、进程迁移开销以及访问远程 NUMA 导致性能抖动,同时应对关键业务流量突发,在保障整机负载水位安全稳定前提下,允许临时突破限制,协调资源进行自适应调整,快速解决或者缓解对应资源瓶颈,保障关键业务的服务质量。

第四道防线 - 基于指标监控的性能干扰检测控制的反馈机制

在现有的计算机硬件体系结构中,除了 CPU、Memory、Disk、Network 等资源,还有诸如 Memory Bus、 System I/O Bus、 DMA Bus、MMU-TLB 等关键资源,且这些资源尚无对应的软硬件协同的资源隔离机制,无法实现应用级的隔离,仅仅对 CPU 等资源隔离抢占无法完全解决资源竞争带来的 QoS 违规问题。因此节点管理组件需要提供对关键业务的性能干扰分析,然而在实际的生产环境上,通常无法直接获得业务的 QoS 情况,因此,在预分析阶段对底层性能指标与上层应用 QoS 建模,在运行期根据模型实时检测评估 QoS 是否违规,并在出现 QoS 违规后基于异常指标定位干扰来源,最后对干扰源进行压制甚至驱逐来保障在线业务的服务质量。

95f1107a-27e1-11ed-ba43-dac502259ad0.pngrubik 混部引擎特性

部署

首先,需要准备一套基于 openEuler 22.03 完成部署的 kubernetes 集群,然后在 master 节点准备 rubik 的 yaml 部署文件,可以直接从 rubik 源码仓下载 example:

wget-Orubik-daemonset.yamlhttps://gitee.com/openeuler/rubik/raw/master/hack/rubik-daemonset.yaml

下载之后,正确配置 yaml 里面的镜像地址,让它能够正确下载 rubik 镜像。

需要注意:

yaml 里需要正确配置 rubik 容器镜像的地址。假如前面采用的是 rubik 源码仓的 example,则需要修改 yaml 文件中的image: rubik_image_name_and_tag 为 image: hub.oepkgs.net/cloudnative/rubik:latest

yaml 中主要包含 ClusterRole、ClusterRoleBinding、ConfigMap、DaemonSet 四部分。其中 rubik 的启动配置参数包含在 ConfigMap 里,详细的配置说明可以参考rubik 配置说明(https://gitee.com/openeuler/rubik/blob/master/docs/config.md)

然后,一键部署 rubik daemonset:

kubectlapply-frubik-daemonset.yaml

部署完成后,通过 kubectl 可以查询名为rubik-agent的 pod:

#kubectlgetpods-A
NAMESPACENAMEREADYSTATUSRESTARTSAGE
kube-systemrubik-agent-jhjdg1/1Running04d

使用示例

以下演示如何启动一个 nginx Pod 并将对其设置为在线业务,rubik 为该业务使能 kernel 资源 QoS 保障机制。

首先,需要在工作节点上使能 memory QoS 特性:

echo1>/proc/sys/vm/memcg_qos_enable

然后,在部署文件 yaml 添加 volcano.sh/preemptable 的 annotation 以标识业务属性:

#catnginx-online.yaml
apiVersion:v1
kind:Pod
metadata:
name:nginx-online
annotations:
volcano.sh/preemptable:"false"#volcano.sh/preemptable为true代表业务为离线业务,false代表业务为在线业务,默认为false
spec:
containers:
-name:nginx
image:nginx
resources:
limits:
memory:"200Mi"
cpu:"1"
requests:
memory:"200Mi"
cpu:"1"

接着,部署 nginx 业务:

#kubectlapply-fnginx-online.yaml
#kubectlgetpods
NAMEREADYSTATUSRESTARTSAGE
nginx-online1/1Running04d

最后,查找并进入nginx-online Pod 对应的 cgroup 下,查看cpu.qos_level是否生效(在线业务为 0,离线业务为-1),具体运行效果可以查阅典型应用下的效果中案例 1[2]:

#cat/sys/fs/cgroup/cpu/kubepods/pod59f1cdfa-a0ad-4208-9e95-efbef3519c00/cpu.qos_level
0

展望

在离线混合部署作为提升数据中心资源利用率的重要手段,得到学术界和工业界的关注,成为了研究的热点领域,但目前也面临着诸多技术挑战,尚有许多亟待解决的问题,如黑盒业务混部、异构资源混部等,需要在作业感知调度、性能干扰建模、资源隔离抢占等领域逐个突破。为了达成泛型混部及融合部署的目标,节点管理层面对关键业务进行性能干扰建模,提供精确的 QoS 量化模型,指导干扰实时检测与定位,并基于干扰检测与定位实现更精确的动态资源配比控制以及探索更精准普适的动态监测指标数据对应用画像以指导感知调度,这些方面具有着至关重要的作用,也是 rubik 后续研究的重点所在。

本文简要介绍 rubik 混部引擎的愿景、目标、设计原则及特性机制,后续计划对其中涉及的性能调优技术,资源隔离抢占技术,干扰检测及控制技术等进行详细介绍,敬请期待!

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 带宽
    +关注

    关注

    3

    文章

    907

    浏览量

    40837
  • 硬件
    +关注

    关注

    11

    文章

    3247

    浏览量

    66099
  • 隔离技术
    +关注

    关注

    1

    文章

    53

    浏览量

    13119

原文标题:openEuler 资源利用率提升之道 03:rubik 混部引擎简介

文章出处:【微信号:openEulercommunity,微信公众号:openEuler】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    下一代测试系统:用LXI推进

    下一代测试系统:用LXI推进(AN 1465-16)
    发表于 10-09 09:47

    实现三频Wi-Fi 802.11ad开拓无线应用

    实现三频Wi-Fi 802.11ad开拓无线应用
    发表于 05-14 07:16

    无线通信行业对5G市场的和该市场面临的技术挑战是什么?

    无线通信行业对5G市场的和该市场面临的技术挑战是什么?BEE7原型设计环境的具体方面和设计过程中需要做出的部分利弊权衡和设计决策
    发表于 05-21 06:09

    openEuler 资源利用率提升之道 03:rubik 引擎简介

    rubik 引擎目标、设计
    发表于 09-01 11:00

    :系列采访》:PowerVR产品与技术营销高级总监Chris Longstaff

    Imagination Technologies 有一个美好的:为创新人才、为那些寻求改变世界的人创造优质的产品。怀着这样的夙愿,我们总是思考,如何才能创造更好的未来——一个光明的未来,一个充满
    发表于 03-20 10:53 285次阅读

    西门子发布“2020公司”战略计划,未来发展有何改变?

    西门子官方发布“公司2020+”,建立新组织架构,下设三个“运营公司”和三个“战略公司”,同时宣布,收购mendix公司,以期继续扩展数字化业务。那么这个新的“公司2020+”
    的头像 发表于 08-07 17:15 7976次阅读

    丰田邂逅设计思维,明确"未来

    丰田汽车引进富士通的“设计思维”,描绘维修技师心中的图。
    的头像 发表于 10-17 14:27 3342次阅读

    游戏蓝图:你做出了正确的游戏了吗

    游戏蓝图:你是否做出了正确的游戏
    的头像 发表于 05-31 09:14 1948次阅读

    微软未来揭秘

    微软公司每隔几年就发布一段视频来展望生产力的发展,这似乎已经成了一种惯例,而大型屏幕、超薄设备、传感器一般都是这些视频里的“主角”。然而不同以往的是,微软今年并没有发布视频,而是邀请记者参观“展望中心”实验室,亲身感受微软对未来的
    的头像 发表于 05-10 09:06 4087次阅读

    区块链芯片驱动世界的美好还能否实现

    芯链曾号称着要实现「区块链芯片驱动世界」的美好,只不过,如今来看,这样的被击碎了:团队内部分崩离析、成员成批离开,项目未来会如何无人可知。
    发表于 11-11 11:15 752次阅读

    亚马逊AWS的云计算有什么

    上周,Jassy 在采访中,透露了他对 AWS 的和方向的新见解,坦率地谈论了对云计算行业的影响、不断变化的客户需求以及近期竞争的激增。
    的头像 发表于 12-04 16:28 6069次阅读

    成科创板首个EDA公司?

    近日,北京芯软件技术股份有限公司(以下简称“芯”)的科创板上市申请被受理。公司的主营业务为依托自主开发的电子设计自动化(EDA)软件,开展集成电路分析服务和设计服务。
    发表于 02-12 09:52 1782次阅读

    FORVIA佛瑞亚集团发布全新和使命

    全球第七大汽车技术供应商 FORVIA佛瑞亚集团 首次亮相中国国际进口博览会 汽车展区(2.1H馆) 智慧出行专区(C3-002), 以中国传统纸艺为灵感, 打造出一间“FORVIA佛瑞亚空间
    的头像 发表于 11-07 16:46 1931次阅读

    EDA厂商芯终止深交所主板IPO

           北京芯软件技术股份有限公司主营业务是依托自主开发的电子设计自动化EDA软件,开展集成电路分析服务和设计服务。 此前芯计划是在科创板上市,后来主动撤回科创板上市。并
    的头像 发表于 12-07 16:32 2868次阅读

    富士通发布《富士通技术与服务2024》

    富士通近日发布了《富士通技术与服务2024(Fujitsu Technology and Service Vision 2024,简称FT&SV 2024)》,阐述了对未来商业和社会的
    的头像 发表于 05-29 17:07 475次阅读
    富士通发布《富士通技术与服务<b class='flag-5'>愿</b><b class='flag-5'>景</b>2024》