短作业优先算法_在离线混部作业调度与资源管理技术研究综述

本文综述了数据中心的离线混部作业调度与资源管理技术,重点关注短作业优先算法。讨论了在线与离线作业的特征、性能干扰模型、调度算法、资源动态分配和隔离技术。强调了性能干扰对在线作业的影响以及控制干扰的重要性,提出了未来研究方向,包括细粒度性能干扰模型、面向微服务架构的调度和混部作业模拟器的发展。
摘要由CSDN通过智能技术生成
eca2e9d648cbb52db137c37c0fac7842.png

在离线混部作业调度与资源管理技术研究综述

论文作者:王康瑾,贾统,李影

发表期刊:软件学报

摘要

数据中心是重要信息基础设施,也是企业互联网应用的关键支撑.然而,目前数据中心的服务器资源利用率较低(仅为10%~20%),导致大量的资源浪费,带来了极大的额外运维成本,成为制约各大企业提升计算效能的关键问题.混部(colocation),即:将在线作业与离线作业混合部署,以空闲的在线集群资源满足离线作业的计算需求.作为一种重要的技术手段,混部能够有效提升数据中心资源利用率,已成为当今学术界和产业界的研究热点.本文分析了在线作业与离线作业的特征,探讨了在离线作业混部时所面临的技术挑战,从性能干扰模型、作业调度算法、资源动态分配算法与资源隔离技术等方面就在离线混部技术进行了综述,并以业界典型混部管理系统为例探讨了在离线混部关键技术在产业界的应用及其效果,最后对未来的研究方向进行了展望.

背景

    数据中心中的作业主要包括两类:在线作业和离线作业。在线作业通常是处理用户请求的服务,典型的在线作业有网页搜索、即时通讯、语音识别、流式计算、电子商务、流媒体等,通常具有如下特点:1)运行时间长;2)资源需求动态变化;3)对性能变化敏感。因此为满足在线作业的不断变化的资源需求和性能稳定性要求,传统数据中心采用了在线作业独占集群的部署方案,一台服务器通常仅部署少量在线作业,导致在线作业集群利用率较低。提升利用率需要运行更多的作业,因为离线作业具有如下特点:1)作业数量大,运行时间短,可有效利用碎片资源;2)计算密集,对资源需求量大,可显著提升资源利用率;3)对性能变化不敏感,可为保证其他作业的性能而降低自身的性能。因此可将离线作业部署至与在线作业集群,与在线作业混合部署以提升数据中心整体资源利用率。

    混部作业运行过程中,由于离线作业通常对资源的需求较高,因而可有效提升资源利用率,但是可能会与同节点的在线作业竞争共享资源(如CPU、缓存、内存带宽、网络带宽等),导致在线作业性能下降(Performance Degradation),称为性能干扰(Performance Interference). 性能干扰会影响在线作业的实时性和稳定性,严重则造成在线作业故障,因此混部集群管理系统必须有效控制性能干扰,由于性能干扰与系统的多个层面相关,控制性能干扰需要在系统的多个层面进行:1)作业层,性能干扰的和作业的资源竞争行为密切相关,理解作业的资源竞争特征、分析不同作业性能干扰发生的模式对于避免和降低性能干扰至关重要;2)作业调度层,不同作业的混部组合关系会产生不同的资源竞争和性能干扰,作业调度算法决定了作业间的混部组合,因此可从作业调度层减少作业间的相互干扰;3)操作系统层,操作系统层的管理软件可动态调整各个作业所占用的共享资源,改变多个作业在共享资源上的竞争关系,因此可在操作系统层降低作业间的相互干扰;4)硬件架构层,体系结构中大量的共享资源均有对应的硬件架构(如CPU,Memory,Cache),因此可设计新的硬件架构以实现多作业在共享资源上的有序竞争,达到控制和减少性能干扰的效果。

    本文针对上述四个层面所包含的四个研究领域进行了综述,包括:性能干扰模型,在离线混部作业调度算法,资源动态分配算法,资源隔离技术。

研究框架

ee20db83425a81590fadac9f63f77653.png

图1  研究框架

1)性能干扰模型. 性能干扰模型是指对作业的运行环境对性能的影响进行建模,预测作业在不同负载、资源竞争及干扰模式下所能达到的性能,为集群作业调度和节点资源管理提供指导. 为在离线混部作业调度和资源管理提供性能干扰信息

2)在离线混部作业调度算法. 混部作业调度算法解决的是作业的放置问题,即决定作业的运行位置.混部作业调度是一个多目标组合优化问题,在传统作业调度的优化目标上,还需要通过改变作业间的组合关系以减少性能干扰,在满足在线作业的性能需求的前提下最大化资源利用率.

3)资源动态分配算法.资源动态分配算法是指在作业运行时,根据作业的运行状态作出作业所能使用的共享资源量的调整决策,然后调用资源隔离技术提供的接口,实现资源的动态分配。

4)资源隔离技术。资源隔离技术是指通过软件或软硬件协同技术,实现多个作业在共享资源上的有序竞争。

    本文将资源动态分配算法和资源隔离技术统称为“在离线资源管理技术”。

性能干扰模型

    性能干扰模型通过数学建模的方法,建立作业遭受的性能干扰下与其所能达到的性能的对应关系。即pf^j = Perf^j(I),其中I为作业j正在经受的性能干扰,pf为性能。

    目前存在两种获取I的方法:1)基于基准程序性能的干扰量化方法,即:使用一段基准程序(通常包括若干个子基准程序,对应多种共享资源),将其运行于目标环境中,将其运行时长视为该环境目前的干扰值;2)基于资源的干扰量化方法,将该节点上除该作业外的其他作业的资源使用量作为干扰值。

    在获取构造性能模型所需数据集的方法上,目前存在两种方法:1)基于干扰注入的方法,即:在测试环境中试运行目标作业,并通过运行不同强度的干扰者模拟不同程度的性能干扰,然后收集所需数据;2)基于历史监控数据的方法,由于多数在线作业在数据中心中已经运行很长时间,因此其历史监控数据中存在着大量可用于构造性能干扰模型的数据,但通常这种方法只适合于基于资源的干扰量化方法。

    在构造性能模型时,存在两类方法:基于统计方法和基于机器学习两种.基于统计的方法通过数理统计求得模型中各变量的变化关系,基于统计方法的优点是:1)计算量小,模型构建和更新速度快;2)可解释性强,便于优化.但是其局限性在于:1)模型的设计需要先验知识,构造和优化具有一定的难度;2)当数据维度增多时传统的统计方法无法适用.随着机器学习方法的发展,研究人员尝试将机器学习模型应用于性干扰模型,采用了诸如随机森林回归模型,协同过滤算法,线性回归,聚类算法,深度神经网络等方法完成从作业运行时信息到作业性能的映射,基于机器学习算法的建立的性能干扰模型可以学习到人类无法察觉的特征,并且具有良好的预测结果.缺点是:1)需要高质量的训练数据;2)缺乏可解释性,难以优化;3)在建立模型时需要较长的训练时间和计算开销.

表1 性能干扰模型对比

2590f0890def15214a6135abd2562102.png

在离线混部作业调度算法

    在离线混部作业调度调度算法从待调度队列中拉取在线/离线作业,在做调度决策时在线作业的性能保障和最大化集群的资源利用率,然后将待调度作业调度至符合目标的计算节点。一种保障作业运行性能的方法是使用性能干扰模型预测作业混部后的性能,进而筛选出满足性能要求的作业运行位置,使用性能干扰模型的相关研究在表2中的“性能干扰预测”一栏被标记为√;由于资源和性能的相关性,通常空闲资源较多的节点意味着资源竞争较为缓和,因此根据资源使用现状和资源预测筛选出空闲资源较多的节点,相关研究在“资源预测”一栏中被标记为√。上述两种方法均可提供一定程度的性能保障,但是仍然存在着局限性:基于性能干扰模型的方法依赖了预构建的性能干扰模型,而获取性能干扰数据和构建性能干扰模型带来开销是不可忽略的问题,并且存在着预测准确性的问题;基于资源的方法虽然容易实现,但是其并不是直接面向混部的目标:“保证在线作业的性能”,并且受限于资源维度,如果在缺失关键资源上监控数据上进行调度仍然存在着发生严重性能干扰的风险。

表2 在离线混部作业调度算法对比

5fdab82b68b35df9e334905b62afc059.png

资源动态分配算法

    作业运行时,由于作业负载、节点作业数量、作业执行阶段的不同,每个作业对于资源需求呈现动态变化的特点,这也导致了性能干扰的动态性,静态的资源分配方式已无法适应这一现状,因此研究人员研究了资源动态分配算法,动态调整各个作业的计算资源,在保证在线作业性能的同时最大化资源利用率。资源动态分配算法采用了基于反馈机制(feed-back)的框架,基本流程包括三步:1)收集作业运行状态信息;2)做出资源调整决策;3)执行决策。然后反复执行上述三步,直到作业运行结束。从资源调整决策面向的目标,可将资源动态分配算法分为缓解性能干扰和预防性能干扰两种。缓解性能干扰即在检测到性能干扰后采取限制离线作业资源、杀死离线作业、迁移离线作业、增加在线作业资源等一种或多种资源调整方案。缓解性能干扰的算法在发生性能干扰以后才进行调整,此时作业的性能已经造成损失,因此研究人员提出了以预防性能干扰为目的的资源动态分配算法,根据作业的性能变化趋势进行相应的资源调整,在发生性能干扰以前就提前进行调整。

表3 资源动态分配算法对比

f211a4e356e7675052466b54c17c9a1b.png

资源隔离技术

    性能干扰的根因在于作业对共享资源的无序竞争,资源隔离技术通过设计新的软硬件架构,实现作业在共享资源上的有序竞争,控制作业对于共享资源的使用,达到控制、减少甚至消除性能干扰的效果。

    在当前复杂的体系结构下,共享资源类型众多,对应的资源隔离技术目前主要采用了两种方式实现多个作业对于共享资源的有序竞争:空间划分(partition)和优先级控制(priority)。空间划分的方法适用于空间共享类资源,如CPU核(cgroup中的cpu set,cpu quota, cpu share等机制),内存空间(cgroup 中的memory limit),cache空间(Intel CAT),网络带宽划分(qdisc)。优先级控制适用于时分共享类资源,在优先级控制的资源隔离技术,高优先级的作业会抢占低优先级作业在该资源上的使用权,进而减少排队时间。例如:CPU资源上可采用进程优先级控制;针对内存带宽的动态优先级控制(文献[59]);针对网络带宽的动态优先级控制(文献[60]  [93]  [96]  [95]  )。

    资源隔离技术降低了多个作业在竞争的共享资源时的相互干扰,随着操作系统和硬件架构的不断更新和发展,出现了越来越多的软件或软硬件协同的资源隔离技术.但由于硬件结构的复杂性,在某些关键资源上仍然缺乏通用且有效的资源隔离技术,如TLB快表、L1/2缓存、总线带宽等,有待进一步深入研究加以解决.

系统实例

    提升集群利用率有利于降低企业数据中心的TCO(总体拥有成本,Total Cost of Ownership),大幅度提升数据中心的成本效率.因此在离线混部集群管理系统成为工业界关注的重点领域,国外方面,谷歌在其集群管理系统Borg中率先尝试了大规模在离线混部.国内方面,互联网公司百度、腾讯、阿里均在混部集群管理系统上有所实践.本问就4个混部系统实例进行对比分析(见表4).

表4 混部系统实例对比( “-”表示现有公开数据中无相关描述)

a4a17eea6387ff39c70e29a02b5bb9b3.png

总结与展望

    本文就性能干扰模型、在离线混部作业调度算法、资源动态分配算法、资源隔离技术进行了综述和分析,虽然现有研究工作和企业实践已经取得了一定的成果和进展,但该领域仍然存在着诸多有待解决的问题和研究方向。

1. 细粒度的性能干扰模型

    目前在混部作业管理系统中使用的性能干扰模型将作业执行(或请求处理)过程视作一个整体,进而刻画作业整体在不同干扰下性能的变化.实际中作业的运行过程中包括多个阶段,如Hadoop作业存在Map阶段和Reduce阶段,作业在不同阶段因其计算任务不同,存在着不同资源需求和性能敏感度.现有的性能干扰模型针对应用的整体性能特征进行建模,忽略了作业不同阶段的干扰敏感性变化,因此需要细粒度的性能干扰模型描述这种变化.

2.  面向微服务架构的在离线混部作业调度

    随着微服务架构的发展,数据中心出现了越来越多的采用微服务架构的作业.在微服务架构下,单个微服务的性能下降会引起依赖该服务的其他服务发生级联性能下降(Cascading performance Degradation) [74]  .如:1)网页搜索服务[75]  ,其响应时间取决于最慢的搜索节点;2) Memcached, Redis等广泛使用的数据缓存系统,其性能下降会传引起上层服务的性能下降.因此在面向微服务架构的在离线混部作业调度算法不仅需要考虑作业在混部时产生的性能干扰,还需考虑性能干扰在服务间的传播效应.未来可将性能模型与服务依赖关系相结合,研究面向微服务架构的在离线作业调度算法。

3. 面向在离线混部作业的调度模拟器

    在作业调度算法研究中,使用模拟器验证由于具有快速、低成本等优点已成为重要验证和评价手段.在离线混部作业调度的需要模拟器对作业间的性能干扰进行模拟,但是目前主流的调度模拟器如CloudSim以及以CloudSim衍生模拟器对于作业性能的模拟仅依据作业的资源分配,无法模拟混部作业在体系结构层次竞争资源而引起的性能干扰.计算机体系结构模拟器(如SMARTS, SimGodon, ZSim, Gem5等) 虽然通过指令级模拟提供了精细再现了作业的执行过程,可模拟多个作业在硬件上的资源竞争,但是其缺点在于运行速度慢,高额的开销使其无法应用于大规模数据中心的模拟.文献[86]提出了微服务模拟器uqSim,基于排队论模型模拟基于微服务架构的在线作业的运行,但其局限性在于:1)只能模拟在线作业,无法模拟离线作业;2)无法模拟作业间的性能干扰.因此,目前仍缺乏面向在离线混部作业的调度模拟器.全方位模拟应用之间的依赖、干扰、竞争等关系,快速分析和验证混部作业调度算法在不同场景下的运行效果,降低调度算法的调试与测试难度,是未来的研究方向之一.

THE END

作者简介:

王康瑾

北京大学软件工程专业在读博士二年级

研究方向:混部系统,曾参与腾讯、阿里的混部系统研究

(我国非著名天文爱好者)

邮箱: wangkangjin@pku.edu.cn

作者往期文章回顾:

1.浅谈混部系统研究

2. BAT的资源利用率之争

3. 【腾讯】如何把Docker镜像分发速度提升90+%

4. 幻影移形之Docker【调研】

5. 如何从docker Registry中导出镜像

6. Docker Registry V2源码解读

7. 【译】一个Kubernetes监控指南

8. 卷积神经网络在流星雨摄影中的应用

9.混部中的干扰消减 —— 谷歌&微软方案

bf10275b767e4cff0db1563002381c23.png b0ec00fae26bb11b072a61bdf78f9c4a.png 43278378180fedb5c1cf41cf30baf995.png 565da6c38ba496d4d19e511643181d6e.png

欢 迎 到 来

85b4bc78981f4806c8ead84caca4ab19.png 37f5661ccad1ad7ebc9673c5c30457bd.png 53936668999d1c156102c37da934c6b6.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值