文摘
最近的研究和生产环境部署更多容器技术为HPC应用程序的执行和繁殖科学工作流或计算环境。研究作品,然而,没有占性能干扰在科力远执行应用程序时在容器虽然缺乏一个有效的性能隔离层不能保证的情况下性能干扰在多个科力远的应用程序共享资源。在这个研究中,我们提出一个interference-aware调度方法,减轻了性能干扰问题,基于应用程序的I / O和CPU使用配置文件。该方法估计的干扰量不同对应用程序和coschedules他们之间基于估计的干扰。我们评估该方法对于Bag-of-Tasks (BOT)科学应用和科学工作流和比较我们的方法和加权平均的方法。我们的方法改善coscheduling目标科学应用程序的应用程序的性能估计干扰最少的比率。
1。介绍
由于他们的启动时间几乎为零,最小运行时开销,轻量级的特性,和每个物理主机部署密度较高1- - - - - -3),Linux容器部署高效虚拟技术解决方案的研究和生产环境,在云中4,5]。科研人员,尤其是部署容器繁殖科学工作流6和基准的虚拟机7),并提供分布式存储(8]。有效的资源分配容器的方式保证高绩效是至关重要的。相应地,绩效评估的容器Xavier et al。9,10)建立一个有效的隔离层的必要性在高性能计算环境中促进资源共享。从他们的实验Xen最好隔离容器由于非共享的操作系统(OS)表明潜在的性能干扰在科力远应用基于容器的虚拟化系统。
此外,现有容器集群经理(CCM) [11- - - - - -13)分配物理资源容器的方式最大化每个节点部署密度(3不考虑成本的性能。理想情况下,应该没有干涉科力远容器的性能;然而,由于争用共享物理资源,一个给定的应用程序的性能随coexecuted应用程序在同一物理资源。特别是,一些应用程序计算和I / O之间的交替阶段,性能干扰是最明显的在科力远应用程序时涉及多个I / O操作。估计引入的干扰通过不同的应用程序同时运行在一个给定的节点并相应地调度应用程序已成为必要时旨在最大化应用程序的性能。迄今为止的研究工作都集中在数据密集型的性能干扰和I / O密集型应用程序在传统基于管理程序的虚拟化(HPV)环境;然而,我们所知,此研究首次提出一个interference-aware调度方案操作系统虚拟化技术。
该方法采用两阶段调度策略来减轻干涉操作系统虚拟化环境。我们提议调度器安排机器人科学应用和科学工作流应用程序资源基于CPU使用率的相似性和I / O使用概要文件从coscheduled应用程序最小化干扰。在第一阶段,它使用CPU和I / O使用信息的应用程序,首先估计不同的应用程序之间的干扰,然后coschedules干扰最小的每个应用程序与另一个应用程序。在第二个阶段,应用程序使用不同的资源分配策略匹配容器资源将进一步减轻干扰。该方法使小说的贡献如下:(我)它建立的存在干扰在科力远科学应用程序的执行性能。(2)它引入了一个两阶段interference-aware调度程序在执行期间操作系统虚拟化环境减轻干扰应用程序容器。(3)它估计干扰应用程序中基于使用欧氏距离计算。(iv)它coschedules应用程序的方式减少争用相同的物理主机资源,从而最大限度地减少干扰。
本文的其余部分组织如下:部分2提出了相关工作和部分3描述了我们interference-aware调度器。节4我们解释我们的实验环境和评估结果。我们最后得出结论本文在部分5。
2。相关的工作
Interference-aware调度在虚拟化环境中仍然是一个新颖的研究领域。现有的方法调查了虚拟机(vm)的干扰;然而,很少有研究干涉操作系统Linux容器等技术目前被部署在生产环境中。
在他们的调查资源和安全隔离容器技术通过基准实验,Soltesz et al。14]证明基于容器的系统更适合的服务器类型的工作负载的两倍。这一发现加上泽维尔等人的结果。9,10)建立的前提下,对于高性能计算的科学环境,缺乏性能干扰无法保证。
在基于管理程序的环境中,interference-aware调度器等DejaVu [15)使用一个“干扰指数”来估计工作负载之间的干扰。然而,确定干扰指数需要分析的低级工作负载指标超过许多小时的耗时。同时,工作负载集群分析仅用于确定哪些应用程序需要集interference-aware调度由coscheduled应用程序没有估计引入的干扰。
TRACON [16]还预测干扰准虚拟化环境中基于I / O使用客人和本地司机域。干扰预测基于三个模型,加权平均法(个子),线性模型(LM)和非线性模型(NLM)是应用和应用程序运行时和I / O吞吐量的各种应用程序进行比较,分别。与预测的结果,输入任务coscheduled资源与应用程序的干扰。然而,这种方法只适用于虚拟机(vm)。该方法采用两阶段interference-aware调度方法首先估计使用聚类分析的应用程序之间的干扰,然后安排合适的操作系统虚拟资源的应用程序的方式减少争用,因此降低干扰。
本机容器集群经理最近广泛采用的码头工人容器(17),码头工人群(11),雇佣了一个部署管理器代理结构包括一个主机运行一群经理和其他主机运行一群代理管理每个容器集群。主机上的群经理协调和安排容器根据三(3)调度策略:装箱,传播,和随机18]。该方法增加了干扰意识到现有的集装箱码头工人群体的放置策略。
3所示。基于聚类分析Interference-Aware调度
据研究[16,19,20.),我们认为干扰的变化相对总执行时间的应用程序并发地运行应用程序的执行。我们提出一个两阶段interference-aware调度算法基于应用聚类分析在这一节中。
在第一阶段的提议interference-aware调度程序,应用程序coscheduled执行根据应用程序使用聚类分析的结果则算法。集群的应用程序后,coscheduled应用程序然后安排到合适的资源,资源调度程序的第二阶段提出调度过程。interference-aware调度显示了多个应用程序等待调度过程对容器资源调度的方式减轻干扰。
首先,使用配置文件数据的峰值CPU和I / O使用情况,应用程序集群到指定数量的集群使用则算法(21]。然后,选择应用程序之间的干扰称为目标应用程序和其他应用程序的集群计算根据干扰比率。应用程序然后coscheduled最少的干扰与选定的应用程序和执行根据用户显示的容器放置策略。每个应用程序执行在不同的集装箱在我们所有的实验。本文中列出的关键符号使用符号。
3.1。算法1:Interference-Aware调度器
算法1开始当一个新的应用程序加入队列配置信息在CPU利用率和I / O的使用((1)行)。调度器使用聚类算法则将应用程序集群。的算法则为多个分区数据集,每个包含一个独特的中心和重心。对于包含一组应用程序的队列, ,初始质心作为 ,该算法计算每个数据点和聚类质心之间的距离。
|
||||||||||||||||||||||||||||||||||
接下来,调度程序随机选择从任何应用程序集群((4)行)被称为目标应用程序和计算之间的干扰比应用程序和其他应用程序在不同的集群(线(5)- (9))。调度器选择目标应用程序的应用程序根据计算最小干扰干扰率((11)行)并比较干预比预设阈值, 。如果该比率小于阈值,然后调度程序调用资源选择方法选择合适的节点的集群((13)-(14)行)。
每一对的方法返回节点执行的应用程序容器根据他们的资源需求。然后应用程序coscheduled容器相应的节点上。否则,系统考虑其他布局策略的码头工人群根据可用的节点上的集群政策选择。
3.2。干扰检测和干扰比,
该方法集群队列中的所有应用程序集群上使用配置文件数据峰值CPU和I / O使用情况。计算之间的干扰比随机选择在其他集群应用程序和其他应用程序,我们的方法计算二维欧几里得距离所选择的应用程序 和质心的集群 和其他应用程序 和目标应用程序的重心 根据(1)。结果,一个干扰比计算根据方程(2),结果被用来选择coscheduled的执行应用程序容器资源。
3.3。算法2:资源选择方法
Interference-aware调度方法科学应用旨在最小化的性能开销由coscheduling引入应用程序特定的物理资源。因此,重要的是,在一个容器集群资源,最大限度地减少干扰的可能性被选中。第二阶段的调度方法,提出采用码头工人群体的放置策略安排容器资源的应用程序。主机上的群经理协调和安排容器根据三(3)调度策略:装箱、传播和随机的(18]。的装箱策略选择基于集装箱最多的物理资源上运行,而资源随机调度策略不考虑运行容器的数量。的传播策略另一方面,时间表应用程序运行的容器数量最少的物理资源。我们采用传播策略作为默认策略假设容器的数量反映了系统中资源争用资源。
|
||||||||||||||||||||||||||||||||||||
资源选择方法被调用时,资源调度程序查找可用节点和用户表示考虑容器放置策略。默认策略时表示传播策略是用于我们的实验中,最低的节点数量的容器返回((4)-(5)行)。另一方面,当使用装箱策略时,可用的节点数量最高的容器返回(线(8)- (9))。与随机策略,任何可用的节点返回((11)-(12)行)。该方法返回的结果执行应用程序容器的调度算法。
4所示。实验
科学应用分为Bag-of-Tasks (BOT)和科学工作流22)表示为直接无环图(DAG)。在本节中,我们描述了实验环境和建立性能干扰在科力远机器人科学工作流应用程序和操作系统虚拟化环境。然后我们比较该方法为机器人科学应用加权平均数的方法。我们实验的三(3)集装箱码头工人的放置策略群表现最好的减轻干扰机器人科学应用和科学工作流。
4.1。实验环境
我们用集装箱码头工人,一个轻量级虚拟化解决方案用于快速创建和执行的应用程序独立于程序层。集装箱码头工人的管理调度,我们部署码头工人群。我们的实验环境包含两个节点在同一个本地网络与一个节点作为码头工人群管理器节点和一个执行节点和其他节点作为一个执行节点。
我们系统的节点有一个总12 8 GB RAM和CPU核管理器节点和8 GB的RAM和4个CPU核对于其他执行节点,分别。每个服务器的机器是由可靠的Tahr操作系统。来验证我们的结果的准确性,我们部署已预装Ubuntu 14.04的集装箱图像与科学应用程序用于实验。
4.2。性能干涉Bag-of-Tasks (BOT)科学应用
我们首先验证假设性能干涉容器当科力远机器人科学应用程序使用一个演示实验。对于这个实验,我们认为科学应用与四个不同的工作负载。三(3)YCSB工作负载变化的应用程序,每一个都有不同的I / O和CPU使用率,融化,而其他应用程序的一个变体LAMMPS [23]。工作负载和I / O特性简要描述如下。
雅虎云系统基准(YCSB) [24云系统),一个基本的基准,包括一组六(6)核心工作负载定义数据密集型应用程序的运行在虚拟环境中。这些基准代表应用程序与不同I / O强度和I / O访问模式。对于这些实验,我们部署的三(3)工作负载,Update-Heavy、只读和读-修改-写工作负载由于各种I / O强度和I / O访问模式。Update-Heavy工作负载的I / O访问模式和只读工作负载采取随机读而读-修改-写工作负载的形式访问顺序I / O的应用程序读取数据库。
融化变异的分子动力学代码称为大规模原子分子大规模并行模拟器(LAMMPS) [23),用于模拟不同类型的粒子的行为。模拟3 d LJ的快速融化融化系统和访问I / O资源以最大的I / O读取丛发性的方式发生的开始和结束执行。
使用目光剖析工具(25),我们获得数据的I / O和CPU使用率仅靠上面的科学应用程序运行时,如表所示1。对于每一个特征,获得的数据表示是基于峰值为每个应用程序在执行生命周期。我们只计算两个特征,CPU和I / O,每个应用程序和执行基于他们的聚类分析。
在实验中,我们选择Update-Heavy负载作为目标应用程序和假设只有两个集装箱可以同时在同一节点上运行。因此在这个实验场景中,我们coexecute Update-Heavy负荷与只读,YCSB Read-Modify-Update工作量,融化(3500),和另一个YCSB Update-Heavy工作负载,在相同的条件下,分别。
我们现在的结果改变Update-Heavy工作负载的执行时间与其他工作负载以及科力远时吞吐量图的变化1。
图1显示了执行时间的变化Update-Heavy工作负载集群1,当coexecuted与不同的应用程序。在每次运行的执行时间YCSB Update-Heavy相比Update-Heavy的执行时间执行时独自在一个容器在物理节点上。在这个实验中,执行时间的变化是反射的性能干扰由于coscheduling与其他应用程序。
从结果,YCSB Update-Heavy负荷与只读更新相对经验最干扰的大约293秒当coexecuted同时YCSB Update-Heavy工作经验至少34秒coexecuted融化时应用程序的干扰。我们认为这些变化在执行时间争用相同的I / O资源。特别是YCSB只读工作负载需要很长时间来处理数据请求从数据库和检索所需的数据,从而增加I / O操作所花费的时间。实际上,YCSB Update-Heavy工作花更多的时间争夺I / O资源与YCSB只读共享工作负载。因此,吞吐量YCSB Update-Heavy工作量coexecuted只读工作负载时至少是由于相对较长的执行时间。验证我们的假设,有集装箱在同一物理资源间的干扰性能。结果还表明,必须估计性能coscheduling中托管的应用程序的应用程序之间的干扰。
4.3。比较该方法和加权平均法(个子
我们评估提出干扰率之间的关系和一些Bag-of-Tasks应用程序的执行时间和比较我们的结果与调度结果使用加权平均方法和noninterference-aware方法基于装箱码头工人群的调度方法。
加权平均方法(16)也使用欧氏距离来确定权重的每个应用程序根据主成分分析(PCA)。一些研究工作(16,26)使用的应用程序的工作负载特征向量之间的相似度和噪音,占冗余和相似性应用程序使用的主成分向量特征。然后使用他们的距离的倒数作为权重预测的反应。
在表2,我们提出的细节估计干扰计算方法和加权平均数的方法。估计都是基于CPU使用率和四(4)的I / O工作负载的科学应用程序执行时使用不同的参数。我们选择Update-Heavy负载作为目标应用程序并进行随后的实验。的干扰比表包含所有应用程序队列中等待计划在系统资源。从结果,应用程序集群0的干扰量最高Update-Heavy工作量。
在这个实验中,我们提交1 Update-Heavy工作量,1融化应用程序,和1只读工作负载和coexecute使用三个调度策略在三分:提出interference-aware方法,加权平均方法,发生问题的调度方法。发生问题的方法,该方法不考虑干扰,是基于码头工人群装箱策略和基于容器的最高数量选择资源在资源上运行。
在每次运行,该方法安排Update-Heavy工作量和融化在同一节点因为融化有至少0.00015与0.00052的干涉计划时只读工作负载。加权平均数方法然而时间表Update-Heavy工作量和只读工作负载在同一节点因为只读工作负载有至少0.43790与1.48595的干涉计划时融化。发生问题的调度方法不考虑干扰应用程序之间的比率也科力远Update-Heavy工作负载与只读工作负载干扰较高比率的0.00052根据我们提出的方法。
图2描述了调度结果的执行时间YCSB Update-Heavy工作负载时coexecuted与其他应用程序使用不同的调度策略。对于每个调度方法,我们获得工作流程的执行时间,YCSB Update-Heavy工作量,并比较结果。的结果,我们提出的方法的执行时间是至少732.89秒。然而,发生问题的执行时间和个子一样在1003.45秒,因为他们coexecute相同的应用程序。
个子模型预测干扰通过计算数据点之间的欧几里得距离的聚类空间和选择三个最近的数据点的倒数作为权重预测的反应。这并不能保证准确的预测时,应用程序将有高度可变的I / O强度的差异。然而,该方法保证了更精确的预测和实际的性能干扰之间的关系的应用程序,因为它基于预测干扰目标应用程序和应用程序之间的距离考虑coexecution。
4.4。Interference-Aware调度动态工作负载
在前面的情况下,该方法能够提高Update-Heavy工作负载的应用程序的执行时间执行静态工作负载。换句话说,所有的应用程序都出现在队列的调度。然而,在这一节中,我们研究的动态负载调度以来在现实场景中,任务动态到达。因此,仿真实验使用CloudSim [27),认为不同的任务每15秒的到来,在这一节中进行显示改善吞吐量的沉重的I / O任务和轻型I / O任务的提出interference-aware方法。我们修改薄云沉重的I / O任务和轻型I / O任务根据他们使用的资源。
与50000年我们开始执行任务和越来越多的提交任务的间隔15秒。我们任务工作大小从50000增加到100000的任务,任务,150000和200000两种类型的任务的任务。一旦工作到来,干扰计算和应用程序重新根据interference-aware方法。这将增加数量的任务被执行在给定的时间内由于任务计划的方式减少干扰。
因此,系统中所有应用程序的吞吐量相对高于工作的安排与no-interference-aware方法:
interference-aware方法是随机的阈值设定在0.2和吞吐量根据计算(3)作为执行任务期间完成的数量,每个执行的时间。随着工作执行具有不同特点,其吞吐量和工作执行的数量相比,使用该方法,发生问题的调度方法。
从图中的结果3,执行任务的使用方法和发生问题的方法减少吞吐量为越来越多的应用程序由于增加时间执行应用程序由于干扰和越来越多的任务的执行时间表没有由于干扰率。然而该方法略高的吞吐量由于减少时间执行的I / O减轻干扰。此外,沉重的I / O任务调度方法较低吞吐量,因为大多数的这些任务的执行时间是花费在执行I / O操作,而不是计算。这增加了包括干扰感知调度决策有助于提高应用程序的吞吐量和性能。
4.5。科学工作流应用程序的性能干扰
我们也验证干扰意识coexecuting科学工作流使用相似性的CPU和内存使用配置文件。对于这个实验,我们选择1科学工作流,蒙太奇GALFA [28),三(3)机器人应用,CFD (29日),融化,和肽(23]。我们这些应用程序集群分成三个集群基于CPU和内存使用概要文件时,应用程序与蒙太奇coexecuted GALFA如表所示3。
蒙太奇GALFA数据密集型工作流应用程序,是一个天文图像镶嵌引擎创建马赛克使用多个天文图像。摘要蒙太奇GALFA应用缩小立方体的五(5)数据平均不同数量的飞机(5、10、15、20、25)然后聚集成一个马赛克(30.以下三个主要步骤。
第二个目标应用程序是一个空气动力学的变化计算流体动力学(CFD)仿真应用程序用于二维欧拉非定常流的分析。在这个实验中,我们部署不同网格大小2 KB, 32 KB,分别和512 KB。
第三和第四个目标应用程序,融化和肽,是LAMMPS的变化。同时模拟3 d LJ的快速融化融化系统,肽模拟颗粒粒子倒和流动的2 d和3 d系统。我们反复运行coscheduled应用程序具有更短的执行时间如融化和肽应用在整个实验以保持公平。
表3描述的结果进行聚类分析的应用程序使用该方法。从分析中,应用程序分为3组。集群1最多的应用程序(15)同时集群2 7应用程序和应用程序集群0只有1,分别。我们选择蒙太奇GALFA从集群2(5)作为我们的目标应用程序并进行随后的实验。表还包含所有应用程序的干扰比在队列中等待计划系统中的资源。从结果,应用程序集群2最高数量的估计干扰蒙太奇GALFA(5架飞机)使用该方法。
图4显示了GALFA工作流应用程序的执行时间的变化,在集群2中,当coexecuted不同集群的应用程序, , ,和 ,分别。相对于的干扰比应用程序是0.00043,0.01781,1,对吗 , ,和 ,分别。的执行时间在每次运行的执行时间物理节点上执行时独自在一个容器。在这个实验中,执行时间的差异被认为是性能量干扰由于coscheduling与另一个应用程序。
的结果,经历最大约63秒的干涉与一个类似的应用程序执行时从同一集群的同时经历了至少4秒coexecuted时的干涉 。这也验证我们的假设,集装箱在同一物理资源间的干扰性能,证明我们提出的干扰比准确预测不同集群的应用程序之间的干扰。结果还表明,必须清楚地理解性能在coscheduling托管的应用程序的应用程序之间的关系。
4.6。蒙太奇的性能干扰GALFA使用不同的调度策略
在这个实验中,我们提交1蒙太奇GALFA(5架飞机)工作流,融化(3500)应用程序,和1肽(3000)应用程序和coexecute使用三个调度策略在三分:装箱,随机,提出interference-aware调度器。装箱策略选择资源基于最多的容器资源上运行,所以安排在相同的节点上的所有应用程序。随机调度程序和方法,然而,安排两个蒙太奇GALFA飞机(5)和肽(3000)在同一节点。该方法考虑了干扰应用程序之间的比例做出调度决策和选择肽(3000),0.00728与0.0181的比率融化(3500)应用程序。由于两个应用程序的执行时间的差异,融化(3500)和迭代肽(3000)应用程序运行在20分覆盖的时间跨度的蒙太奇GALFA飞机(5)执行。
图5描述了我们interference-aware调度算法的调度结果,如部分所示3。对于每个调度方法,我们获得工作流程的执行时间,蒙太奇GALFA(5层),并比较结果。的结果,我们提出的执行时间interference-aware方法和随机方法是至少2117秒里,装箱策略是最高在2177秒。这是因为装箱策略安排在相同的节点上的所有应用程序没有考虑共享资源的争用。同时从图5,我们的方法可以提高吞吐量的蒙太奇GALFA应用4.58%相对于单独执行时的吞吐量。这也表明,我们的方法可以减轻干扰。
5。结论
在本文中,我们提出一个interference-aware调度方法对机器人在不同的实验和科学工作流。对于机器人的应用程序,该方法比较的评估方法和加权均值动态工作负载而科学工作流的方法效率是评价为三个不同的容器放置策略。从各自的实验中,我们建立的事实之间存在性能干扰应用程序当coexecuted使用容器在同一节点。我们建议的方法然而减少了大量的干扰与其他方法相比。
在未来我们进一步研究不同的干扰预测方法的应用程序运行在操作系统虚拟化环境。
符号
| : | 与一组应用程序队列等待安排 |
| : | 一个应用程序在一个队列概要数据资源的使用和应用程序集群() |
| 集群()( , ): | 一个th集群包含数据点和重心 |
| : | 另一个数据点集群()选择coexecution |
| : | 集群的质心() |
| : | 之间的干扰比和 |
| 选择( , ): | 随机选择一个应用程序从一个集群 |
| CalcDist ( ): | 计算数据点之间的距离和重心 |
| CalcR ( ): | 计算两点之间的干扰 |
| SelectMin (): | 选择应用程序干扰最少的比率 |
| : | 干扰的阈值 |
| 默认值: | 用户表示容器放置策略 |
| : | 一个集群节点的节点列表 |
| : | 一个th节点从节点集群中的节点的列表 |
| : | 一个th容器节点() |
| FindNode (): | 返回可用的节点根据参数表示 |
| : | 节点与最小数量的容器 |
| : | 节点最大数量的容器 |
| : | 随机选择可用的节点。 |
的利益冲突
作者宣称没有利益冲突有关的出版。
确认
这项工作是由韩国国家研究基金会(NRF)授予由韩国政府(科技部ICT) (NRF - 2015 m3c4a7065646)。