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

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

         较为全面的性能干扰数据所需采样时间长;(2)  由于操作系统和高级程序设计语言屏蔽了底层的硬件细节,实
         现能够在特定资源上产生特定强度干扰的干扰者需要设计人员对体系结构和高级程序设计语言具有深入的了
         解,因此设计和实现有效的干扰者具有一定的难度.
             基于历史监控数据的数据获取方法从作业运行产生的监控数据中提取出性能干扰模型所需要的数据集.
         在数据中心的运行过程中,积累了大量关于作业运行的监控数据,由于数据中心作业的动态性,作业在长期运行
         过程中会遭受不同程度的性能干扰,因此历史监控数据中蕴含着可用于构造性能干扰模型的数据.基于历史监
         控数据的数据方法具有如下优点:(1)  无需运行作业,避免了额外的资源消耗和时间开销;(2)  数据易获取;
         (3)  数据量大.但是该方法同样存在着如下局限性:(1)  灵活性差,只能获取历史监控数据中监控的资源,如需新
         增监控维度则需要重新积累历史数据;(2)  无法获取从未运行过的新作业;(3)  适用范围有限,仅适用于作业运
         行环境动态性高、资源竞争程度变化范围大的集群,而对于作业运行环境稳定的集群,如在线独占集群的部署
         策略,则由于作业运行环境缺乏足够的性能干扰而无法获得较为全面的性能干扰数据.
                               Table 2    Comparisons of performance interference models
                                           表 2   性能干扰模型对比
               名称        数据获取方法         性能指标        模型构建方法                pressure 所需数据
             BubbleUp [14]    基于干扰注入      RT        基于统计方法                   内存带宽
            BubbleFlux [35]    基于干扰注入    IPC        基于统计方法                内存带宽,作业负载
              SMiTe [42]    基于干扰注入       IPC        基于统计方法              Ruler 测量的干扰强度,
                                                                     被测试应用在特定干扰下的 IPC
             DeepDive [36]    基于历史监控数据   IPC      基于机器学习方法          CPU Halt,L1/L2/L3 Cache,BranchMiss
               CPI 2[12]    基于历史监控数据     CPI        基于统计方法                 CPU 使用量,CPI
             FECBench [31]    基于干扰注入      RT      基于机器学习方法           CPI,L2 BW,L3 BW 等 12 种资源
             文献[32,33]   基于干扰注入       作业运行时间      基于机器学习方法              L2_LinesIn rate,内存带宽
           Spread-n-share [43]    基于干扰注入   IPC      基于统计方法              IPC,共享缓存,内存带宽
              Mage [39]    基于干扰注入        MIPS     基于机器学习方法       内存,MBW,L1/L2/L3,TLB,网络带宽,磁盘带宽
              Prophet [34]    基于干扰注入   作业运行时间       基于统计方法              PCIe 带宽,GPU 内存带宽
             Kambadur [37]    基于历史监控数据   IPC        基于统计方法             CPU-cycles,CacheMiss,CPI
               Seer [38]    基于历史监控数据  QoS 违反概率    基于机器学习方法          服务请求队列长度,分布式追踪数据
             Paragon [40]    基于干扰注入      IPC      基于机器学习方法               内存,MBW,L1/L2/L3,
                                                                     TLB,网络带宽,磁盘带宽,节点性能

             获取到性能干扰数据后,进入性能干扰模型构建阶段.目前性能干扰模型的构建方法主要包括基于统计方
         法和基于机器学习两种.基于统计的方法通过数理统计求得模型中各变量的变化关系,如文献[14,35]建立了描
         述资源竞争压力(使用 reporter 测量得到)和作业性能的映射关系,称为“敏感函数(sensitive function)”;文献[43]
         使用统计模型建立了内存带宽和作业性能的变化关系;文献[37]则通过构建作业和作业之间的混部运行性能的
         二维表,通过查表的方式即可实现性能干扰的预测.基于统计方法的优点是:(1)  计算量小,模型构建和更新速度
         快;(2)  可解释性强,便于优化.但其局限性在于:(1)  模型的设计需要先验知识,构造和优化具有一定的难度;
         (2)  当数据维度增多时传统的统计方法无法适用.随着机器学习方法的发展,研究人员尝试将机器学习模型应
         用于性能干扰模型,采用了诸如随机森林回归模型                  [31] 、协同过滤算法   [39,40] 、线性回归 [32,33] 、聚类算法 [12,36] 、深
         度神经网络     [38,44] 等方法完成从作业运行时信息到作业性能的映射,基于机器学习算法建立的性能干扰模型可
         以学习到人类无法察觉的特征,并且具有良好的预测结果.缺点是:(1)  需要高质量的训练数据;(2)  缺乏可解释
         性,难以优化;(3)  在建立模型时需要较长的训练时间和计算开销.

         2.3   在离线混部作业调度
             作业调度是数据中心和云计算领域的研究热点,在离线混部作业向传统的作业调度提出了新的挑战.本节
         围绕第 1.2.2 节中总结的 3 点挑战,讨论近年来在离线混部作业调度领域的相关研究工作.
             与传统作业调度相比,在离线混部作业调度需要考虑如何放置待调度作业使得作业间的性能干扰最小,尤
         其是对在线作业的性能干扰最小.这就需要调度器从集群的所有节点中筛选出待调度作业对其上运行的在线
   125   126   127   128   129   130   131   132   133   134   135