基于共享缓存感知的虚拟机调度方法和装置制造方法及图纸

技术编号:10451518 阅读:126 留言:0更新日期:2014-09-18 16:20
本发明专利技术公开了一种基于共享缓存感知的虚拟机调度方法和装置,以尽可能的解决因为共享缓存的资源竞争使用导致虚拟机之间的性能受到相互干扰,进而引起系统运行效率的下降的问题。在本发明专利技术一些可行的实施方式中,方法包括:确定需要进行调度的多个虚拟机;获取需要进行调度的多个虚拟机中的每个虚拟机对所有共享缓存的使用情况,根据所述每个虚拟机对所有共享缓存的使用情况,将所述需要进行调度的多个虚拟机聚类为多个类;依次将其中每一类的虚拟机均衡分配到所述多个节点上,使分配到每个节点上的一个以上虚拟机的共享缓存使用情况相匹配;将所述需要进行调度的多个虚拟机分别调度到各自分配的节点上。

【技术实现步骤摘要】
基于共享缓存感知的虚拟机调度方法和装置
本专利技术涉及计算机
,具体涉及一种基于共享缓存感知的虚拟机调度方法和装置。
技术介绍
随着多核技术、虚拟化技术、云计算技术的发展,多核处理器广泛应用于云计算环境。在云计算场景下,通过虚拟化技术,将多台虚拟机同时运行在多核服务器上,可以充分灵活地利用物理资源。然而,多台虚拟机同时运行在同一个多核物理服务器上,虚拟机与虚拟机之间会因为共享资源的竞争使用而导致系统整体运行效率的下降,单台虚拟机的性能指标也会因此而达不到预期的服务质量(Quality of Service, QoS)目标。 多核处理器结构中,通常每个核拥有自己的私有缓存,多个核共享最后一级缓存。多台虚拟机运行在多核处理器上时,会因为共享缓存的资源竞争使用导致虚拟机之间的性能受到相互干扰,进而引起系统运行效率的下降。 如今,商用多核物理服务器普遍采用的多核非一致性内存访问(NonUniformMemory Access Architecture,NUMA)架构。如图1 所不,例如在英特尔(Intel)的 NUMA 多核结构中,通过高速互联技术(QuickPath Interconnect, QPI)将系统中的各个NUMA节点连接成一个统一地址空间的计算机系统。每个NUMA节点包括多个核(core),并拥有自己的三级共享缓存(L3Cache)、内存控制器(integrated memory controller, IMC)、以及相应的内存单元(Mem Node)。如图1所示的结构中,NUMA节点中存在的共享微架构主要包括L3共享缓存、QPI互连设备、及内存控制器。这些微架构是否能够被系统合理高效地使用,对于系统整体运行效率的提升有很大影响。当多台虚拟机同时运行在多核NUMA架构的服务器上时,通过调度手段决定虚拟机之间以何种组合方式共享使用最后一级缓存资源例如L3共享缓存,是解决多核NUMA系统中资源共享导致的系统运行效率下降问题的有效途径。 为解决多核NUMA系统中共享缓存的不合理使用导致的性能下降问题: 一种现有技术通过探测程序检测共享缓存每个区域的使用情况,然后通过内存重新映射和缓存着色技术,将线程调度到较空闲的共享缓存的处理器(CPU)上运行,同时将该线程的地址空间映射到该共享缓存较空闲的区域(subset)。通过这种方法,有效合理地利用多核系统中的共享缓存,从而提高系统的性能。但是,该方法利用探测程序,系统开销较大,同时共享缓存不同区域的使用情况变化很快,不能很准确地判断下一时刻某区域的使用频繁程度。同时,使用缓存着色技术使共享缓存资源的利用失去了灵活性。 另一种现有技术构造缓存失效率曲线(Miss Rate Curve)进行缓存性能预测的技术,利用缓存性能预测信息进行线程的调度。通过预测多个虚拟机线程共享缓存时,系统总的缓存失效率的大小,最终判定该调度的线程组合是否能带来性能的提升。但是,该方法在构造缓存失效率曲线时,系统开销较大。若构造的缓存失效率曲线不能准确预测之后运行的线程的性能表现,则该方法的预测结果就失去了意义。 综上,对于多台虚拟机运行在多核处理器上时,因为共享缓存的资源竞争使用导致虚拟机之间的性能受到相互干扰,进而引起系统运行效率的下降的问题,目前还没有一种技术能够有效解决。
技术实现思路
本专利技术实施例提供一种基于共享缓存感知的虚拟机调度方法和装置,以尽可能的解决因为共享缓存的资源竞争使用导致虚拟机之间的性能受到相互干扰,进而引起系统运行效率的下降的问题。 本专利技术第一方面提供一种基于共享缓存感知的虚拟机调度方法,用于计算机系统,所述计算机系统包括多个节点,每个节点包括至少一个处理器核,每个节点的最后一级缓存为共享缓存,多个虚拟机运行在所述多个节点上;所述方法包括:确定需要进行调度的多个虚拟机;获取需要进行调度的多个虚拟机中的每个虚拟机对所有共享缓存的使用情况,根据所述每个虚拟机对所有共享缓存的使用情况,将所述需要进行调度的多个虚拟机聚类为多个类;依次将其中每一类的虚拟机均衡分配到所述多个节点上,使分配到每个节点上的一个以上虚拟机的共享缓存使用情况相匹配;将所述需要进行调度的多个虚拟机分别调度到各自分配的节点上。 在第一种可能的实现方式中,所述确定需要进行调度的多个虚拟机包括:周期性统计每个虚拟机的处理器利用率;将处理器利用率超过利用率阈值的虚拟机确定为需要进行调度的虚拟机。 结合第一方面或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述获取需要进行调度的多个虚拟机中的每个虚拟机对所有共享缓存的使用情况包括:周期性获取需要进行调度的多个虚拟机中的每个虚拟机的缓存失配率,所述缓存失配率表示虚拟机从共享缓存中读取数据的失败几率。 结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述根据所述每个虚拟机对所有共享缓存的使用情况,将所述需要进行调度的多个虚拟机聚类为多个类包括:根据所述需要进行调度的多个虚拟机的缓存失配率的高低,将所述需要进行调度的多个虚拟机聚类为三个类,三个类的缓存失配率分别属于高、中、低三个缓存失配率范围。 结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述根据所述需要进行调度的多个虚拟机的缓存失配率的高低,将所述需要进行调度的多个虚拟机聚类为三个类包括:初始化步骤:随机选择需要进行调度的3个虚拟机划分到三个类中;计算步骤,计算每个类的质心,每个类的质心为该类中的所有虚拟机的缓存失配率的平均值;归类步骤:计算每个需要进行调度的虚拟机的缓存失配率到每个类的质心的距离,将每个需要进行调度的虚拟机归类到与该虚拟机的缓存失配率距离最近的质心所在的类中;迭代重复上述的计算步骤和归类步骤,直至每个类在最近两次迭代中计算得到的质心的差值小于或等于质心计算阈值,聚类结束,得到三个类。 结合第一方面或第一方面的第一种至第四种可能的实现方式中的任一种,在第五种可能的实现方式中,所述确定需要进行调度的多个虚拟机之前,还包括:为每个虚拟机设定home节点,每个虚拟机的home节点表示调度时优先将该虚拟机调到到该虚拟机的home节点。 结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述依次将其中每一类的虚拟机均衡分配到所述多个节点上包括:分别统计每个类中虚拟机的个数,记第i类中虚拟机的个数为Si, i = 1、2或3 ;为每个节点分配Pi个第i类虚拟机,Pi=[Si/η], η为节点个数,[]表示向下取整;以及,将剩余未分配的Pi % η个第i类虚拟机统一按照节点编号循环分配到各个节点上,Pi % η表示Pi对η取模;按照每个节点上分配的各类虚拟机的个数,将每个虚拟机具体分配到节点上,其中,优先将每个虚拟机分配到各自的home节点上。 结合第一方面的第五种或第六种可能的实现方式,在第七种可能的实现方式中,所述为每个虚拟机设定home节点包括:获取每个虚拟机的内存在各个节点的分布情况;为每个虚拟机选择内存占比最高的节点作为home节点。 结合第一方面的第五种至第七种可能的实现方式中的任一种,在第八种可能的实现方式中,所述方法还包括:统计单位时间内每个虚拟机在h本文档来自技高网
...

【技术保护点】
一种基于共享缓存感知的虚拟机调度方法,其特征在于,用于计算机系统,所述计算机系统包括多个节点,每个节点包括至少一个处理器核,每个节点的最后一级缓存为共享缓存,多个虚拟机运行在所述多个节点上;所述方法包括:确定需要进行调度的多个虚拟机;获取需要进行调度的多个虚拟机中的每个虚拟机对所有共享缓存的使用情况,根据所述每个虚拟机对所有共享缓存的使用情况,将所述需要进行调度的多个虚拟机聚类为多个类;依次将其中每一类的虚拟机均衡分配到所述多个节点上,使分配到每个节点上的一个以上虚拟机的共享缓存使用情况相匹配;将所述需要进行调度的多个虚拟机分别调度到各自分配的节点上。

【技术特征摘要】
1.一种基于共享缓存感知的虚拟机调度方法,其特征在于,用于计算机系统,所述计算机系统包括多个节点,每个节点包括至少一个处理器核,每个节点的最后一级缓存为共享缓存,多个虚拟机运行在所述多个节点上; 所述方法包括: 确定需要进行调度的多个虚拟机; 获取需要进行调度的多个虚拟机中的每个虚拟机对所有共享缓存的使用情况,根据所述每个虚拟机对所有共享缓存的使用情况,将所述需要进行调度的多个虚拟机聚类为多个类; 依次将其中每一类的虚拟机均衡分配到所述多个节点上,使分配到每个节点上的一个以上虚拟机的共享缓存使用情况相匹配; 将所述需要进行调度的多个虚拟机分别调度到各自分配的节点上。2.根据权利要求1所述的方法,其特征在于,所述确定需要进行调度的多个虚拟机包括: 周期性统计每个虚拟机的处理器利用率; 将处理器利用率超过利用率阈值的虚拟机确定为需要进行调度的虚拟机。3.根据权利要求1所述的方法,其特征在于,所述获取需要进行调度的多个虚拟机中的每个虚拟机对所有共享缓存的使用情况包括: 周期性获取需要进行调度的多个虚拟机中的每个虚拟机的缓存失配率,所述缓存失配率表示虚拟机从共享缓存中读取数据的失败几率。4.根据权利要求3所述的方法,其特征在于,所述根据所述每个虚拟机对所有共享缓存的使用情况,将所述需要进行调度的多个虚拟机聚类为多个类包括: 根据所述需要进行调度的多个虚拟机的缓存失配率的高低,将所述需要进行调度的多个虚拟机聚类为三个类,三个类的缓存失配率分别属于高、中、低三个缓存失配率范围。5.根据权利要求4所述的方法,其特征在于,所述根据所述需要进行调度的多个虚拟机的缓存失配率的高低,将所述需要进行调度的多个虚拟机聚类为三个类包括: 初始化步骤:随机选择需要进行调度的3个虚拟机划分到三个类中; 计算步骤,计算每个类的质心,每个类的质心为该类中的所有虚拟机的缓存失配率的平均值; 归类步骤:计算每个需要进行调度的虚拟机的缓存失配率到每个类的质心的距离,将每个需要进行调度的虚拟机归类到与该虚拟机的缓存失配率距离最近的质心所在的类中; 迭代重复上述的计算步骤和归类步骤,直至每个类在最近两次迭代中计算得到的质心的差值小于或等于质心计算阈值,聚类结束,得到三个类。6.根据权利要求1至5中任一所述的方法,其特征在于,所述确定需要进行调度的多个虚拟机之前,还包括: 为每个虚拟机设定home节点,每个虚拟机的home节点表示调度时优先将该虚拟机调到到该虚拟机的home节点。7.根据权利要求6所述的方法,其特征在于,所述依次将其中每一类的虚拟机均衡分配到所述多个节点上包括:分别统计每个类中虚拟机的个数,记第i类中虚拟机的个数为Si,i = 1、2或3 ; 为每个节点分配Pi个第i类虚拟机,Pi = [Si/η], η为节点个数,[]表示向下取整;以及,将剩余未分配的Pi% η个第i类虚拟机统一按照节点编号循环分配到各个节点上,Pi% η表示Pi对η取模; 按照每个节点上分配的各类虚拟机的个数,将每个虚拟机具体分配到节点上,其中,优先将每个虚拟机分配到各自的home节点上。8.根据权利要求6所述的方法,其特征在于,所述为每个虚拟机设定home节点包括: 获取每个虚拟机的内存在各个节点的分布情况; 为每个虚拟机选择内存占比最高的节点作为home节点。9.根据权利要求6所述的方法,其特征在于,还包括: 统计单位时间内每个虚拟机在home节点和非home节点上的运行次数; 对于当前运行在非home节点上的虚拟机,判断该虚拟机在非home节点上的运行次数超过门限值,则将运行次数最多的非home节点更新为该虚拟机的home节点。10.根据权 利要求6所述的方法,其特征在于,还包括: 对于当前运行在home节点上的虚拟机,判断该虚拟机的home节点的空闲内存大于该虚拟机的内存,则将该虚拟机在其它非hom...

【专利技术属性】
技术研发人员:藏洪永
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1