Page 125 - 《软件学报》2020年第10期
P. 125
王康瑾 等:在离线混部作业调度与资源管理技术研究综述 3101
大规模数据中心是当今企业级互联网应用和云计算系统的关键支撑.为保障日益增长的互联网应用和云
[1]
计算系统的计算需求,数据中心需要不断扩容,其规模和服务器总量呈现快速增长趋势.权威报告 指出,2020 年
全球数据中心的服务器总量将达到 1 800 万台,并且正以每年 100 万台的速度增长.然而,伴随着数据中心的急
[1]
速扩容,其资源利用率却始终处于较低状态.统计数据表明 ,目前全球数据中心资源利用率仅为 10%~20%,如
此低的资源利用率意味着数据中心大量的资源浪费,导致目前数据中心的成本效率极低.因此,如何提升数据中
心资源利用率成为一个亟需解决的关键性技术问题.
通常而言,数据中心以作业为抽象单位执行计算任务.按照计算任务的不同可将作业分为在线作业和离线
作业.在线作业通常是以服务形态来处理用户请求并执行计算任务,如网页搜索服务、在线游戏服务、电商交
易服务等,具备较高的实时性和稳定性需求.为保障上述需求,企业往往会对外提供明确的服务等级协议(service
level agreement,简称 SLA),以明确的条款约定服务质量.违反 SLA 会给企业带来经济损失,因此数据中心往往为
在线作业预留大量的服务器资源以保证其服务质量.离线作业通常是计算密集型的批处理作业,如 MapReduce
和 Spark 作业 [2,3] 数据分析作业/机器学习模型训练作业等.多数离线作业对于性能没有严格的要求,可以容忍较
高的运行延迟并支持失败任务的重启.按照集群上所运行的作业类型,数据中心可划分为在线集群和离线集群.
在线集群通常因在线作业对性能的高要求而采用过量资源供给策略,导致资源利用率较低;与之相反,随着大数
据 [4−7] 和人工智能的发展,离线作业的规模日益扩大,离线集群对计算资源的需求日益增长,导致现有集群资源
[8]
供给不足 .因此,提升数据中心整体资源利用率的理想方法是在保障在线作业性能的前提下,将在线集群的空
闲资源分配给离线作业,即:将在线作业与离线作业混合部署于同一集群,简称“混部(colocation)”.目前,在离线
[9]
混部已成为数据中心提升整体资源利用率的主流方法 .
在混部作业运行过程中,由于在离线作业竞争共享资源(如 CPU、缓存、内存带宽、网络带宽等),往往会导
致作业性能下降(performance degradation),该现象也被称为性能干扰(performance interference) [10−15] .性能干扰
会严重影响在线作业的实时性和稳定性,降低离线作业的吞吐率,因此,混部集群管理系统必须有效控制性能干
扰,并根据性能干扰快速、及时地做出调整.然而,性能干扰的程度受诸多因素影响,尤其是在超大规模的数据中
心中,作业负载的动态性、资源需求的多样性、硬件架构的异构性等导致性能干扰复杂性剧增.为降低复杂的
性能干扰,混部集群管理系统必须能够协调集群层的作业调度和节点层的资源管理,实现性能干扰的分层控制.
集群层的作业调度,即决策作业运行的具体位置(具体某个服务器).混部作业调度是一个复杂的多目标优化问
题,既需要兼顾集群的负载均衡、整体吞吐率、资源公平性等目标,又需要特别考虑性能干扰的影响,根据性能
干扰的变化随时调整调度策略;节点层的资源管理,即利用资源隔离技术根据性能干扰变化动态调整运行作业
的资源供给.因此,集群层的作业调度和节点层的资源管理成为降低和控制性能干扰、提升资源利用率的重要
手段.
本文首先分析了在离线作业的特征,深入探讨了在离线作业在混合部署中竞争共享资源带来的性能干扰
及作业调度和资源管理问题,就作业性能干扰模型、集群层面的混部作业调度以及节点层面的资源管理等关键
技术进行了详细介绍和分析,并结合 4 个系统实例探讨了在离线混部关键技术在产业界的实现及其效果,最后
就未来的研究方向进行了讨论和展望.
1 概 述
本节分析了在线作业和离线作业的各自特点,并探讨了在离线混部集群管理上所面临的主要问题与挑战.
1.1 在线作业与离线作业
在线作业.在线作业通常是处理用户请求的服务,典型的在线作业有网页搜索、即时通信、语音识别、流
式计算、电子商务、流媒体等,通常可为企业带来直接的经济利益.在线作业具有如下特点.
(1) 运行时间长.在线作业通常以服务的形态持续运行,以请求(request)为单位触发计算任务.例如,网页搜
索服务、数据库服务、社交网络服务等 [16,17] ,运行往往持续数周甚至数月,因此在线作业也被称为长服
务(long runing service) [18] .