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

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

         扰模型中的资源竞争 pressure 也是作业混部期间的平均压力.实际上,作业的运行过程中包括多个阶段                                [26] ,如
         Hadoop 作业存在 Map 阶段和 Reduce 阶段,基于深度神经网络的智能语音助手 Sirius 在处理请求的过程中存在
         解析语音-分析语音-生成回复等多个阶段               [85] .作业在不同阶段因其计算任务不同,存在着不同资源需求和性能
         敏感度.现有的性能干扰模型针对应用的整体性能特征进行建模,忽略了作业不同阶段的干扰敏感性变化,因此
         需要细粒度的性能干扰模型描述这种变化.
             研究细粒度的性能模型对于混部作业调度和资源管理具有重要意义:在作业调度阶段,基于细粒度干扰模
         型提供的丰富信息,规划不同作业阶段与阶段之间的有序混部运行,有利于减少资源竞争,降低性能干扰;对于
         混部资源管理,细粒度的性能干扰模型可提供更丰富的作业运行时资源与性能的变化信息,基于这些信息可以
         设计更为精细的资源动态算法,合理利用作业运行期间的碎片资源,进一步提高资源利用率.
         4.2   面向微服务架构的在离线混部作业调度

             随着微服务架构的发展,数据中心出现了越来越多的采用微服务架构的作业                            [86,87] .微服务提升了作业的可
         扩展性、容错性和可维护性,但是服务间的服务依赖(service dependency)使微服务作业的性能变化特点与传统
         单体作业有明显不同         [38,88,89] .在微服务架构中,单个微服务的性能下降会引起其他服务的级联性能下降
         (cascading performance degradation) [90] .例如,某在线作业包含两个微服务,分别是微服务 A 和微服务 B,微服务 A
         是用户直接访问的服务,微服务 A 在处理用户请求的过程中会调用微服务 B.如果 B 的性能下降,那么 A 等待 B
         的返回结果的时间变长,导致 A 的对于用户请求的响应时间变长.典型的级联性能下降,如:(1)  网页搜索服务                               [91] ,
         其响应时间取决于最慢的搜索节点;(2) Memcached            [92] 和 Redis [93] 等广泛使用的数据缓存系统,其性能下降会引
         起上层服务的性能下降.因此,在面向微服务架构的在离线混部作业调度算法不仅需要考虑作业在混部时产生
         的性能干扰,还需考虑性能干扰引起的级联性能下降,使得在离线混部作业调度问题更加复杂.
             面向微服务架构的在离线混部作业调度面临的挑战包括:(1)  构建端到端的请求执行路径具有挑战性.端
         到端的请求执行路径描述了请求在多个微服务之间处理和转发的过程,是请求级服务依赖关系的表示,与作业
         的具体执行逻辑相关,是上层调度器的重要数据基础.在大规模微服务集群中,仅凭专家经验或者用户提供的先
         验知识构建端到端的服务依赖关系并不可行,并且现有的分布式追踪系统仍然存在着数据读写依赖问题和通
         用性问题    [94] ,因此,如何从海量微服务运行过程中精准、高效、实时地构建端到端的请求执行路径,具有挑战
         性;(2)  构建面向微服务架构的性能干扰模型具有挑战性.首先,由于作业间的服务依赖关系,原本相互独立的性
         能干扰模型需要根据服务依赖关系进行联动;其次,需要对微服务之间的通信过程建立性能模型以反映作业性
         能的真实变化,但是通信性能受 RPC 协议、网络架构、集群负载等多方面影响,具有高度复杂性.因此,构建面向
         微服务架构的性能干扰模型具有挑战性.
             随着微服务架构的广泛使用,越来越多的应用向微服务架构迁移,研究面向微服务架构的在离线混部作业
         调度将日益重要.
         4.3   软硬件协同的内存带宽资源隔离技术
             目前,CPU 的运行速率远大于存储器的运行速率,二者性能的不匹配称为“存储墙(memory wall)”                       [95] .虽然多
         级缓存和缓存预取技术在一定程度上缓解了 CPU 和内存的性能鸿沟,但是并不能从根本上解决这一问题.在目
         前数据中心广泛采用的多核架构中,存储墙导致内存带宽成为多核架构中竞争最激烈的资源,严重影响了混部
         作业的运行效率,但是目前的操作系统和硬件技术并不能提供相应的干扰隔离技术.
             解决这一问题需要从软件和硬件两方面进行研究.硬件方面需要在内存控制器(memory controler)上进行
         改进,对每次内存访问进行标签化,进而使得内存控制器可根据标签对内存访问请求进行调度;软件层面需要研
         发相应的软件配置和动态调整不同作业内存访问的优先级.内存作为冯诺依曼体系结构中最重要且使用最为
         频繁的计算资源之一,高效隔离内存带宽上资源竞争对上层作业的性能至关重要,该方向的研究成果对进一步
         提高混部作业的运行效率具有重要意义.
   133   134   135   136   137   138   139   140   141   142   143