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

王康瑾  等:在离线混部作业调度与资源管理技术研究综述                                                      3109


                 所示),将不同的作业绑定在不同的 CPU 上运行.但是作业独占 CPU 的部署方式会导致较低的 CPU 利
                 用率,进一步提升 CPU 利用率须运行更多的作业并在多个作业间共享 CPU.Linux CGroup 提供了 CPU
                 Share 和 CPU Quota 机制,可通过操作系统的进程调度机制限制作业单位时间内可使用的 CPU 时间片
                 长度;CPU 上的优先级划分则表现为进程优先级(如进程的 Nice 值),文献[53−55]在进程调度中增加了
                 抢占机制,即在线作业可抢占离线作业的 CPU 时间片,增强了在线作业与离线作业共享 CPU 时的抗干
                 扰性.
             (2)  网络带宽资源.网络带宽资源作为互联网基础设施中的核心资源,被在线和离线作业高度依赖.在线作
                 业需要通过网络接收用户请求,处理完成后再通过网络将结果发送给用户,因此网络带宽竞争会引起
                 在线作业发送网络包时排队时间的上升,进而影响在线作业的服务质量;离线作业在处理数据前首先
                 需要通过网络读取大量数据,如 MapReduce 作业需要从远端 HDFS 读取数据.因此,离线作业会在网络
                 带宽上产生资源竞争.在 MapReduce 与 Memcached 的混部实验中,MapReduce 在数据读取阶段所产生
                 的网络带宽竞争会使 Memcached 的延迟上升 83 倍          [56] .网络带宽资源隔离目前存在两种方法:(a)  带宽
                 划分,即为每个作业设定最大网络带宽限制以防止作业过度使用网络带宽而引起过度的资源竞争,采
                 用这种方法的有文献[57−59];(b)  网络包优先级划分,网络包优先级划分方法的主要思想是高优先级
                 作业发送的网络包可以直接越过低优先级作业的发送队列,可有效减少高优先级作业网络包的排队
                 时长,如文献[55,60−62].
             (3)  磁盘 I/O 带宽资源.Linux CGroup 提供了作业级别的磁盘 I/O 控制,可限制作业的最大磁盘 I/O 带宽使
                 用量.















                  Fig.3    Classical multi-cores memory architecuture and recent Intel CPU microarchitecutre [63]
                             图 3   经典多核存储体系结构与 Intel CascadeLake 微架构       [63]

             硬件层的资源隔离技术通过软硬件协同技术从协调多个作业在硬件资源上的竞争,减缓甚至消除多个作
         业在硬件资源上的相互干扰.目前硬件层的资源隔离技术涉及的资源包括:
             (1)  内存通道.内存通道(memory channel)是竞争激烈的共享资源之一,对作业的性能影响巨大                      [64−66] .目前
                 数据中心中所使用的微架构通常采用了多通道设计,如图 3(右)所示的 Intel Cascade Lake 架构采用了
                 6 通道设计,可同时支持 6 个 CPU 独立地访问内存.多个 CPU 在单个内存通道上的访问过程可用排队
                 模型描述,单次内存访问请求的完成时间 T mem_req =T Queue +T R/W ,其中,T Queue 代表请求在等待内存通道的
                 排队时间,T R/W 代表内存的存取时间,通常为定值;排队时间 T Queue 则取决于队列长度,即队列中位于该
                 请求之前的请求个数.因此,当一个作业占用过多的内存带宽时,会使同一时段内其他作业的访存请求
                 的排队时间变长,从而产生性能干扰.在冯诺依曼体系结构中,内存作为核心资源,被所有程序所依赖,
                 因此从 CPU 到内存的内存带宽资源对程序至关重要.但对于内存带宽上的干扰隔离目前的硬件缺乏
                 相应的机制,因此,文献[67]提出了一种基于反馈机制的内存带宽保留技术 MemGuard,将内存带宽区
                 分为在线作业和离线作业两部分,使用中断机制控制作业访存请求的发送速率,进而间接控制内存带
                 宽.但是该方法的局限性在于其只能控制单个 CPU 核心的带宽,对于共享 CPU 的作业则不适用.文献
   128   129   130   131   132   133   134   135   136   137   138