ISCA2011第二篇文献:Virtualizing Performance Asymmetric Multi-core Systems

虚拟化非对称性的多核系统
ISCA’11, June 4–8, 2011, San Jose, California, USA.
Copyright 2011 ACM 978-1-4503-0472-6/11/06 …$10.00.
摘要
性能不对称多核由异构内核组成,它们支持相同的指令集体系结构,但具有不同的计算能力。为了最大化异步多核系统的吞吐量,操作系统负责将线程调度到不同类型的内核。然而,系统虚拟化对这种不对称多核提出了挑战,因为虚拟化对客户操作系统隐藏了物理异构性。在本文中,我们探索了非对称多核虚拟机管理程序调度器的设计空间,它不需要客户操作系统的非对称感知。所提出的调度器表征了每个虚拟核的效率,并将虚拟核映射到面积效率最高的物理核。除了整体系统吞吐量之外,我们还考虑了虚拟化非对称多核的两个重要方面:虚拟机之间的性能公平性和针对快速和慢速内核可用性变化的性能可扩展性。
我们已经在开源Xen虚拟机管理程序中实现了一个不对称感知调度器。使用具有各种特性的应用程序,我们评估了提出的调度器在没有不对称感知操作系统的情况下如何有效地提高系统吞吐量。在具有四个快核和八个慢核的12核系统上,修改后的调度器将Xen信用调度器的性能提高了40%。结果显示,即使被调度到慢速内核的虚拟机的性能降级也相对较低,并且调度器随着快速内核数量的增加而提供可扩展的性能。

1.介绍
性能不对称的多内核由不同的内核组成,这些内核支持单个ISA,但具有不同的计算能力。由于功耗已成为多核设计的一个关键限制,这种性能不对称的多内核已成为传统同构多核架构的一种节能替代方案。每种内核类型在性能、面积和功耗方面都有不同的特点。大型快速内核提供更高的性能,但比小型慢速内核消耗更多的功率。根据应用程序利用不同核心类型的不同计算能力的效率,应用程序必须使用能够最大化单位面积或功耗性能的最佳核心类型。为了提高非对称多核的面积/功率效率,操作系统必须找到线程的特征,并根据不同类型的内核对它们进行适当的调度。
然而,许多当前的服务器并不直接在物理系统上运行传统的操作系统。相反,物理系统是虚拟化的,操作系统和应用程序包含在每个虚拟机中。虚拟化提供了一种在一台物理机器上有多个虚拟机器的假象,允许整合未充分利用的系统。称为虚拟机监视器(VMM)或管理程序的软件层将虚拟处理器多路复用到物理内核。这种虚拟化已广泛应用于服务器,以降低其运营成本。此外,云计算通过支持弹性计算资源而变得越来越普及,这消除了为满足峰值需求而过度供应的需要。虚拟化以其快速部署和销毁虚拟系统以满足不断变化的需求的灵活性,被用作云计算的基本平台。此外,它对隔离虚拟系统的支持允许多个终端共享一个物理系统。
虚拟化对有效地使用异构核提出了挑战。它隐藏了内核的物理不对称,客户操作系统可以像使用同构内核一样调度线程。一个可能的解决方案是将物理不对称导出到客户操作系统。Kazempour等人为虚拟机监控程序提出了一个不对称感知调度程序,它要求客户操作系统负责将线程有效地映射到不同类型的核心。通过管理程序调度器,来宾VM请求仅支持快速核的公平分配给来宾VM。
然而,将支持非对称内核的责任委托给客户操作系统无法充分利用非对称多核的潜在吞吐量。虚拟机器在使用快核或慢核方面可能有各种特征,但是每个客户操作系统必须在没有关于其他客户虚拟机的全局知识的情况下做出调度决策。只有虚拟机管理程序可以识别虚拟机之间核心效率的相对差异,并在不同类型的核心上正确调度它们。此外,这种被动不对称感知虚拟机管理程序需要修改虚拟机管理程序的操作系统,这些操作系统并不总是可用的。
为了真正虚拟化物理资源,虚拟机管理程序必须隐藏底层核心的物理不对称,并为虚拟机创建对称核心的假象。来宾操作系统必须能够在不知道物理限制的情况下使用虚拟资源。主动不对称感知的调度器应该找到虚拟核和物理核之间的最佳映射,以最大化给定不对称多核系统的吞吐量。图1描述了被动和主动不对称感知虚拟机管理程序之间的区别。阴影部分是系统的不对称感知组件。在被动不对称感知虚拟机管理程序中,虚拟机必须使用不对称感知来宾操作系统,并且为虚拟机创建虚拟不对称CPU。在主动不对称感知虚拟机管理程序中,虚拟机仅创建虚拟对称CPU。
在这里插入图片描述
通过非对称内核的给定组合最大化系统吞吐量,并不是主动非对称感知虚拟机管理程序的唯一作用。除了整体吞吐量之外,监管者还必须考虑虚拟化非对称多核系统的两个重要方面:公平性和可扩展性。由于多个虚拟机可能共享一个物理系统,因此必须将虚拟机之间的性能干扰降至最低。这种性能隔离在虚拟化云中变得更加重要,因为云提供商必须保证服务级别协议。然而,在不对称多核中,性能和公平性之间存在着内在的冲突。为了最大限度地提高性能,只有具有高快速核心效率的虚拟机才能独占快速核心,这会损害虚拟机之间的公平性。在本文中,我们展示了系统管理人员必须能够在公平性和性能之间找到平衡,并调整虚拟机管理程序策略以实现多级公平性保证。
对于非对称多核,需要考虑的第二个方面是可用的快速核的性能可伸缩性。在虚拟化的服务器群中,可能存在各种快慢核组合的异构系统。此外,依赖于共享系统的共享者,可用的快速核心资源可能会有所不同。虚拟机必须能够利用可用的快速核来扩展其性能,以最大限度地模拟系统吞吐量。虚拟机监控程序的作用是在可用的快速内核的情况下帮助虚拟机提高性能,即使客户操作系统没有意识到内核的不对称性。
在本文中,我们探索了主动不对称感知虚拟机管理程序调度器的设计空间。所提出的调度器表征了每个虚拟核的行为,而没有来自客户操作系统或应用程序的任何输入。它将虚拟内核映射到物理内核,以最大化不对称内核的吞吐量,只在虚拟机管理程序上在线收集信息。此外,调度器可以支持多层次的公平性保证和性能可伸缩性,具有不同的快核与慢核比率。据我们所知,这是设计超级排序调度器的第一批工作之一,该调度器将虚拟机映射到非对称内核,而无需客户操作系统的任何支持。
我们已经在开源Xen虚拟机管理程序中实现了一个非对称感知调度程序,修改了默认的信用调度程序。除了I/O密集型应用程序之外,我们还使用了各种单线程和并行应用程序的混合,评估了所提出的调度器在没有不对称感知客户操作系统的情况下如何有效地提高吞吐量。我们利用对动态电压和频率缩放(DVFS)的支持,将12核处理器配置为不对称多核处理器。在本文中,我们只使用两种类型的内核,快内核和慢内核,尽管这项工作可以应用于多级不对称内核。使用各种工作负载的组合,与默认Xen调度器相比,所提出的调度器可以将吞吐量提高多达40%,与公平调度器相比,可以提高多达28%。此外,所提出的调度器随着快速核心资源的增加而提供可扩展的性能。
论文的其余部分组织如下。第2节介绍了设计支持非对称多核的虚拟机管理程序计划时需要考虑的因素。第3节描述了我们应用于Xen监理的修改细节。第4节介绍了实验结果。第5节讨论了操作系统在非对称多库和非对称感知调度方面的前期工作。第六部分总结全文。

2.虚拟化不对称多核
为了实现具有非对称核心的虚拟化的好处,一个主动的不对称感知的虚拟机监控程序必须满足以下需求。i)首先,它必须在不需要来自来宾操作系统的不对称感知的情况下最大化系统吞吐量。非对称多核的主要目标是通过为每个线程或虚拟CPU使用最佳类型的核来提高多核的面积/功率效率。ii)其次,监管程序必须考虑租户之间的公平性要求,这可能因云系统的类型而有所不同。对于具有松散公平性要求的私有云,可能只希望提高整体系统吞吐量,即使公平性有所降低。必须满足SLA的公共云可能以牺牲性能为代价,强制执行严格的公平重新限制。虚拟机监控程序必须支持这种多层次的公平要求。iii)最后,在大型云系统中,vm可以放置在具有不同快速和慢核配置的系统中。另外,可用的快速核心资源可能会受到共享该系统的其他vm的影响。由于快速核心的可用性不是固定的,VM的性能必须可扩展到可用的快速核心资源。否则,即使VM使用更快的内核,性能也不会按比例提高。
在本节中,我们将讨论如何通过表征虚拟机来最大化系统吞吐量,以及如何在不对称多核中平衡性能和公平性之间的平衡。我们还讨论了虚拟机管理程序在支持可用快速内核的可扩展性能方面的作用。

2.1最大化系统吞吐量
主动不对称感知虚拟机管理程序必须描述虚拟机的行为,并找到使用快速内核时具有高加速的虚拟机。快速内核效率是指在相同数量的慢速内核上使用快速内核的加速。具有更高快速核心效率的虚拟机必须使用快速核心来最大化整体吞吐量。为了描述虚拟机使用快速核心资源的效率,我们考虑了两个因素:IPC和利用率。
主动不对称感知调度要考虑的第一个因素是,当虚拟机可以连续使用核心资源时,虚拟CPU如何有效地使用每种核心类型。先前针对本机操作系统的几项研究使用各种指标来获取效率。最明显但最准确的方法是在快核和慢核上运行应用程序。然而,在本文中,为了以很少的开销估计效率并快速响应变化的阶段,我们直接使用每周期指令作为快速核心效率的近似表示。由于应用程序的进程间通信速率较高,因此应用程序使用快速内核的速度往往比使用慢速内核的速度更快。
调度器要考虑的第二个因素是计算能力对于应用程序的整体性能有多重要。对于计算密集型工作负载来说,它总是可以在没有任何输入/输出活动的内核上运行,快速内核的性能优势将大于输入/输出密集型工作负载,后者将大部分时间花在等待输入/输出请求的完成上。我们将利用率定义为总执行周期中的CPU执行周期部分。虚拟机管理程序通过监控虚拟CPU在每个时间间隔内使用的时钟周期来衡量利用率。
我们结合了两个因素,即进程间通信和利用率,来表示虚拟机的快速核心效率。在我们的基准测试应用中,两个因素的乘积显示出最佳的预测精度,因此在本文的其余部分,我们使用该指标来预测快速核心效率:
快速核心效率得分= IPC ×利用率
图2显示了实际测量的加速比和从快核和慢核估计的预测加速比之间的相关性。预测的加速来自于估计的快速核心效率和扩展。最大加速比是2.375,这是用于实验的快核和慢核之间的时钟频率比。详细配置见第4.1节。当虚拟机在快速内核或慢速内核上运行时,应预测快速内核效率,因此两种估计应提供一致的结果。对于调度决策,只有虚拟机的快速核心效率的相对顺序才是重要的。
在这里插入图片描述
基于IPCs的快速核心效率预测可能并不总是一个完美的指标。例如,如果具有交叉依赖性的长延迟指令支配应用程序的执行,则基于IPC的预测表现出低的快速核心效率,但是这种应用程序将具有高的测量加速。然而,考虑到可用性能监控计数器的限制,一般来说,我们的结果显示了预测加速比和实际加速比之间相对较高的相关性。探索更好的快速核心效率指标的架构支持将是我们未来的工作。
这种高度相关性表明,主动不对称感知虚拟机管理程序可以通过估计进程间通信量和利用率来有效地为虚拟机找到最具区域效率的核心类型,虚拟机管理程序无需任何来宾操作系统支持即可观察到这一点。

2.2支持多层次的公平
在非对称多核中,公平分配资源和最大化系统吞吐量之间有一个基本的平衡。为了公平地分配资源,所有线程(或虚拟化系统中的虚拟CPU)必须平等地共享快速内核。另一方面,为了最大化非对称多核的系统吞吐量,快核效率分值高的线程必须独占快核。应该仔细考虑这种权衡,因为不同的云系统对公平性的要求可能会有所不同。
传统上,公平CPU调度为每个线程分配相同数量的CPU时间。但是,这个经典定义不能应用于非对称多核系统,因为每个核类型都有不同的计算能力。让调度器公平的一种可能的方法是根据核心的类型对CPU时间赋予不同的权重。例如,如果一个快核的平均速度是慢核的两倍,那么在慢核上运行的线程必须接收比在快核上运行的线程长两倍的调度槽。但是,使用快核比使用慢核的速度因工作负载的特征而不同,这使得寻找固定的权重比变得困难。针对非对称多核问题,本文提出了一种新的公平调度方法。
公平调度程序,称为amp-fair,保证每个虚拟CPU具有相同的共享快核和慢核周期。使用amp-fair,不管核心效率如何,每个活动虚拟CPU (vCPU)总是平均分配快内核周期和慢内核周期。
然而,这种严格的公平调度策略忽略了快速内核效率,不能提供任何非对称内核的性能优势,并且实际的云系统可能不需要严格的公平。为了适应不同的公平性要求,我们定义了一个部分公平的调度器,它可以平均分配一部分快速核心周期,并通过快速核心效率来分配其余的快速核心周期。amp-R%-fair调度器将R%的快速核心周期平均分配给所有虚拟CPU,并将其余的快速核心周期分配给具有高快速核心效率分数的虚拟CPU。
图3通过不同级别的公平支持说明了三种调度策略。吞吐量最大化调度器(最大吞吐量)只考虑整体吞吐量的最大化,以更高的效率将整个快速核心镜头分配给VM1。完全公平的调度程序(b) 100%公平)将整个快速核心周期平均分配给两个虚拟机。50%公平调度器© 50%公平调度器仅将50%的快速核心周期平均分配给两个虚拟机,但剩余的50%分配给效率较高的虚拟机1。
在这里插入图片描述
使用amp-fair调度器作为完美的公平调度器,我们通过比较每个VM与运行amp-fair调度器的相同VM之间的性能降低来评估具有不对称感知的虚拟机监控程序的公平性。对于同一组VM,将使用调度器的每个VM的性能与使用amp-fair调度器的相同VM的性能进行比较。我们对公平性的度量是VMs对amp-fair调度器的最大减速,为了公平性,必须最小化这个减速。
通过一个简单的分析模型,图4展示了虚拟机之间整体吞吐量和公平性之间的权衡。如图所示,双核处理器有一个快核和一个慢核,使用快核比使用慢核的最大加速是2。有两个虚拟机,第一个虚拟机的快核效率为2.0,是处理器中最快的快核效率。x轴代表第二个虚拟机的快速核心效率,范围从1.0到2.0。我们假设快速核心效率在执行期间不变,并且系统使用完美的调度器,该调度器可以完美地预测效率并且在没有任何开销的情况下精确地调度虚拟机。该图显示了两个图表,左边的图表显示了两个虚拟机的组合吞吐量标准化为两个慢速内核的吞吐量,右边的图表显示了与100%公平调度器相比的最大减速。
在这里插入图片描述
最大吞吐量策略总是将第一个虚拟机调度到快核,将第二个虚拟机调度到慢核,因为第一个虚拟机的效率总是高于第二个虚拟机。最大吞吐量策略提供两个内核的最大吞吐量。根据该策略,即使第二个虚拟机具有各种快速核心效率,总吞吐量也始终为1.5,因为第一个虚拟机始终以2的速度运行在快速核心上,而第二个虚拟机始终以1的速度运行在慢速核心上。使用100%公平策略,如果第二个虚拟机的效率接近2.0,吞吐量将接近最大吞吐量,因为两个高效虚拟机几乎平等地共享快速核心。但是,如果第二个虚拟机的效率接近1.0,则与最大吞吐量相比,100%公平策略的吞吐量会降低16.7%。
对于最大减速,由于第二个虚拟机总是比第一个虚拟机更频繁地在慢核上运行,第二个虚拟机相对于100%公平策略的性能下降成为最大减速。如果第二个虚拟机的效率接近2.0,则最大吞吐量策略的最大减速几乎为33%。第二个虚拟机即使具有极高的效率,也总是被调度到较慢的核心,因此与100%公平的策略相比,性能会大幅下降。但是,如果第二个虚拟机的效率接近1.0,即使不公平的最大吞吐量策略也会提供接近零的最大减速。第二个虚拟机的效率为1,即使公平调度器将部分快速核心镜头分配给第二个虚拟机,虚拟机也无法提高性能。
如果两个虚拟机的快速核心效率非常高,接近最大值,那么100%公平策略与最大吞吐量策略具有相同的总吞吐量,并且支持两个虚拟机之间的100%公平。另一方面,如果一个高效VM和一个低效率VM同时运行,那么最大吞吐量策略可以提高总体吞吐量,同时将最大减速最小化,接近100%公平策略。即使采用最大吞吐量策略,也可以在不同vm的快速核心效率差别很大的情况下,保持vm之间的公平性。这一发现可能导致自适应调度器的出现,它根据vm之间的效率差异调整公平调度的百分比。自适应调度器可以动态地在公平性和吞吐量之间做出折中决策。探索这种调度器的设计空间将是我们未来的工作。
2.3性能可扩展性
在虚拟化云系统中,一个虚拟机可能为两个目标接收不同数量的快速核心资源。图5展示了这两种情况。首先,虚拟机与具有不同快速核心效率的其他共租户共享非对称核心。根据共同租户之间的相对效率或顺序,虚拟机可以获得不同份额的快速核心周期。在图的顶部,VM1仅使用一个大内核和三个小内核,但在共租户发生变化后,它会收到三个大内核和一个小内核。其次,虚拟机可能会迁移到具有不同处理器配置的其他物理系统。云系统中的处理器可能具有不同数量的快核和慢核或不同的核架构。在图的底部,VM1在一个系统中使用两个大内核和两个小内核,但在迁移到另一个系统后,它使用四个大内核。在这两种情况下,可用的快速核心资源可能会在虚拟机的生命周期内动态变化。主动不对称感知虚拟机管理程序必须支持具有快速内核的可扩展性能,因为快速内核的可用性可能会发生变化。这种性能可扩展性对于实现非对称内核的功率可扩展性也很重要。随着大内核消耗更多功率,性能也必须相应提高。
在这里插入图片描述
性能可伸缩性表示在非对称多核中增加更多的快速核是否能提高整体性能。然而,正如Balakrishnan等人讨论的,应用程序和运行系统的性能可伸缩性可能因应用程序行为和操作系统设计而有所不同。图6展示了我们的基准测试应用程序在12核系统上使用不同数量的快速核时的性能可伸缩性。y轴显示了配置中12个慢核的速度,而快核的数量不断增加。例如,f8/s4配置有8个快内核和4个慢内核。每次运行时,都会为系统中的应用程序创建一个VM。不考虑虚拟机监控程序调度的影响,虚拟机监控程序将12个虚拟cpu修复到各自的物理内核。客户操作系统不知道不对称,它在固定的虚拟cpu上调度线程。
在这里插入图片描述
如图所示,某些应用程序的性能不会随着快速内核的数量而扩展。虚线中的应用程序要么在更高的快速内核比率下扩展良好,要么即使有12个快速内核(f12/s0)时加速也很低。实线中的应用程序具有12个快速内核的高加速,但只有当所有内核都是快速内核时,才能实现高加速。对于那些采用实线的应用程序,客户操作系统没有有效地使用快速内核。当慢速内核繁忙时,客户操作系统可能允许快速内核变为空闲。它可能允许一些线程只使用快核或慢核,从而导致负载不平衡。对于线程执行紧密耦合的应用程序,例如具有静态线程分配的科学工作负载,非对称多核可能无法提供性能可扩展性。
主动不对称感知虚拟机管理程序必须提供虚拟机的可扩展性,即使客户操作系统不知道不对称。在本文中,我们将展示是什么导致了图6所示的可伸缩性问题,以及监控程序如何通过适当的快速内核调度策略来提高可伸缩性。

3.实现
在这一部分,我们描述了我们的非对称多核调度器的实现细节。我们为调度程序实现修改了开源Xen虚拟机管理程序(3.4.1版)。我们首先简要描述Xen虚拟机管理程序中的默认信用调度程序。信用调度器支持传统同构多核虚拟处理器间的公平调度。在本节的剩余部分,我们将介绍评估快速内核效率的机制,以及基于该评估的调度方案。

3.1 Xen信用调度程序
在Xen虚拟机管理程序中,默认调度程序是信用调度程序。调度程序在每个会计周期(30毫秒)将信用分配给每个虚拟中央处理器(vCPU)。在每个时钟周期(10毫秒),如果一个vCPU单元使用一个物理核,调度器减少vCPU单元的信用。信用是一个有保证的时间段,风险资本单位可以运行到下一个会计期间。如果vCPU有剩余的信用,则它的优先级under。否则,vCPU的优先级就over了。为了保证公平性,信用调度器尝试运行优先级在最低的vCPU,这些vCPU在当前会计期间有剩余的时隙。为了不浪费未使用的CPU周期(节省工作的属性),如果没有其他优先级的vCPU单元,可以调度优先级高于的vCPU单元。但是,如果一个低优先级的vCPU从睡眠状态中唤醒,它会用一个优先级提升(boost优先级)抢占当前运行的vCPU。
对于每个物理内核,都有一个按优先级排序的运行队列(boost、under、over)。如果一个核心的运行队列用完了优先级under的vCPUs,它将试图从其他运行队列中窃取优先级under的vCPUs。因此,调度程序为所有内核维护全局优先级。

3.2评估快速核心效率
该调度器通过查找所有运行的虚拟机的效率顺序来确定快速核心调度。为了估计IPC和利用率,虚拟机管理程序监控硬件性能计数器,并测量每个vCPU在一段时间间隔内的退役指令和处理器周期。基于该测量,调度器周期性地更新调度决策。调度间隔是启动新一轮采样和调度的周期性时间间隔,发生在调度间隔内的采样速率是调度器收集样本数据的时间。我们成功地将采样窗口配置为2秒,将调度间隔配置为2.5秒。对于每个调度间隔,性能计数器被监视2秒钟,下一轮新的调度为剩下的0.5秒做好准备。虽然我们评估了较短的采样周期和调度间隔,但它们在系统吞吐量上没有显示出有意义的差异。虽然对于一些行为快速变化的应用程序来说,较短的时间间隔可能是必要的,但我们的基准应用程序不需要如此短的时间间隔。
我们使用一个简单的方案来防止IPCs的剧烈变化影响调度决策。在每个采样周期结束时,调度程序检查前一个IPC和当前采样窗口中测量的IPC之间的差异。如果差异大于阈值,则下一轮调度的效率不会用新测量的IPC进行更新。只有当新测量的IPC在当前IPC的阈值范围内,或者IPC在两个连续的调度间隔内变化稳定时,新IPC才会替换当前IPC。我们根据经验将阈值设置为15%。我们估计利用率和效率的方法不需要修改客户操作系统或应用程序。测量IPC和利用率的开销可以忽略不计,我们的应用程序的速度下降不到0.05%。

3.3调度不对称多核
使用效率分数的相对顺序,调度器将vm分配给快核或慢核。我们研究了为虚拟机设置快速核心效率评分的两种可能策略:按VM (amp-vm)评分和按vCPU评分(amp-vcpu)评分。在amp-vm策略下,一个虚拟机中的所有vCPU具有相同的快速核心效率,而在amp-vcpu策略下,即使在同一个虚拟机中,每个vCPU也可能根据每个vCPU的效率对不同的cpu进行重复。对于具有单个vCPU的VM,这两种策略具有相同的效果。
第一个策略,amp-vm,是为每个虚拟机分配一个快速核心效率,它是通过平均虚拟机所有活动虚拟CPU的快速核心效率得分来计算的。如果虚拟CPU处于睡眠状态,则不包括该虚拟CPU来计算调度间隔内虚拟机的分数。该策略背后的基本原理是,许多并行工作负载中的线程表现出相似的行为,并且每个虚拟机通常运行一个应用程序。如果用户需要运行不同的应用程序,他们通常会创建单独的虚拟机。此外,运行在虚拟机上的客户操作系统也通过线程调度改变应用线程和虚拟处理器之间的映射。通过平均所有活动虚拟机的快速核心效率,虚拟机的效率可以避免不必要的波动,这可能会导致不必要的调度更改。如果虚拟机的虚拟处理器被分配给快核和慢核的混合,虚拟机中的每个虚拟处理器将以循环方式被调度给快核和慢核,具有相同份额的快核插槽。该功能对于支持非对称多核的性能可扩展性非常重要。
第二个策略叫做amp-vcpu,是使用per-vCPU效率进行调度。在策略中,虚拟机管理程序不考虑每个vCPU所属的虚拟机。如果虚拟机的线程具有不同的快速内核效率,则此策略可能会比amp-vm带来更好的吞吐量。然而,为了使这个策略有效,对于一些调度间隔,vCPU的异构行为必须是稳定的。然而,在间隔期间,客户操作系统可能改变应用程序线程和虚拟CPU之间的映射。如果虚拟机内部的线程调度发生变化,则使用amp-vcpu时,虚拟机管理程序的预测可能不正确。
对于amp-vm和amp-vcpu策略,快速内核由vCPUs的效率得分来调度,从最高到最低。如果所有的快核都被调度了,剩下的vCPUs就用慢核。当慢速内核有活动的vCPU运行时,它从不允许快速内核空闲(快速内核保守属性)。对于amp-R%-fair策略,调度器将一部分快速核心信用平均分配给所有vCPU。对于Xen信用调度器的每一轮调度,总的快速核心信用的R%被平均分配给所有的vCPU。每个vCPU单元都有权在相同数量的时隙内使用一个快速内核。在所有的vCPUs消耗完分配的快速核心信用(占快速核心信用总数的R%)后,剩余的一轮快速核心信用按照快速核心效率顺序分配给vCPUs,方式与amp-vm和amp-vcpu相同。

4.评估
4.1方法
目标系统有一个12核AMD Opteron 6168 处理器。处理器由两个die组成,每个die有6个内核,共享6MB的L3缓存。每个内核有单独的64KB的指令和数据L1缓存,和512KB的私有 L2缓存。为了模拟非对称多核的性能,我们使用动态电压和频率缩放(DVFS)来改变时钟频率。在之前的工作中,DVFS已经成为在真实硬件系统中模拟非对称核心的标准技术。我们将内核配置为两种类型,快内核和慢内核,它们的时钟频率比为2.375:1。快核型配置1.9 GHz时钟频率,慢核型配置0.8GHz时钟频率。由于目标系统为12个核提供了一个套接字(socket通讯接口),因此它没有任何NUMA影响(NUMA(Non Uniform Memory Access)非同一内存访问),因此跨共享L3缓存调度线程的开销相对较低。我们修改了Xen管理程序(版本3.4.1),支持不对称调度。除了利用硬件性能监控计数器估计快速核心效率的机制外,我们还添加了amp-fair、amp-vm、amp-vcpu和amp-R%-fair策略。对于每个虚拟机,准虚拟化的linux-2.6.31.13内核被用作客户操作系统。客户操作系统没有针对不对称感知进行修改。
我们使用具有各种特性的应用程序,代表I/O密集型工作负载(sysbench)、服务器应用程序(apache和specjbb2k)、单线程应用程序(SPECCPU2006)和并行应用程序(pmake和PAR-SEC [3])。对于pmake、SPEC CPU 2006和PARSEC应用程序,执行时间用作性能指标。对于服务器和输入/输出工作负载,事务吞吐量用作指标。对于SPECCPU 2006应用程序,我们使用参考输入集,对于
PARSEC,我们使用本机输入集。
我们将应用程序分为三类,低(L)、中(M)和高(H)加速应用程序。表1展示了使用分类的各种应用组合。括号中的数字是应用程序使用的vCPUs数量。我们为虚拟化系统设置了三种执行场景。第一种情况由具有单个vCPU单元的虚拟机组成,来宾虚拟机中vCPU单元的总数等于物理内核的数量(单个vCPU单元,非过度使用)。第二种情况由每个虚拟机有多个vCPUs单元的虚拟机组成,vCPU单元也是非过度承诺的(多vCPU单元,非过度使用)。对于这两种未过度承诺的情况,来宾虚拟机使用的vCPUs总数为12。最后一种情况由每个虚拟机有多个vCPUs的虚拟机组成,但来宾虚拟机使用的vCPUs数量是物理内核的两倍(多vCPUs,过量使用)。
在这里插入图片描述
4.2性能
在本节中,我们评估了采用amp-vm和amp-vcpu策略的预设调度程序的性能。作为性能的下限和上限,我们还展示了所有慢速和快速内核配置的性能。图7、图8、图10展示了各种配置的加速比,这些加速比被标准化为amp-fair调度器的性能。在目标系统的十二个可用内核中,四个内核配置为快速内核,八个内核配置为慢速内核。
在这里插入图片描述
图7展示了在single-vCPU和非过度使用情况下各种调度器的加速。y轴显示公平调度器上的加速,水平虚线表示公平调度器。对于每种混合,除了混合的平均速度外,我们还分别显示了高、中、低效率vm的平均速度。
在结果中,前两种混合(4H-4M-4L和2H-6M-4L)中的高效虚拟机显示出接近全快核配置的加速比。对于这两种混合,高效率虚拟机的4个和2个虚拟处理器总是可以调度到快速内核。在第三种组合(6H-2M-4L)中,只有四个高效虚拟机的虚拟处理器可以使用快速内核,从而降低了高效虚拟机的平均加速。不出所料,低效率虚拟机的性能略低于公平调度器,因为它们接收的快速核心插槽不如公平调度器多。最后一个组合(8M-4L)展示了不对称感知调度器无法提高性能的情况,因为所有虚拟机的快速核心效率都很低。正如预期的那样,不对称感知调度带来的性能增益很小(不到1%)。然而,即使采用全快核配置,平均加速也只有17%,因为它们的快核效率较低。即使是混合,amp-vm的性能也和amp-fair调度器一样高。
Xen信用调度器显示出比公平调度器更低的性能。Xen默认调度程序不知道不对称,可能会将快速内核完全分配给低效率虚拟机,甚至可能在慢速内核繁忙时使快速内核空闲。与amp-fair相比,Xen 调度器的性能在图10所示的超量承诺运行中有所提高,因为在超量承诺运行中,所有内核在大多数时间都保持忙碌,因此快速内核很少空闲。
在这里插入图片描述
图8展示了多vCPUS和非过度使用运行的加速。整体性能趋势与单vCPU运行的趋势相似。对于前两种混合,高效虚拟机(混合1中的freqmine和混合2中的交换选项)实现了显著的加速,比公平调度器快40-45%。对于mix-3 (1M-2L),pmake有20%的适度加速,因为快速内核效率对于虚拟机来说不是很高。对于2H-1M mix,有两个高加速应用程序,但两个应用程序中只有一个被选择用于快速内核。在这种组合中,效率更高的应用程序(swaptions)比另一个应用程序(freqmine)获得更快的内核。
在这里插入图片描述
为了显示amp-fair和amp-vm之间的调度差异,图9显示了在运行时1H-1M-1L混合情况下的CPU使用情况。y轴是一个VM的CPU总使用量,最多4个内核,x轴显示时间轴。左边的三个图显示了公平调度器的结果,右边的三个图显示了amp-vm调度器的结果。对于amp-fair,随着时间的推移,所有协同运行的vm使用的快速核心插槽数量几乎相同。Canneal经常在串行执行阶段使用一个快速核心。请注意,我们运行canneal三次,以使共同运行的vm以相对相似的执行时间完成,因此canneal三次显示这样的串行阶段。与amp-fair策略相比,amp-vm策略清楚地表明,效率较高的应用程序独占快速的内核,而效率较低的应用程序则连续运行在慢速的内核上。然而,即使使用amp-vm, pmake偶尔也会使用快速内核,或者freqmine的可用并行性在四个线程之间下降,或者pmake的效率暂时高于freqmine。
在这里插入图片描述
图10显示了多vCPU和过度使用运行的加速。当vCPU被过量使用时,与未被过量使用的运行相比(平均10%),不对称感知调度器可以获得比公平调度器更好的性能提升。它表明,当要调度的vCPUs数量超过物理内核数量时,不对称感知调度器的重要性就会增加。在高度整合的虚拟化系统中,这种vCPU的过度使用很常见。在第一个组合(1H-3M-2L)中,高效虚拟机的性能提升几乎接近全快核配置。有趣的是,低效率工作负载也显示出一些加速,因为它们可以使用比amp-fair更快的核心周期,因为高、中效率虚拟机比公平调度器完成得更早。
在这里插入图片描述
除了1H-3M-2L混合之外,amp-vm和amp-vcpu的性能几乎相同。对于1H-3M-2L, amp-vcpu策略与amp-vm相比性能有显著下降。这是因为,由于我们的目标系统在处理器上有两个L3缓存,amp-vcpu策略可能会导致在上一级缓存上进行大量vCPU迁移。通过混合,在amp-vcpu中,跨最后一级缓存的迁移总数是amp-vm中的5.6倍。对于其他三种混合,使用amp-vcpu的最后一级缓存的vCPU迁移率仅比使用amp-vm的缓存高1.1-1.2倍。虽然amp-vcpu可能能够区分同一个VM的不同vCPU的快速核心效率,但这可能会不必要地增加vCPU到不同物理核心的迁移,通常是跨上一级缓存。
性能结果表明,主动不对称感知虚拟机管理程序只能通过监控每个虚拟机或虚拟存储单元的性能计数器来跟踪虚拟机的快速核心效率。没有客户操作系统的任何支持,虚拟机管理程序可以从给定的不对称多核处理器中实现潜在的性能提升。

4.3公平
公平调度器试图为所有虚拟CPU平均分配快核和慢核,而不管虚拟机的行为如何。在本节中,我们将评估主动不对称感知虚拟机管理程序与公平调度程序相比能够支持多少公平性。表2显示了我们的应用程序相对于公平调度程序的最大减速。对于每个混合,每个虚拟机的性能都与具有公平调度器的同一个虚拟机的性能进行比较。该表显示了降级最高的虚拟机的性能下降。如表中所示,建议的amp-vm和amp-vcpu调度器不会显著破坏虚拟机之间的公平性。对于多vCPU混合,两个混合显示4.2%和7.8%的最大减速。除了两种混合,最大减速小于3%。单虚电路单元工作负载的最大速度慢于多虚电路单元混合工作负载。对于8M-4L混合物,最差的降解率为13.9%。如第2.2节所述,当高效虚拟机数量超过快速内核
的运行能力时,amp-vm调度程序会增加最大减速。
在这里插入图片描述
amp-vm和amp-vcpu策略将快速内核分配给高效虚拟机,不考虑虚拟机之间的任何公平性。即使采用这种不公平的策略,相对于公平调度器的性能降级也相对较低,原因有二。首先,计划降低内核速度的虚拟机效率很低。因此,即使公平调度器将一些快速核心周期分配给低效率虚拟机,性能增益也很低。其次,即使是低效率的虚拟机在执行期间也会使用一些快速的核心周期,因为高效虚拟机的一些虚拟处理器通常可能还没有准备好执行。
图11展示了不同公平调度时隙的性能趋势。性能被标准化为amp-fair。每一栏都是调度策略下的平均加速,每一栏的误差范围表示最大加速和减速之间的差异。该图清楚地显示了性能和公平性之间的权衡。随着公平调度部分的增加,每个混合的平均性能略有下降,最大加速比的下降速度快于平均加速比。同时,最大减速减小,接近完全公平调度。
在这里插入图片描述
总之,即使不考虑amp-vm和amp-vcpu中的公平性,除了少数情况外,最大减速也是最小的。但是,如果云提供商需要严格的公平策略,虚拟机管理程序可以以整体吞吐量为代价支持部分公平的调度。如第2.2节所述,公平调度的最佳百分比取决于共同运行的虚拟机的快速核心效率的差异。在本文中,我们评估了静态公平调度比率的效果,但动态调整公平调度比率以满足公平要求将是我们未来的工作。

4.4可扩展性
如第3.3节所述,对于某些并行应用,如果快核和慢核混合使用,非对称多核可能无法提供可扩展的性能。在本节中,我们将研究让虚拟机管理程序了解不对称是否可以缓解可扩展性问题。在我们的基准测试中的并行应用程序中,我们用4个在第3.3节中显示低可伸缩性的应用程序来评估我们的调度程序的可伸缩性:blackscholes、freqmine、x264和swpations。
图12显示了12核系统中增加快速内核数量的加速情况。对于这些结果,系统中仅使用一个来宾虚拟机。对于每个调度程序和应用程序来说,加速都正常化为全慢核配置。如第3.3节所述,在固定配置中,虚拟机管理程序修复了虚拟处理器和物理内核之间的映射。调度完全依赖于客户操作系统,客户操作系统不知道非对称内核。我们还测量了Xen信用调度器的可伸缩性。信用调度器的可伸缩性与固定配置一样低。在这两种情况下,来宾操作系统和虚拟机管理程序都不知道不对称。
在这里插入图片描述
公平调度器和两个不对称感知调度器提供了比信用调度器和固定配置更好的可伸缩性。这三个具有高可伸缩性的调度器在将vcpu调度到非对称核时维护了两条规则。首先,当慢核有活动的vcpu运行时,快核不会变成空闲的。其次,同一个虚拟机中的每个vCPU获得相同的快速核心周期份额。通过在同一个VM中为vcpu均匀地分配快内核和慢内核,即使慢内核中的一个线程滞后于其他线程,该线程将能够在稍后获得一些快内核周期的共享时赶上来。与amp-fair相比,amp-vm和amp-vcpu的可伸缩性略好一些,这在blackscholes中最为明显。amp-vcpu与amp-vm表现出类似的行为,因为在这四个应用程序中,VM中所有vcpu的行为都是类似的。
我们还评估了系统中运行多个虚拟机的非对称多核的可扩展性。对于可伸缩性评估,我们使用来自多vCPU和非过度承诺运行的四个应用混合。图13显示了固定配置和amp-vm配置的可扩展性。对于固定和amp-vm配置,当快速内核数量较少时,效率最高的vm首先开始提高其性能。随着快速内核数量超过六个,第二高效率虚拟机也显示出显著的加速。与固定配置相比,amp-vm通过多个虚拟机提供了更高的可扩展性。随着快速内核数量从f0/s12配置增加,amp-vm首先选择高效虚拟机,并将其安排在快速内核上。
在这里插入图片描述
图14显示了amp-vm的加速,与amp-fair相比,快速内核的数量不断增加。对于每个快速和慢速内核组合,具有amp-vm的虚拟机的性能被标准化为该组合具有amp-fair的性能。当处理器拥有所有慢速或快速内核(f0/s12或f12/s0)时,两种策略的性能几乎相同。然而,对于两个、四个和六个快速内核,效率最高的freqmine利用了快速内核的优势。随着更多的快速内核可用,amp-fair和amp-vm之间的差异迅速减小,因为即使是fair调度器也可以为大多数vCPUs调度快速内核。
本节中的结果表明,确保性能可扩展性以及高系统吞吐量和公平性非常重要。如果没有对可扩展性的支持,虚拟机即使可以在快速内核上运行其虚拟处理器的子集,也可能无法利用快速内核的计算能力。在多个虚拟机共享一个物理系统的虚拟化云系统中,虚拟机可用的快速核心共享可能会不断变化。在这种情况下,对可扩展性的支持对于不浪费昂贵的快速内核至关重要。

5.相关著作
提出了性能不对称多核方案,以提高多核方案的功率效率和面积效率。Kumar等人指出,非对称多核可以成为传统对称多核的节能替代方案,并使用单线程应用程序评估潜在的节能效果。他们对多编程工作负载的扩展研究表明,在区域相同的情况下,非对称多核能够提供比对称多核更高的性能。Balakrishnan等人评估了不同商业工作负载下的非对称多核的影响。他们研究了不对称多核的性能变化和可持续性问题。它们表明,一些应用程序需要内核支持或应用程序重组,以减少可变性和提高可伸缩性。在本文中,我们将研究虚拟化如何在不使用不对称操作系统的情况下提高可伸缩性。
非对称多核提高的面积效率导致了功率效率的提高,因为更简单的小内核通常比更复杂的大内核消耗更少的功率。然而,只有当操作系统能够将线程分配给最佳类型的内核,最大化每个内核的性能功耗比时,不对称多核才能实现能效。为了选择用于快速内核的线程,Kumar等人使用了与慢速内核相比使用快速内核的加速。为了计算加速度量,他们的方法需要在快核和慢核上运行一个线程。HASS没有通过测量快核和慢核上的IPCs来使用直接加速,而是使用代表应用程序特征的离线信息。对于每个应用程序,显示应用程序缓存行为的签名是通过离线测量创建的。通过与每个应用程序相关联的签名,知道系统缓存大小的操作系统可以估计应用程序的快速内核加速。偏差调度将线程分为小内核偏差或大内核偏差,并根据估计的偏差调度线程。偏差表示每个线程的性能在多大程度上取决于核心能力。为了估计线程的偏差,他们使用末级缓存未命中和前端停滞作为快速内核加速的指标。
使用非对称多核的另一个方面是根据线程的可用并行性来调度线程。与串行应用程序相比,高并行级应用程序可以更有效地使用许多小内核。Fedorava等人讨论了调度非对称核心的并行感知。他们提出了调度策略,以更少的并行性分配快速的核心周期给应用程序,以快速完成串行阶段。Saez等人提出了一个新的度量,它结合了单线程应用的快速核心加速度量和并行性感知。但是,与本机操作系统相比,并行感知可能对管理程序产生不同的影响。对于按需计算云,用户可以为每个虚拟核付费。如果将并行性感知添加到监管调度器中,如果在同一个系统上运行的虚拟机较少,那么具有许多虚拟核的昂贵虚拟机将被调度为运行速度较慢的虚拟机。为了避免这种异常,我们在此工作中不使用并行性感知。
Li等探索非对称多核公平调度器的设计空间。他们的设计侧重于提高调度器的公平性,并且还考虑了内存层次结构中的不均匀性,以估计快核和慢核之间重新映射的成本。基于年龄的调度提高了线程间负载不平衡的并行应用的吞吐量。它为成为性能瓶颈的线程分配快速核心线程。Li等将单ISA不对称性扩展到重叠ISA支持。内核共享基本的指令集体系结构,但每种内核类型都可能有专门的单元来支持不同的指令。它们展示了操作系统如何高效地支持这种不对称内核。Kazempour等人提出了一种虚拟机管理程序的不对称感知调度器,其重点是在竞争虚拟机之间公平使用快速内核。虚拟机管理程序并不试图衡量虚拟核心的快速核心效率,但是客户操作系统必须做出调度决策,以高效地使用非对称核心。来宾虚拟机有快内核和慢内核,虚拟机管理程序的作用仅限于向所有请求快内核的虚拟机公平地提供快内核周期。

6.结论
在本文中,我们提出了一个监管调度器,它可以在不对称多核中调度虚拟机,而不需要来自客户操作系统的任何支持。通过使用一种简单的近似方法来估计基于指令吞吐量和CPU利用率的加速速度,主动感知不对称的监控程序可以识别虚拟机的特征,并将快速内核分配给能够最大限度提高吞吐量的vm。当共享系统的虚拟机在其快速核心效率方面表现出巨大差异时,调度程序的公平性与非对称感知的公平调度程序的公平性接近。我们还展示了,如果没有操作系统和管理程序的适当支持,某些应用程序在同时使用快内核和慢内核时,无法在使用快内核时实现性能可伸缩性。感知非对称的虚拟机监控程序可以通过防止快核在慢核之前变得空闲,以及允许来自同一个VM的虚拟cpu同时使用快核和慢核来缓解可伸缩性问题。
我们认为,在虚拟机管理程序中适当支持非对称多核的情况下,对客户操作系统隐藏物理非对称性是可行的。虚拟机管理程序可以通过识别虚拟机的特征来高效地使用快内核和慢内核。每个虚拟机不需要意识到不对称,可以使用虚拟同构CPU,不受底层物理架构的限制。本文表明,虚拟化可以降低采用非对称多核的成本,因为虚拟化层可以隐藏依赖于机器的物理非对称性。用户可以使用传统的操作系统,而无需对不对称多核进行任何修改。设计合理的虚拟机管理程序可以利用非对称多核的优势,而无需改变现成的复杂操作系统。

©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页