Page 136 - 《软件学报》2020年第10期
P. 136

3112                                  Journal of Software  软件学报 Vol.31, No.10, October 2020

         IPC 的大小动态调控在线作业和离线作业的 CPU 时间比例,以达到 LC 作业 QoS 和整体资源利用率最大化的
         目的.实验结果表明,BubbleFlux 管理下的资源利用率比 Bubble Up            [14] 提升了 2.2 倍.但是,BubbleFlux 仅能管理
         CPU 资源,无法处理其他资源上的资源竞争.
             文献[74]提出了 PerfIso 资源管理系统.PerfIso 管理了两类资源以消减干扰:CPU 和磁盘 I/O.在 CPU 的动态
         分配中,PerfIso 通过保持系统中持续存在空闲的核以处理在线作业的突发流量;在磁盘 I/O 的隔离上,PerfIso 采
         用的策略是使用 Defict-weighted round-robin 算法动态调整优先级,该算法的基本思想是磁盘 I/O 越多的作业优
         先级越低.在实验中,作者将 Bing 搜索服务和离线作业进行了混部,在 PerfIso 的管理下 CPU 使用率最多提升到
         47%左右.但是该方法的局限性在于:使用隔离 CPU 和预留资源的方法会使系统中永远存在空闲状态的 CPU,
         进而限制了 CPU 使用率的上限.
             随着强化学习的发展,也有研究人员将强化学习应用于资源动态分配算法.文献[76]使用强化学习算法动
         态调整作业的 CPU 配额和 CPU 的频率.强化学习的优势在于无需人为制定规则,算法会根据预先指定的 reward
         函数学习出最佳的策略,结合深度神经网络有着强大的学习能力.其局限性在于:(1)  算法需要的训练时间长;(2)
         神经网络的黑盒性导致算法不易调优;(3)  有限的 Action 空间难以应对复杂多变的云计算环境.

         3    系统实例

             提升集群利用率有利于降低企业数据中心的 TCO(total cost of  ownership,总体拥有成本),大幅度提升数据
         中心的成本效率.因此,在离线混部集群管理系统成为工业界关注的重点领域.国外方面,Google 在其集群管理
                                            [9]
         系统 Borg 中率先尝试了大规模在离线混部 .国内方面,互联网公司百度、腾讯、阿里均在混部集群管理系统
         上有所实践,并开源了相应的数据集             [78,79] .本节就 4 个混部系统实例进行对比分析.
             表 5 列举并对比了 Google(Borg)、阿里(Fuxi&Sigma)、百度(Matrix)、腾讯(YARD)的在离线混部作业管理
         系统.其中,“−”表示现有公开数据中无相关描述.可以看到:
             在性能干扰模型方面,4 个系统实例均未将性能干扰模型应用于大规模实践.本文认为造成这一现状的原
         因为:上述 4 个混部系统实例均进行了大规模部署,运行了海量的在线作业和离线作业,为这些作业构建精准的
         性能干扰模型所需计算开销过高.虽然性能干扰模型在 Borg 的公开文档中并未提及,但其大规模作业混部环境
         支撑了多个性能干扰模型的研究,如文献[14,35].
                                    Table 5    Comparisons of co-location systems
                                           表 5   混部系统实例对比
                                    [9]
              名称           Borg(Google)       Matrix(百度) [80]  Fuxi&Sigma(阿里巴巴) [50,81]  YARD(腾讯) [82]
           性能干扰模型           文献[14,35]              −                  −                 −
            在离线混部          Borg 统一调度          LC 作业:Sorlaria     LC 作业:Sigma       YARD 统一调度
            作业调度                             BE 作业:Normandy       BE 作业:Fuxi
                                            容器技术/CPU 抢占式 容器技术/CAT/超线程隔离/CPU 容器技术/CPU 抢占
           资源隔离技术  容器技术/CAT/CPU 抢占式调度
                                                 调度          抢占式调度/网络 IO/磁盘 IO        式调度
                                             Kill 离线作业/调整    弹性内存/Kill 离线作业/调整
           资源动态分配 Kill 离线作业/调整离线作业资源                                                    −
                                              离线作业资源             离线作业资源
            运行效果     集群规模压缩为原有集群的 35%        节省数万台服务器             CPU:38% [83]       CPU:45%
             在在离线混部作业调度方面,Google 的 Borg(如图 5 左所示)和腾讯的 YARD 采用了统一调度的架构,即在
         线作业和离线作业由一个调度器统一调度,而百度 Matrix 和阿里 Fuxi&Sigma(如图 5 右所示)则采用了在线离
         线分离调度的方式,即在离线作业由各自的调度器调度(Sigma 和 Fuxi 分别为阿里内部原有的在线和离线作业
         管理系统,Sorlaria 和 Normandy 分别为百度内部原有的在线和离线作业管理系统).在离线分离调度的架构复用
         了原有系统的代码,减少了工程实现的复杂度,但也存在着一定的局限性:(1)  在离线作业调度器以及底层资源
         管理器信息不共享,需要引入额外的组件进行在离线资源的协调(如 Fuxi&Sigma 中的 Level-0)                     [25] ;(2)  系统架构
         较统一调度更为复杂,每个节点至少运行了 3 个 Agent,带来了额外的资源开销.从调度算法来看,Borg 和 Sigma
         采用了基于打分规则的调度算法,打分规则包括:根据负载高低打分、根据资源碎片量打分、根据作业优先级
   131   132   133   134   135   136   137   138   139   140   141