您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[北京金融科技产业联盟]:基于混部技术的金融云平台资源集约化和稳定性提升研究报告 - 发现报告
当前位置:首页/行业研究/报告详情/

基于混部技术的金融云平台资源集约化和稳定性提升研究报告

基于混部技术的金融云平台资源集约化和稳定性提升研究报告

基于混部技术的金融云平台资源集约化和稳定性提升研究报告 北京金融科技产业联盟2024年3月 版权声明 本报告版权属于北京金融科技产业联盟,并受法律保护。转载、编摘或利用其他方式使用本报告文字或观点的,应注明来源。违反上述声明者,将被追究相关法律责任。 编制委员会 编委会成员:聂丽琴王鑫编写组成员: 赵叶红 白佳乐 沈震宇 杨晓峰 许振峰 黄宇晴 陈锦涛 郑建飞 赵茭茭 秦朝勇 才振功 王羽中 李翔 敬锐 卢景晓编审:黄本涛 周豫齐 参编单位: 北京金融科技产业联盟秘书处中国工商银行金融科技研究院杭州谐云科技有限公司 华为技术有限公司浙江大学 摘要 数据中心是重要的信息基础设施,也是企业应用的关键支撑。然而,目前业界数据中心的资源利用率普遍较低,导致部分资源闲置,带来了额外的运维成本,制约各大企业的计算效能提升。混部(colocation),即通过将不同业务类型的应用混合部署到同一资源池,利用不同业务之间在资源使用类型、周期等方面的互补性,实现对服务器资源利用率的有效提升,作为提升物理资源利用率、降低运营成本的有效方案,是当今学术界和产业界的研究热点。 基于对业界混部技术方案的充分调研以及各大云厂商混部 技术实践的参考,结合金融业应用的实际情况,本报告提出了一套基于高低优先级的应用混部技术方案,主要包含混部调度和资源隔离两大核心能力。其中,混部调度通过资源超分的思想和混 部调度系统,实现节点空闲资源的充分利用,当节点上的资源产 生干扰时,通过驱逐低优先级应用来保障高优先级应用资源使用;资源隔离提供增强型资源隔离特性,基于优先级的资源动态分配方法,在资源不足时保证高优先级应用使用资源,实现毫秒级的 资源隔离。 关键词:混部、资源利用率、调度、隔离、云计算 目录 一、研究背景及目标1 (一)研究背景1 (二)研究目标2 二、国内外应用现状2 三、技术方案3 (一)系统总体架构3 (二)混部调度框架4 (三)混部资源隔离9 四、验证场景11 (一)应用混部12 (二)干扰检测与驱逐13 (三)干扰隔离15 五、应用成果17 六、总结和展望17 一、研究背景及目标 (一)研究背景 大规模数据中心是当今企业级互联网应用和云计算系统的关键支撑。为保障日益增长的互联网应用和云计算系统的计算需求,数据中心需要不断横向扩容,其规模和服务器总量呈现快速增长趋势。然而,伴随着数据中心的急速扩容,其资源利用率却始终处于较低状态。统计数据表明,目前全球数据中心资源利用率仅为10%—20%,如此低的资源利用率意味着大量的资源浪费。因此,如何把这些浪费的资源合理利用起来成为一个亟需解决的关键性技术问题。 想要解决这个问题首先要研究其产生的根本原因。通常而言, 数据中心承载着各种类型的业务,包括交易、办公类等在线服务、大数据、实时计算等,从业务对资源质量要求来看,可对不同类型的应用按优先级分级,业界比较典型的划分场景为在线和离线。在线作业通常是处理用户请求的服务,典型的有网页搜索、即时通信、语音识别、流式计算、电子商务等,通常可为企业带来直接的经济利益,具有如下特点:一是运行时间长。在线作业通常以服务的形态持续运行,以请求为单位触发计算任务,因此也被称为长服务。二是资源使用呈现动态变化。在线作业的资源使用量与用户并发请求量呈正相关,会伴随用户并发请求量发生动态变化。三是对性能变化敏感。在线作业的性能通常决定了对外服务质量,而服务质量则直接影响企业的经济利益和用户体验。因 此,在线作业又被称为延时敏感型作业。 为保证应用运行的稳定可靠,往往会为在线应用分配大量的服务器资源。后果就是,虽然能够很好保障其运行质量,但也造成了在大部分时间服务器处于空闲的状态,导致数据中心整体资源利用率很低。 解决这个问题的最佳方案是“混部”,顾名思义,就是把不同优先级的应用进行混合部署,比如在线应用和离线应用混部,高优先级和低优先级在线应用混部。当在线应用的资源使用量处于低谷时,将离线应用或者低优先级的在线作业部署到空闲的节点上,大幅提高整个集群的资源利用率。 (二)研究目标 通过对业界混部技术的主流方案和技术原理进行研究,结合金融行业应用的实际情况,基于K8S技术基础,研究适合金融行业的容器混部方案,实现资源利用率的明显提升,在保证应用服务质量的同时,实现混部节点50%以上部署密度的提升,资源利用率提升至30%以上。对于高优先级应用,相较于混部前,干扰控制在5%的范围之内。 二、国内外应用现状 混部已成为业界提升资源利用率的主流方法,以空闲的在线资源满足离线作业和低优先级作业的计算需求,来实现资源利用率的提升。Google在其集群管理系统Borg中率先尝试了大规模在离线混部,国内百度、腾讯、阿里等均在混部集群上也有所实 践。经对业界实践调研,精细化的混部调度和严格的资源隔离是 亟待解决的技术难点。 混部调度方面,Google的Borg和腾讯的YARD采用了统一调度的架构,即在线作业和离线作业由一个调度器统一调度,而百度Matrix和阿里Fuxi则采用了在离线分离调度的方式,即在离线作业由各自的调度器调度。从调度算法来看,Borg和Sigma采用了基于打分规则的调度算法。Fuxi、Matrix、YARD则是对YARN调度算法的改进,在调度时考虑了节点空余资源,并使用作业画像、节点画像等预测作业的资源需求和节点未来可用资源。 资源隔离方面,业界均采用了多种资源隔离技术。容器技术作为轻量级的虚拟化技术被广泛使用;CPU作为最重要的计算资源,CPU隔离和抢占式调度成为所有混部系统的选择;CAT(cacheallocationtechnology)技术也被较多地采用。 三、技术方案 (一)系统总体架构 基于金融业应用的情况,本课题设计了一套基于应用高低优先级的混部系统,整体架构如图1所示。 图1整体架构图 系统整体分为两部分:混部调度框架,由资源画像、混部调度以及每个节点上运行的Agent等组件构成,基于应用分级和资源超卖实现高低优先级应用的混合部署。混部资源隔离,提供增强型资源隔离特性,面向混部场景,解决容器隔离性不足导致的 相互干扰问题,在提升资源使用率的同时,保证应用服务质量不受影响。 (二)混部调度框架 1.功能视图 具体功能如图2所示。 图2详细功能图 (1)资源画像:基于CPU、内存等指标数据,通过统计分析、机器学习等手段对应用资源使用进行画像,为资源调度系统提供混部调度所需的关键信息。 (2)混部调度:基于高优先级应用的空闲资源和应用负载类型,根据调度策略完成高低优先级应用的混部调度;实时判断高优先级应用的受干扰程度并及时进行规避处理,保证应用服务 质量不受影响。2.资源画像 图3指标采集 如图3所示,混部系统使用cadvisor、netdata等工具采集CPU、内存、磁盘等资源,基于应用的历史数据,利用数据分析、机器 学习等技术对应用进行周期性地画像,包括:应用资源密集型分 类,对应用历史CPU、内存、磁盘和网络IO使用总量分别进行归 一化,计算得到应用每个维度的密集系数,用来衡量该应用在该维度的资源需求量;应用负载趋势预测,根据应用历史CPU和内存使用数据,使用时序预测算法XGBoost预测应用未来的负载情况;应用CPI健康阈值,基于3-sigma准则计算应用的CPI(cyclesperinstruction),将输出的上限作为应用CPI的健康阈值线。 3.混部调度 为实现资源复用,混部系统实现了更精细化的调度,根据混部节点上高优先级应用负载情况动态调整节点的可混部资源,通过混部标签识别低优先级应用,并根据混部调度策略进行节点的 筛选和打分,完成混部应用调度到混部节点的过程,并实时监测应用的干扰情况,根据受干扰程度进行相应的避让处理。 (1)节点资源扩展。对节点空闲资源和高优先级应用的闲置资源进行抽象,基于混部资源标签,扩展节点的资源属性,如图4所示。 图4节点资源 (2)应用属性扩展。对应用进行优先级划分并写入应用属性,低优先级应用又可按更细粒度划分1-5级,可作为驱逐筛选 条件,如图5所示。 图5应用属性 (3)混部调度策略。通过扩展k8s原生的调度框架,实现 自定义Scoring扩展:混部资源均衡调度,使混部节点在集群内 均衡分布,避免混部节点堆积;同质资源均衡调度,基于应用资 源密集型调度,避免多个相同类型的应用调度到同一个节点,如图6所示。 图6调度器原理 (4)混部资源计算。结合节点上应用当前负载情况和未来负载趋势预测数据周期性并计算混部节点可混部资源,计算流程如图7所示。 图7计算流程 (5)水位线评估。如图8所示,设计调度水位线和驱逐水位线:节点压力达到调度水位线后,设置节点不能继续调度混部应用;达到驱逐水位线后,驱逐混部应用,使节点压力稳定在驱逐水位线之下。 图8水位线评估 (6)干扰驱逐。持续监控节点CPI指标,当应用的CPI持续超过健康阈值后,向节点发起驱逐请求。混部调控模块监听混部节点的驱逐事件,根据请求类型执行驱逐操作,获取主机上所有混部业务的pod,根据pod的优先级、数量、使用率等因素计算最优驱逐节点进行驱逐,CPI指标正常后则停止驱逐操作。 (三)混部资源隔离 在混部过程中,由于低优先级应用竞争CPU、内存、网络带宽等共享资源以及由于进程在不同CPU频繁切换及负载流量突发等情况,会导致应用性能受损,为了保障应用服务质量,防范关键业务QoS受损,引入增强的内核隔离机制,提供多重保障以提升工作负载的运行效率及稳定性,如图9所示。 图9资源隔离架构图 1.隔离引擎 为保障混部系统以最佳状态运行,隔离引擎提供了自适应的单机算力调优和服务质量保障服务,以提升工作负载的运行效率和稳定性。 优先级配置:为应用配置QoS等级,当高优先级应用流量 上升时,内核层面能为其快速抢占到所需资源,保障其服务质量,当在线业务流量下降时,放宽对低优先级应用资源限制,提高其吞吐率。 动态资源配比调优:通过监控和预测高优先级应用相关资源 的使用情况,结合节点资源的使用情况,提前对资源进行规划, 调整低优先级应用资源配比,降低高优先级应用QoS违规风险。自适应性能调优:在保障整机负载安全稳定前提下,允许临 时突破限制,协调资源进行自适应调整,快速解决或者缓解资源 瓶颈,保障关键业务的服务质量。2.隔离特性 内核资源分级管控从物理核、缓存、内存带宽、网络带宽、IO带宽五种共享资源入手,提供了一套共享资源隔离复用机制,实现了CPU、MEM、Disk、Net等资源的分级抢占能力。 CPU调度分级:基于标签化的抢占技术保障us级任务抢占, 实现高优先级对低优先级应用的绝对抢占,达到多维任务间CPU资源干扰隔离效果。 内存分级管控:基于linux内存分配回收机制,主动探测内 存压力,通过主动管控和策略下发机制,保证高优先级应用的内存分配和使用。 网络带宽分级管控:基于eBPF和EDT技术实现动态限速分 配策略,根据优先级自动调整带宽,当高优先级应用占用带宽较低时,空闲带宽能够分配给低优先级应用使用,当高优先级容器需要更多带宽时,能够迅速(<100ms)抢占回来。 四、验证场景 搭建混部集群,部署混部组件,配置混部Node节点并准备混部应用。如图10所示,集群共6个节点,其中3个节点作为混部节点。 图10集群节点列表 (一)应用混部 1.测试条件 混部集群就绪,节点混部开关打开,高低优先级应用已完成配置。 2.测试步骤 (1)部署高优先级应用,节点分配率约80%,应用运行一段时间后的CPU资源利用率情况如图11所示,平均使用率15%左右。 图11高优先级应用单独部署运行 (2)部署低优先级应用,经混部调度器调度到该节点,运行一段时间后,CPU资源利用率如图12所示,达到35%左右,且高优先级应用运行正常。 3.测试结论 图12应用混部后资源运行 混部后,应用运行正常,节点资源利用率由混部前的15%左右提升到了35%左右。