CN104050043A - 基于共享缓存感知的虚拟机调度方法和装置 - Google Patents
基于共享缓存感知的虚拟机调度方法和装置 Download PDFInfo
- Publication number
- CN104050043A CN104050043A CN201410270543.5A CN201410270543A CN104050043A CN 104050043 A CN104050043 A CN 104050043A CN 201410270543 A CN201410270543 A CN 201410270543A CN 104050043 A CN104050043 A CN 104050043A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- node
- home node
- buffer memory
- class
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种基于共享缓存感知的虚拟机调度方法和装置,以尽可能的解决因为共享缓存的资源竞争使用导致虚拟机之间的性能受到相互干扰,进而引起系统运行效率的下降的问题。在本发明一些可行的实施方式中,方法包括:确定需要进行调度的多个虚拟机;获取需要进行调度的多个虚拟机中的每个虚拟机对所有共享缓存的使用情况,根据所述每个虚拟机对所有共享缓存的使用情况,将所述需要进行调度的多个虚拟机聚类为多个类;依次将其中每一类的虚拟机均衡分配到所述多个节点上,使分配到每个节点上的一个以上虚拟机的共享缓存使用情况相匹配;将所述需要进行调度的多个虚拟机分别调度到各自分配的节点上。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种基于共享缓存感知的虚拟机调度方法和装置。
背景技术
随着多核技术、虚拟化技术、云计算技术的发展,多核处理器广泛应用于云计算环境。在云计算场景下,通过虚拟化技术,将多台虚拟机同时运行在多核服务器上,可以充分灵活地利用物理资源。然而,多台虚拟机同时运行在同一个多核物理服务器上,虚拟机与虚拟机之间会因为共享资源的竞争使用而导致系统整体运行效率的下降,单台虚拟机的性能指标也会因此而达不到预期的服务质量(Quality of Service,QoS)目标。
多核处理器结构中,通常每个核拥有自己的私有缓存,多个核共享最后一级缓存。多台虚拟机运行在多核处理器上时,会因为共享缓存的资源竞争使用导致虚拟机之间的性能受到相互干扰,进而引起系统运行效率的下降。
如今,商用多核物理服务器普遍采用的多核非一致性内存访问(NonUniform Memory Access Architecture,NUMA)架构。如图1所示,例如在英特尔(Intel)的NUMA多核结构中,通过高速互联技术(QuickPath Interconnect,QPI)将系统中的各个NUMA节点连接成一个统一地址空间的计算机系统。每个NUMA节点包括多个核(core),并拥有自己的三级共享缓存(L3Cache)、内存控制器(integrated memory controller,IMC)、以及相应的内存单元(MemNode)。如图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/n],n为节点个数,[]表示向下取整;以及,将剩余未分配的Pi%n个第i类虚拟机统一按照节点编号循环分配到各个节点上,Pi%n表示Pi对n取模;按照每个节点上分配的各类虚拟机的个数,将每个虚拟机具体分配到节点上,其中,优先将每个虚拟机分配到各自的home节点上。
结合第一方面的第五种或第六种可能的实现方式,在第七种可能的实现方式中,所述为每个虚拟机设定home节点包括:获取每个虚拟机的内存在各个节点的分布情况;为每个虚拟机选择内存占比最高的节点作为home节点。
结合第一方面的第五种至第七种可能的实现方式中的任一种,在第八种可能的实现方式中,所述方法还包括:统计单位时间内每个虚拟机在home节点和非home节点上的运行次数;对于当前运行在非home节点上的虚拟机,判断该虚拟机在非home节点上的运行次数超过门限值,则将运行次数最多的非home节点更新为该虚拟机的home节点。
结合第一方面的第五种至第八种可能的实现方式中的任一种,在第九种可能的实现方式中,所述方法还包括:对于当前运行在home节点上的虚拟机,判断该虚拟机的home节点的空闲内存大于该虚拟机的内存,则将该虚拟机在其它非home节点上的内存,迁移至该虚拟机的home节点。
本发明第二方面提供一种基于共享缓存感知的虚拟机调度装置,用于计算机系统,所述计算机系统包括多个节点,每个节点包括至少一个处理器核,每个节点的最后一级缓存为共享缓存,多个虚拟机运行在所述多个节点上;所述装置包括:确定模块,用于确定需要进行调度的多个虚拟机;获取模块,用于获取需要进行调度的多个虚拟机中的每个虚拟机对所有共享缓存的使用情况;聚类模块,用于根据所述每个虚拟机对所有共享缓存的使用情况,将所述需要进行调度的多个虚拟机聚类为多个类;分配模块,用于依次将其中每一类的虚拟机均衡分配到所述多个节点上,使分配到每个节点上的一个以上虚拟机分属于不同的类;调度模块,用于将所述需要进行调度的多个虚拟机分别调度到各自分配的节点上。
在第一种可能的实现方式中,所述确定模块,具体用于周期性统计每个虚拟机的处理器利用率;将处理器利用率超过利用率阈值的虚拟机确定为需要进行调度的虚拟机。
结合第二方面或者第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述获取模块,具体用于周期性获取需要进行调度的多个虚拟机中的每个虚拟机的缓存失配率,所述缓存失配率表示虚拟机从共享缓存中读取数据的失败几率。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述聚类模块,具体用于根据所述需要进行调度的多个虚拟机的缓存失配率的高低,将所述需要进行调度的多个虚拟机聚类为三个类,三个类的缓存失配率分别属于高、中、低三个缓存失配率范围。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,初始化单元,用于随机选择需要进行调度的3个虚拟机划分到三个类中;计算单元,用于计算每个类的质心,每个类的质心为该类中的所有虚拟机的缓存失配率的平均值;归类单元,用于计算每个需要进行调度的虚拟机的缓存失配率到每个类的质心的距离,将每个需要进行调度的虚拟机归类到与该虚拟机的缓存失配率距离最近的质心所在的类中;迭代单元,用于调用所述计算单元和归类单元迭代重复上述的计算步骤和归类步骤,直至每个类中在最近两次迭代中计算得到的质心的差值小于或等于质心计算阈值,聚类结束,得到三个类。
结合第二方面或第二方面的第一种至第四种可能的实现方式中的任一种,在第五种可能的实现方式中,所述装置还包括:指定模块,用于为每个虚拟机设定home节点,每个虚拟机的home节点表示调度时优先将该虚拟机调到到该虚拟机的home节点。
结合第二方面的第五种可能的实现方式,在第六种可能的实现方式中,所述分配模块包括:统计单元,用于分别统计每个类中虚拟机的个数,记第i类中虚拟机的个数为Si,i=1、2或3;分配单元,用于为每个节点分配Pi个第i类虚拟机,Pi=[Si/n],n为节点个数,[]表示向下取整;以及,将剩余未分配的Pi%n个第i类虚拟机统一按照节点编号循环分配到各个节点上,Pi%n表示Pi对n取模;分配单元,用于按照每个节点上分配的各类虚拟机的个数,将每个虚拟机具体分配到节点上,其中,优先将每个虚拟机分配到各自的home节点上。
结合第二方面的第五种或第六种可能的实现方式,在第七种可能的实现方式中,所述指定模块,具体用于获取每个虚拟机的内存在各个节点的分布情况;为每个虚拟机选择内存占比最高的节点作为home节点。
结合第二方面的第五种至第七种可能的实现方式中的任一种,在第八种可能的实现方式中,所述指定模块,还用于统计单位时间内每个虚拟机在home节点和非home节点上的运行次数;对于当前运行在非home节点上的虚拟机,判断该虚拟机在非home节点上的运行次数超过门限值,则将运行次数最多的非home节点更新为该虚拟机的home节点。
结合第二方面的第五种至第八种可能的实现方式中的任一种,在第九种可能的实现方式中,所述装置还包括:迁移模块,用于对于当前运行在home节点上的虚拟机,判断该虚拟机的home节点的空闲内存大于该虚拟机的内存,则将该虚拟机在其它非home节点上的内存,迁移至该虚拟机的home节点。
由上可见,本发明实施例一些可行的实施方式中,通过获取多个虚拟机对共享缓存的使用情况,并根据获取的使用情况将所述多个虚拟机聚类为多个类,可将所述多个类的虚拟机均衡分配并调度到各个节点上,使得每个节点上分配的至少两个虚拟机之间的共享缓存使用情况相匹配,从而,可以尽可能的减少虚拟机之间竞争共享缓存导致的性能相互干扰,多个虚拟机可以更加合理的使用共享缓存,进而可以提高系统整体运行效率,可以使每台虚拟机的性能表现更加稳定,更容易达到预期的QoS目标。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例和现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是一种现有的NUMA多核结构的系统架构示意图;
图2是本发明实施例所应用的计算机系统的架构示意图;
图3是本发明实施例提供的一种基于共享缓存感知的虚拟机调度方法的流程示意图;
图4是本发明实施例提供的另一种基于共享缓存感知的虚拟机调度方法的流程示意图;
图5是将多个类的虚拟机均衡分配并调度到多个节点上的流程示意图;
图6是为虚拟机更新home节点,或者为虚拟机进行相应的内存迁移的流程示意图;
图7是本发明实施例提供的一种基于共享缓存感知的虚拟机调度装置的结构示意图;
图8是本发明实施例提供的另一种基于共享缓存感知的虚拟机调度装置的结构示意图;
图9是本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
本发明实施例提供一种基于共享缓存感知的虚拟机调度方法和装置,以尽可能的解决的因为共享缓存的资源竞争使用导致虚拟机之间的性能受到相互干扰,进而引起系统运行效率的下降的问题。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
为了方便理解本发明实施例,首先在此介绍本发明实施例描述中会引入的几个要素;
虚拟机(Virtual Machine,VM):
通过虚拟机监控器(Virtual Machine Monitor,VMM)可以在一台物理计算机上模拟出一台或者多台虚拟的计算机,而这些虚拟机就像真正的计算机那样进行工作,虚拟机上可以安装操作系统和应用程序,虚拟机还可访问网络资源。对于在虚拟机中运行的应用程序而言,虚拟机就像是在真正的计算机中进行工作。
硬件层:
虚拟化环境运行的硬件平台。其中,硬件层可包括多种硬件,例如某计算节点的硬件层可包括处理器(例如CPU)和存储器(例如内存),还可以包括网卡、存储器等等高速/低速输入/输出(I/O,Input/Output)设备,及具有特定处理功能的其它设备,如输入输出内存管理单元(IOMMU,Input/OutputMemory Management Unit),其中IOMMU可用于虚拟机物理地址和Host物理地址的转换。其中,所说的处理器具体可以是多核处理器。
虚拟机管理层:
虚拟机管理层,用以完成硬件资源的管理、分配;为虚拟机呈现虚拟硬件平台;实现虚拟机的调度和隔离,也可称为宿主机(Host)。其中,Host可能是虚拟机监控器(VMM);此外,有时VMM和1个特权虚拟机配合,两者结合组成Host。其中,虚拟硬件平台对其上运行的各个虚拟机提供各种硬件资源,如提供虚拟CPU、内存、虚拟磁盘、虚拟网卡等等。其中,该虚拟磁盘可对应Host的一个文件或者一个逻辑块设备。虚拟机则运行在Host为其准备的虚拟硬件平台上,Host上运行一个或多个虚拟机。
下面通过具体实施例,对本发明进行详细的说明。
实施例一
本发明实施例提供一种基于共享缓存感知的虚拟机调度方法。
所述方法用于计算机系统,所述系统包括硬件层、运行在所述硬件层之上的虚拟机管理层、以及运行在所述虚拟机管理层之上的多个虚拟机,所述硬件层包括多个节点,所述至少一个虚拟机运行所述多个节点上,每个节点包括至少一个处理器核(core),所述多个节点具有共享缓存。一般的,所述共享缓存是最后一级缓存,即,每个节点的最后一级缓存作为共享缓存,可供其它节点访问。
所说的缓存是位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。按照数据读取顺序和与CPU结合的紧密程度,CPU缓存可以分为一级缓存,二级缓存,部分高端CPU还具有三级缓存,每一级缓存中所储存的全部数据都是下一级缓存的一部分。
一种实施方式中,本发明实施例所应用的计算机系统的架构如图2所示。该计算机系统的硬件层表示具有两个共享缓存的多核架构,即,硬件层包括两个节点210。每个节点包括多个核(core),共享缓存(例如L3Cache)、内存控制器(IMC)、通过IMC连接的内存单元(例如DDR3),以及QPI模块。需要说明的是,本发明不局限于两个共享缓存的多核架构,可以扩展至多个共享缓存的多核架构,即,硬件层可包括更多个节点。硬件层之上是虚拟机管理层,例如可以是虚拟机监控软件,具体可以是hypervisor模式的虚拟化实现,也可以是Host-guest模式的虚拟化实现。本发明实施例方法可由虚拟机管理层或者部署在虚拟机管理层中的装置,例如一种基于共享缓存感知的虚拟机调度装置具体实施。虚拟机管理层之上运行有多个虚拟机(VM),每个VM具有一个或多个虚拟处理器(vcpu)。
如图3所示,本发明实施例提供的一种基于共享缓存感知的虚拟机调度方法可包括:
110、确定需要进行调度的多个虚拟机;获取需要进行调度的多个虚拟机中的每个虚拟机对所有共享缓存的使用情况,根据每个虚拟机对所有共享缓存的使用情况,将所述需要进行调度的多个虚拟机聚类为多个类。
本发明实施例中,计算机系统的虚拟机管理层可实时获取各个虚拟机的处理器(CPU)负载,根据CPU负载情况判断虚拟机是处于活跃状态或是处于空闲状态,可将处于活跃状态的虚拟机确定为需要进行调度的虚拟机。一些实施例中,可用处理器利用率(或使用率)来表示CPU负载,统计一定周期内例如1秒内各个虚拟机的处理器利用率,将处理器利用率超过利用率阈值的虚拟机认为是处于活跃状态的虚拟机,确定为需要进行调度;将处理器利用率低于利用率阈值的虚拟机认为是处于空闲状态的虚拟机,几乎不占用缓存资源,不作为调度对象。一些实施例中,所述利用率阈值可设为20%。
本发明实施例中,计算机系统的虚拟机管理层还可实时获取各个虚拟机对所有共享缓存的使用情况。一些实施例中,可用缓存失配率来表示虚拟机对共享缓存的使用情况,该缓存失配率表示虚拟机从共享缓存中读取数据的失败几率。于是,一些实施例中,计算机系统的虚拟机管理层可周期性获取需要进行调度的多个虚拟机中的每个虚拟机的缓存失配率,根据所述需要进行调度的多个虚拟机的缓存失配率的高低,对所述需要进行调度的多个虚拟机进行聚类。例如,可以将所述需要进行调度的多个虚拟机聚类为三个类,三个类的缓存失配率可分别属于高、中、低三个缓存失配率范围。一些实施例中,所说的聚类具体可以采用k-means聚类算法实现。
120、依次将其中每一类的虚拟机均衡分配到所述多个节点上,使分配到每个节点上的一个以上虚拟机分属于不同的类;将所述需要进行调度的多个虚拟机分别调度到各自分配的节点上。
本发明实施例中,计算机系统的虚拟机管理层根据上一步骤的聚类结果,对需要调度的多个虚拟机进行分配,使得,每个节点上被分配不同类的虚拟机,且所述不同类的虚拟机之间的共享缓存使用情况相匹配。其中,所说的均衡分配包括:将同一类的虚拟机尽量均匀的分配到多个节点上,避免同一个节点上分配的虚拟机都是同一类型的情况。所说的相匹配包括:同一个节点上分配的多个虚拟机分属多个类,且这多个虚拟机的内存占用之和小于该节点的空闲内存。
例如,可将失配率类型为高、中、低的VM分别分配到各个节点上,使得每个节点上被分配不同类的多个虚拟机,且每个节点上分配的多个VM的失配率类型分布均衡,不让系统中出现失配率类型为高的VM都聚集在同一个节点上,或者,不让系统中出现失配率类型为低的VM都聚集在同一个节点上。
完成类型分配后,再将每个虚拟机具体分配并调度到每个节点上,最终,使每个节点上运行的多个虚拟机相互匹配,更加合理的使用共享缓存,从而尽可能的减少虚拟机之间竞争共享缓存导致的性能相互干扰,进而可以提高系统整体运行效率,并使每台虚拟机的性能表现更加稳定。所说的调度具体可包括:将虚拟机的VCPU调度到分配到的节点上运行。
如图4所示,本发明一些实施例中,所述方法还可包括:
100、为每个虚拟机设定home节点,每个虚拟机的home节点表示调度时优先将该虚拟机调到到该虚拟机的home节点。
本发明实施例中,计算机系统的虚拟机管理层可以实时获取每个虚拟机在各个节点上的内存分布情况,根据获取的内存分布情况设定home节点,例如,为每个虚拟机选择内存占比最高的节点作为home节点。所述home节点表示调度时优先考虑的节点,后续步骤120中进行虚拟机分配和调度时,可优先考虑将每个虚拟机分配到各自的home节点上。
可选的,120之后还可包括:
130、根据虚拟机调度迁移情况,为虚拟机更新home节点,或者为虚拟机进行相应的内存迁移。具体可包括:
130a、统计单位时间内每个虚拟机在home节点和非home节点上的运行次数;对于当前运行在非home节点上的虚拟机,判断该虚拟机在非home节点上的运行次数超过门限值,则将运行次数最多的非home节点更新为该虚拟机的home节点。
130b、对于当前运行在home节点上的虚拟机,判断该虚拟机的home节点的空闲内存大于该虚拟机的内存,则将该虚拟机在其它非home节点上的内存,迁移至该虚拟机的home节点。
下面,对本发明实施例技术方案做进一步的扩展说明。
本发明一些实施例中,计算机系统的虚拟机管理层周期性获取每个虚拟机的缓存失配率可包括:
以虚拟机为单位,在单位时间t(例如t=1秒)内,采集共享缓存失配(miss)次数,即,读取共享缓存的失败次数,以及该虚拟机执行指令次数,则,虚拟机的共享缓存失配率通过如下公式计算得出:缓存失配率=共享缓存失配次数/执行指令次数。
本发明一些实施例中,步骤110中根据所述多个虚拟机的缓存失配率,将所述多个虚拟机聚类为三个类,可采用k-means聚类算法,具体可包括:
初始化步骤:随机选择需要进行调度的3个虚拟机划分到三个类中;
计算步骤,计算每个类的质心,每个类的质心为该类中的所有虚拟机的缓存失配率的平均值;
归类步骤:计算每个需要进行调度的虚拟机的缓存失配率到每个类的质心的距离,将每个需要进行调度的虚拟机归类到与该虚拟机的缓存失配率距离最近的质心所在的类中;
迭代重复上述的计算步骤和归类步骤,直至每个类在最近两次迭代中计算得到的质心的差值小于或等于质心计算阈值,聚类结束,得到三个类。三个类中,虚拟机缓存失配率的值分别属于高、中、低三个缓存失配率范围。
本发明一些实施例中,如图5所示,步骤120中将所述依次将其中每一类的虚拟机均衡分配到所述多个节点上可包括:
1201、分别统计每个类中虚拟机的个数,记第i类中虚拟机的个数为Si,i=1、2或3。例如,分别统计虚拟机缓存失配率类型为高(High)、中(Middle)、低(Low)的三个类中的虚拟机个数,高失配率类型的虚拟机个数记为H,中等失配率类型的虚拟机个数记为M,低失配率类型的虚拟机个数记为L。
1202、为每个节点分配Pi个第i类虚拟机,Pi=[Si/n];其中,n为节点个数,[]表示向下取整。例如,Si/n=7/3,则Pi=[Si/n]=2。具体的,可以为系统中每个节点分配高失配率虚拟机[H/n]个,其中n为系统中节点总数,为每个节点分配中等失配率虚拟机[M/n]个,为每个节点分配低失配率虚拟机[L/n]个。
1203、将剩余未分配的Pi%n个第i类虚拟机统一按照节点编号循环分配到各个节点上,Pi%n表示Pi对n取模。例如,将剩余未分配的高失配率虚拟机H%n个(H对n取模)、中等失配率虚拟机M%n个、低失配率虚拟机L%n个,按照节点编号从低到高再从高到底的循环顺序将虚拟机分别分配到各个节点上。例如,H=8,n=3,则H%n=2。举例说明剩余高失配率虚拟机2个、中等失配率虚拟机2个、低失配率虚拟机1个,节点个数n=3,则,将2个高失配率虚拟机分配给节点1和节点2,将2个中等失配率虚拟机分配给节点3和节点2,将1个低失配率虚拟机分配给节点1。
经上述步骤1203和1204使得三种类型的VM均衡分配到各个节点上。
1204、按照每个节点上分配的各类虚拟机的个数,将每个虚拟机具体分配到节点上,其中,优先将每个虚拟机分配到各自的home节点上。
一些实施例中,该步骤具体可包括:
(a)虚拟机A在其home节点上,且其home节点上拥有虚拟机A相应的失配率类型的虚拟机数目可供分配。则虚拟机A在home节点保持不变,该节点相应的失配率类型的虚拟机数目减一。
(b)虚拟机A不在其home节点上,且home节点上拥有虚拟机A相应的失配率类型的虚拟机数目可供分配。则将虚拟机A分配到其home节点上,home节点相应的失配率类型的虚拟机数目减一。
(c)虚拟机A当前在非home节点上,且该非home节点拥有虚拟机A相应的失配率类型的虚拟机数目可供分配。则将虚拟机A在该非home节点保持不变,该节点相应的失配率类型的虚拟机数目减一。
(d)若以上条件都不满足,将虚拟机分配到拥有相对应的失配率类型的虚拟机数目的节点上。同时,该节点相应的失配率类型的虚拟机数目减一。直到所有虚拟机都被分配到各个节点上,分配结束。
步骤120中将所述多个虚拟机分别调度到各自分配的节点上可包括:将每个虚拟机的虚拟处理器(vcpu)调度到所分配的节点上运行。
本发明一些实施例中,步骤130中根据虚拟机调度迁移情况,为虚拟机更新home节点,或者为虚拟机进行相应的内存迁移可包括以下步骤,其中,假设将虚拟机调度周期设为1秒,将home节点更新及内存迁移执行周期设为10秒,计算机系统周期性执行如下主要流程,流程如图6所示。
1301、针对任一个虚拟机,首先查看最近10次缓存感知调度迁移过程中,该虚拟机在各个节点的运行情况,统计该虚拟机在home节点的运行次数以及在非home节点的运行次数。
1302、判断该虚拟机当前是否运行在非home节点,若虚拟机当前运行在home节点,则不需要更新该虚拟机的home节点,直接进入home节点内存迁移流程,即步骤1305;若虚拟机当前运行在非home节点,则进入步骤1303。
1303、判断当前虚拟机在非home节点的运行次数是否超过门限值,例如,判断是否大于6次,若大于,则进入步骤1304;若不大于,则说明该虚拟机的home节点不需要更新。
1304、判断虚拟机当前运行的节点的空闲内存是否大于该虚拟机的内存;
1305、若1304判断结果为是,则将该虚拟机的home节点更新为该当前运行的节点;若1304判断结果为否,则说明该当前运行的节点内存负载过高,需要启动系统内存负载均衡模块,进行节点间的内存负载均衡操作。
1306、若虚拟机当前运行在home节点,可将虚拟机分布在其他非home节点的内存页迁移至该虚拟机的home节点。首先,判断home节点的空闲内存是否大于该虚拟机的内存,若是,则将内存页迁移至home节点;若否,则说明该home节点的内存负载过高,需要启动系统的内存负载均衡模块,进行节点间的内存负载均衡操作。
本发明一些实施例中,为了使系统中的虚拟机home节点的初始化设定更加合理,使得之后的虚拟机调度更加高效,虚拟机home节点的初始化设定可以根据虚拟机初始放置算法(该发算法同时考虑内存分布与系统负载)设定相应虚拟机的home节点。
本发明一些实施例中,在将处于活跃状态的虚拟机确定为需要进行调度的虚拟机的过程中,对于活跃虚拟机的认定,可以不仅仅通过考虑CPU利用率,也可以同时考虑内存带宽使用以及I/O操作的频繁程度等多种因素,通过上述多种因素认定一台虚拟机是否是处于活跃状态的虚拟机,从而确定是否需要进行共享缓存感知的虚拟机调度。
本发明一些实施例中,将所述多个虚拟机聚类为多个类的步骤中,对于聚类的方法,可以不限于采用上述的k-means聚类算法,也可以采用其它方法对虚拟机进行分类,如采用缓存失配率固定阈值的分类方法,或者采用其他的在线自动聚类方法对虚拟机按照缓存失配率进行相应的聚类操作。
可以理解,本发明实施例上述方案例如可以在计算机设备具体实施。
利用虚拟机聚类结果判断虚拟机之间共同使用共享缓存的合适程度,从而为虚拟机调度时提供有利的决策信息,使得虚拟机之间共享缓存使用情况匹配的虚拟机调度到同一个共享缓存的CPU上执行,的目的。
以上,本发明实施例公开了一种基于共享缓存感知的虚拟机调度方法,该方法通过获取多个虚拟机对共享缓存的使用情况,并根据获取的使用情况将所述多个虚拟机聚类为多个类,将所述多个类的虚拟机均衡分配并调度到各个节点上,使得每个节点上分配的至少两个虚拟机之间的共享缓存使用情况相匹配,或者说,将虚拟机之间共享缓存使用情况匹配的虚拟机调度到同一个共享缓存的CPU上执行,实现了虚拟机聚类类型匹配调度,可以尽可能的减少虚拟机之间竞争共享缓存导致的性能相互干扰,多个虚拟机可以更加合理的使用共享缓存,进而可以提高系统整体运行效率,可以使每台虚拟机的性能表现更加稳定,更容易达到预期的QoS目标。
在本发明的一些优选的实施方式中,计算机系统为虚拟机指定home节点,在线进行虚拟机缓存失配率的采集与聚类,然后进行home节点优先的虚拟机类型匹配的调度,同时周期性地更新虚拟机的home节点并进行相应虚拟机的内存迁移,采用该技术方案,可对计算机系统中共享缓存的竞争使用进行有效的调度调整,同时,通过虚拟机的内存迁移,考虑到了例如NUMA系统中内存的远端访问问题。从而使系统的整体性能得到提升的同时,每台虚拟机的性能表现也将更加稳定。
实施例二、
为了更好的实施本发明实施例的上述方案,下面还提供用于配合实施上述方案的相关装置。
请参考图7,本发明实施例提供一种基于共享缓存感知的虚拟机调度装置,用于计算机系统,所述计算机系统包括多个节点,每个节点包括至少一个处理器核,每个节点的最后一级缓存为共享缓存,多个虚拟机运行在所述多个节点上;所述装置可包括:
确定模块740,用于确定需要进行调度的多个虚拟机;
获取模块710,用于获取需要进行调度的多个虚拟机中的每个虚拟机对所有共享缓存的使用情况;
聚类模块720,用于根据所述多个虚拟机对共享缓存的使用情况,将所述需要进行调度的多个虚拟机聚类为多个类;
分配模块730,用于依次将其中每一类的虚拟机均衡分配到所述多个节点上,使分配到每个节点上的一个以上虚拟机分属于不同的类;
调度模块750,用于将所述需要进行调度的多个虚拟机分别调度到各自分配的节点上。
请参考图8,在本发明的一些实施例中,
确定模块740,用于周期性统计每个虚拟机的处理器利用率;将处理器利用率超过利用率阈值的虚拟机确定为需要进行调度的虚拟机。
在本发明的一些实施例中,所述获取模块710,具体用于周期性获取需要进行调度的多个虚拟机中的每个虚拟机的缓存失配率,所述缓存失配率表示虚拟机从共享缓存中读取数据的失败几率。
在本发明的一些实施例中,所述聚类模块720,具体可用于根据所述需要进行调度的多个虚拟机的缓存失配率的高低,将所述需要进行调度的多个虚拟机聚类为三个类,三个类的缓存失配率分别属于高、中、低三个缓存失配率范围。
在本发明的一些实施例中,所述聚类模块720可包括:
初始化单元,用于随机选择需要进行调度的3个虚拟机划分到三个类中;
计算单元,用于计算每个类的质心,每个类的质心为该类中的所有虚拟机的缓存失配率的平均值;
归类单元,用于计算每个需要进行调度的虚拟机的缓存失配率到每个类的质心的距离,将每个需要进行调度的虚拟机归类到与该虚拟机的缓存失配率距离最近的质心所在的类中;
迭代单元,用于调用所述计算单元和归类单元迭代重复上述的计算步骤和归类步骤,直至每个类中在最近两次迭代中计算得到的质心的差值小于或等于质心计算阈值,聚类结束,得到三个类。
在本发明的一些实施例中,所述装置还包括:
指定模块760,用于为每个虚拟机设定home节点,每个虚拟机的home节点表示调度时优先将该虚拟机调到到该虚拟机的home节点。
在本发明的一些实施例中,所述分配模块730可包括:
统计单元,用于分别统计每个类中虚拟机的个数,记第i类中虚拟机的个数为Si,i=1、2或3;
分配单元,用于为每个节点分配Pi个第i类虚拟机,Pi=[Si/n],n为节点个数,[]表示向下取整;以及,将剩余未分配的Pi%n个第i类虚拟机统一按照节点编号循环分配到各个节点上,Pi%n表示Pi对n取模;
分配单元,用于按照每个节点上分配的各类虚拟机的个数,将每个虚拟机具体分配到节点上,其中,优先将每个虚拟机分配到各自的home节点上。
在本发明的一些实施例中,所述指定模块760,具体可用于获取每个虚拟机的内存在各个节点的分布情况;为每个虚拟机选择内存占比最高的节点作为home节点。
在本发明的一些实施例中,所述指定模块760,还用于统计单位时间内每个虚拟机在home节点和非home节点上的运行次数;对于当前运行在非home节点上的虚拟机,判断该虚拟机在非home节点上的运行次数超过门限值,则将运行次数最多的非home节点更新为该虚拟机的home节点。
在本发明的一些实施例中,所述装置还包括:
迁移模块770,用于对于当前运行在home节点上的虚拟机,判断该虚拟机的home节点的空闲内存大于该虚拟机的内存,则将该虚拟机在其它非home节点上的内存,迁移至该虚拟机的home节点。
需要说明的是,本发明实施例提供的基于共享缓存感知的虚拟机调度装置,可以是对应于虚拟机管理层(如宿主机),换句话说,宿主机Host包括前述实施例的虚拟机迁移装置,换言之,即基于共享缓存感知的虚拟机调度装置可部署在宿主机中,或者可由宿主机实现虚拟机管理层的功能;更具体的,本发明实施例的虚拟机管理层可以是对应于特权虚拟机,换句话说,虚拟机管理层可部署在特权虚拟机中,或者可由特权虚拟机实现虚拟机管理层的功能。
本发明实施例的基于共享缓存感知的虚拟机调度装置例如可以是计算机设备。
可以理解,本发明实施例的基于共享缓存感知的虚拟机调度装置的各个功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可参照上述方法实施例中的相关描述,此处不再赘述。
由上可见,在本发明实施例公开了一种基于共享缓存感知的虚拟机调度装置,该装置通过获取多个虚拟机对共享缓存的使用情况,并根据获取的使用情况将所述多个虚拟机聚类为多个类,将所述多个类的虚拟机均衡分配并调度到各个节点上,使得每个节点上分配的至少两个虚拟机之间的共享缓存使用情况相匹配,或者说,将虚拟机之间共享缓存使用情况匹配的虚拟机调度到同一个共享缓存的CPU上执行,实现了虚拟机聚类类型匹配调度,可以尽可能的减少虚拟机之间竞争共享缓存导致的性能相互干扰,多个虚拟机可以更加合理的使用共享缓存,进而可以提高系统整体运行效率,可以使每台虚拟机的性能表现更加稳定,更容易达到预期的QoS目标。
在本发明的一些优选的实施方式中,计算机系统为虚拟机指定home节点,在线进行虚拟机缓存失配率的采集与聚类,然后进行home节点优先的虚拟机类型匹配的调度,同时周期性地更新虚拟机的home节点并进行相应虚拟机的内存迁移,采用该技术方案,可对计算机系统中共享缓存的竞争使用进行有效的调度调整,同时,通过虚拟机的内存迁移,考虑到了例如NUMA系统中内存的远端访问问题。从而使系统的整体性能得到提升的同时,每台虚拟机的性能表现也将更加稳定。
实施例三、
本发明实施例还提供一种计算机可读介质,包括计算机执行指令,以供计算机的处理器执行所述计算机执行指令时,所述计算机执行实施例一的基于共享缓存感知的虚拟机调度方法的方法流程。
实施例四、
请参考图9,本发明实施例还提供一种计算机设备900,可包括:处理器901、存储器902、系统总线904(简称总线)和通信接口905。处理器901、存储器902和通信接口905之间通过系统总线904连接并完成相互间的通信。
处理器901可能为单核或多核中央处理单元,或者为特定集成电路,或者为被配置成实施本发明实施例的一个或多个集成电路。
存储器902可以为高速RAM存储器,也可以为非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
存储器902用于存储计算机执行指令903。具体的,计算机执行指令903中可以包括程序代码。
当所述计算机设备运行时,处理器901运行计算机执行指令903,可以执行实施例一所述的基于共享缓存感知的虚拟机调度方法的方法流程。
由上可见,在本发明的一些可行的实施方式中,计算机设备通过获取多个虚拟机对共享缓存的使用情况,并根据获取的使用情况将所述多个虚拟机聚类为多个类,将所述多个类的虚拟机均衡分配并调度到各个节点上,使得每个节点上分配的至少两个虚拟机之间的共享缓存使用情况相匹配,或者说,将虚拟机之间共享缓存使用情况匹配的虚拟机调度到同一个共享缓存的CPU上执行,实现了虚拟机聚类类型匹配调度,可以尽可能的减少虚拟机之间竞争共享缓存导致的性能相互干扰,多个虚拟机可以更加合理的使用共享缓存,进而可以提高系统整体运行效率,可以使每台虚拟机的性能表现更加稳定,更容易达到预期的QoS目标。
在本发明的一些优选的实施方式中,计算机系统为虚拟机指定home节点,在线进行虚拟机缓存失配率的采集与聚类,然后进行home节点优先的虚拟机类型匹配的调度,同时周期性地更新虚拟机的home节点并进行相应虚拟机的内存迁移,采用该技术方案,可对计算机系统中共享缓存的竞争使用进行有效的调度调整,同时,通过虚拟机的内存迁移,考虑到了例如NUMA系统中内存的远端访问问题。从而使系统的整体性能得到提升的同时,每台虚拟机的性能表现也将更加稳定。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的基于共享缓存感知的虚拟机调度方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (20)
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/n],n为节点个数,[]表示向下取整;以及,将剩余未分配的Pi%n个第i类虚拟机统一按照节点编号循环分配到各个节点上,Pi%n表示Pi对n取模;
按照每个节点上分配的各类虚拟机的个数,将每个虚拟机具体分配到节点上,其中,优先将每个虚拟机分配到各自的home节点上。
8.根据权利要求6所述的方法,其特征在于,所述为每个虚拟机设定home节点包括:
获取每个虚拟机的内存在各个节点的分布情况;
为每个虚拟机选择内存占比最高的节点作为home节点。
9.根据权利要求6所述的方法,其特征在于,还包括:
统计单位时间内每个虚拟机在home节点和非home节点上的运行次数;
对于当前运行在非home节点上的虚拟机,判断该虚拟机在非home节点上的运行次数超过门限值,则将运行次数最多的非home节点更新为该虚拟机的home节点。
10.根据权利要求6所述的方法,其特征在于,还包括:
对于当前运行在home节点上的虚拟机,判断该虚拟机的home节点的空闲内存大于该虚拟机的内存,则将该虚拟机在其它非home节点上的内存,迁移至该虚拟机的home节点。
11.一种基于共享缓存感知的虚拟机调度装置,其特征在于,用于计算机系统,所述计算机系统包括多个节点,每个节点包括至少一个处理器核,每个节点的最后一级缓存为共享缓存,多个虚拟机运行在所述多个节点上;
所述装置包括:
确定模块,用于确定需要进行调度的多个虚拟机;
获取模块,用于获取需要进行调度的多个虚拟机中的每个虚拟机对所有共享缓存的使用情况;
聚类模块,用于根据所述每个虚拟机对所有共享缓存的使用情况,将所述需要进行调度的多个虚拟机聚类为多个类;
分配模块,用于依次将其中每一类的虚拟机均衡分配到所述多个节点上,使分配到每个节点上的一个以上虚拟机分属于不同的类;
调度模块,用于将所述需要进行调度的多个虚拟机分别调度到各自分配的节点上。
12.根据权利要求11所述的装置,其特征在于:
所述确定模块,具体用于周期性统计每个虚拟机的处理器利用率;将处理器利用率超过利用率阈值的虚拟机确定为需要进行调度的虚拟机。
13.根据权利要求11所述的装置,其特征在于:
所述获取模块,具体用于周期性获取需要进行调度的多个虚拟机中的每个虚拟机的缓存失配率,所述缓存失配率表示虚拟机从共享缓存中读取数据的失败几率。
14.根据权利要求13中任一所述的装置,其特征在于:
所述聚类模块,具体用于根据所述需要进行调度的多个虚拟机的缓存失配率的高低,将所述需要进行调度的多个虚拟机聚类为三个类,三个类的缓存失配率分别属于高、中、低三个缓存失配率范围。
15.根据权利要求14所述的装置,其特征在于,所述聚类模块包括:
初始化单元,用于随机选择需要进行调度的3个虚拟机划分到三个类中;
计算单元,用于计算每个类的质心,每个类的质心为该类中的所有虚拟机的缓存失配率的平均值;
归类单元,用于计算每个需要进行调度的虚拟机的缓存失配率到每个类的质心的距离,将每个需要进行调度的虚拟机归类到与该虚拟机的缓存失配率距离最近的质心所在的类中;
迭代单元,用于调用所述计算单元和归类单元迭代重复上述的计算步骤和归类步骤,直至每个类中在最近两次迭代中计算得到的质心的差值小于或等于质心计算阈值,聚类结束,得到三个类。
16.根据权利要求11至少15中任一所述的装置,其特征在于,还包括:
指定模块,用于为每个虚拟机设定home节点,每个虚拟机的home节点表示调度时优先将该虚拟机调到到该虚拟机的home节点。
17.根据权利要求16所述的装置,其特征在于,所述分配模块包括:
统计单元,用于分别统计每个类中虚拟机的个数,记第i类中虚拟机的个数为Si,i=1、2或3;
分配单元,用于为每个节点分配Pi个第i类虚拟机,Pi=[Si/n],n为节点个数,[]表示向下取整;以及,将剩余未分配的Pi%n个第i类虚拟机统一按照节点编号循环分配到各个节点上,Pi%n表示Pi对n取模;
分配单元,用于按照每个节点上分配的各类虚拟机的个数,将每个虚拟机具体分配到节点上,其中,优先将每个虚拟机分配到各自的home节点上。
18.根据权利要求16所述的装置,其特征在于:
所述指定模块,具体用于获取每个虚拟机的内存在各个节点的分布情况;为每个虚拟机选择内存占比最高的节点作为home节点。
19.根据权利要求16所述的装置,其特征在于:
所述指定模块,还用于统计单位时间内每个虚拟机在home节点和非home节点上的运行次数;对于当前运行在非home节点上的虚拟机,判断该虚拟机在非home节点上的运行次数超过门限值,则将运行次数最多的非home节点更新为该虚拟机的home节点。
20.根据权利要求16所述的装置,其特征在于,还包括:
迁移模块,用于对于当前运行在home节点上的虚拟机,判断该虚拟机的home节点的空闲内存大于该虚拟机的内存,则将该虚拟机在其它非home节点上的内存,迁移至该虚拟机的home节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410270543.5A CN104050043A (zh) | 2014-06-17 | 2014-06-17 | 基于共享缓存感知的虚拟机调度方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410270543.5A CN104050043A (zh) | 2014-06-17 | 2014-06-17 | 基于共享缓存感知的虚拟机调度方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104050043A true CN104050043A (zh) | 2014-09-17 |
Family
ID=51502937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410270543.5A Pending CN104050043A (zh) | 2014-06-17 | 2014-06-17 | 基于共享缓存感知的虚拟机调度方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104050043A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105554069A (zh) * | 2015-12-04 | 2016-05-04 | 国网山东省电力公司电力科学研究院 | 一种大数据处理分布式缓存系统及其方法 |
CN105607952A (zh) * | 2015-12-18 | 2016-05-25 | 航天恒星科技有限公司 | 一种虚拟化资源的调度方法及装置 |
CN106446959A (zh) * | 2016-10-10 | 2017-02-22 | 北京邮电大学 | 一种云计算资源动态匹配方法及装置 |
CN106681830A (zh) * | 2016-12-21 | 2017-05-17 | 深圳先进技术研究院 | 一种任务缓存空间监测方法和装置 |
CN107070709A (zh) * | 2017-03-31 | 2017-08-18 | 上海交通大学 | 一种基于底层numa感知的nfv实现方法 |
CN107193648A (zh) * | 2017-05-25 | 2017-09-22 | 深信服科技股份有限公司 | 一种基于numa架构的性能优化方法及系统 |
CN107223239A (zh) * | 2015-02-17 | 2017-09-29 | 高通股份有限公司 | 用于改善牺牲(Victim)高速缓存模式的处理调度 |
WO2018058363A1 (en) * | 2016-09-28 | 2018-04-05 | Intel Corporation | Measuring per-node bandwidth within non-uniform memory access (numa) systems |
CN109947538A (zh) * | 2019-03-29 | 2019-06-28 | 神州数码信息系统有限公司 | 一种基于vCPU调度解决虚拟机性能干扰的方法 |
CN111338782A (zh) * | 2020-03-06 | 2020-06-26 | 中国科学技术大学 | 面向共享式突发数据缓存的基于竞争感知的节点分配方法 |
CN112559384A (zh) * | 2020-12-17 | 2021-03-26 | 南昌航空大学 | 一种基于非易失存储器的混合固态盘动态分区方法 |
CN113190334A (zh) * | 2021-04-21 | 2021-07-30 | 北京字跳网络技术有限公司 | 流程引擎的控制方法、装置、终端和存储介质 |
WO2022142595A1 (zh) * | 2020-12-29 | 2022-07-07 | 华为技术有限公司 | 程序检测方法及装置 |
CN114911566A (zh) * | 2021-02-09 | 2022-08-16 | 中国电信股份有限公司 | 虚拟机调度方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101158927A (zh) * | 2007-10-25 | 2008-04-09 | 中国科学院计算技术研究所 | 一种内存共享的系统和装置及方法 |
CN102053873A (zh) * | 2011-01-13 | 2011-05-11 | 浙江大学 | 一种缓存感知的多核处理器虚拟机故障隔离保证方法 |
US20110214122A1 (en) * | 2010-02-26 | 2011-09-01 | Uri Lublin | Mechanism for Optimizing Initial Placement of Virtual Machines to Reduce Memory Consumption Based on Similar Characteristics |
CN102479100A (zh) * | 2010-11-26 | 2012-05-30 | 中国科学院软件研究所 | 一种普适计算环境虚拟机平台及其创建方法 |
CN102629941A (zh) * | 2012-03-20 | 2012-08-08 | 武汉邮电科学研究院 | 云计算系统中虚拟机镜像缓存的方法 |
US20140156958A1 (en) * | 2012-11-30 | 2014-06-05 | International Business Machines Corporation | Common contiguous memory region optimized virtual machine migration within a workgroup |
-
2014
- 2014-06-17 CN CN201410270543.5A patent/CN104050043A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101158927A (zh) * | 2007-10-25 | 2008-04-09 | 中国科学院计算技术研究所 | 一种内存共享的系统和装置及方法 |
US20110214122A1 (en) * | 2010-02-26 | 2011-09-01 | Uri Lublin | Mechanism for Optimizing Initial Placement of Virtual Machines to Reduce Memory Consumption Based on Similar Characteristics |
CN102479100A (zh) * | 2010-11-26 | 2012-05-30 | 中国科学院软件研究所 | 一种普适计算环境虚拟机平台及其创建方法 |
CN102053873A (zh) * | 2011-01-13 | 2011-05-11 | 浙江大学 | 一种缓存感知的多核处理器虚拟机故障隔离保证方法 |
CN102629941A (zh) * | 2012-03-20 | 2012-08-08 | 武汉邮电科学研究院 | 云计算系统中虚拟机镜像缓存的方法 |
US20140156958A1 (en) * | 2012-11-30 | 2014-06-05 | International Business Machines Corporation | Common contiguous memory region optimized virtual machine migration within a workgroup |
Non-Patent Citations (4)
Title |
---|
周慧芳: "自适应的K-means聚类算法SA-K-means", 《科技创新导报》 * |
唐燕雯: "一种基于K-means的自适应聚类算法的研究", 《科技向导》 * |
李四海等: "自适应特征权重的K-means聚类算法", 《计算机技术与发展》 * |
李玲玲: "虚拟化环境下的多核NUMA架构性能优化系统CNA", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107223239A (zh) * | 2015-02-17 | 2017-09-29 | 高通股份有限公司 | 用于改善牺牲(Victim)高速缓存模式的处理调度 |
CN105554069B (zh) * | 2015-12-04 | 2018-09-11 | 国网山东省电力公司电力科学研究院 | 一种大数据处理分布式缓存系统及其方法 |
CN105554069A (zh) * | 2015-12-04 | 2016-05-04 | 国网山东省电力公司电力科学研究院 | 一种大数据处理分布式缓存系统及其方法 |
CN105607952A (zh) * | 2015-12-18 | 2016-05-25 | 航天恒星科技有限公司 | 一种虚拟化资源的调度方法及装置 |
CN110419030B (zh) * | 2016-09-28 | 2024-04-19 | 英特尔公司 | 测量非均匀存储器访问(numa)系统内按节点的带宽 |
CN110419030A (zh) * | 2016-09-28 | 2019-11-05 | 英特尔公司 | 测量非均匀存储器访问(numa)系统内按节点的带宽 |
US11093414B2 (en) | 2016-09-28 | 2021-08-17 | Intel Corporation | Measuring per-node bandwidth within non-uniform memory access (NUMA) systems |
WO2018058363A1 (en) * | 2016-09-28 | 2018-04-05 | Intel Corporation | Measuring per-node bandwidth within non-uniform memory access (numa) systems |
CN106446959B (zh) * | 2016-10-10 | 2019-06-07 | 北京邮电大学 | 一种云计算资源动态匹配方法及装置 |
CN106446959A (zh) * | 2016-10-10 | 2017-02-22 | 北京邮电大学 | 一种云计算资源动态匹配方法及装置 |
CN106681830A (zh) * | 2016-12-21 | 2017-05-17 | 深圳先进技术研究院 | 一种任务缓存空间监测方法和装置 |
CN106681830B (zh) * | 2016-12-21 | 2019-11-29 | 深圳先进技术研究院 | 一种任务缓存空间监测方法和装置 |
CN107070709A (zh) * | 2017-03-31 | 2017-08-18 | 上海交通大学 | 一种基于底层numa感知的nfv实现方法 |
CN107193648A (zh) * | 2017-05-25 | 2017-09-22 | 深信服科技股份有限公司 | 一种基于numa架构的性能优化方法及系统 |
CN109947538A (zh) * | 2019-03-29 | 2019-06-28 | 神州数码信息系统有限公司 | 一种基于vCPU调度解决虚拟机性能干扰的方法 |
CN109947538B (zh) * | 2019-03-29 | 2022-12-02 | 神州数码信息系统有限公司 | 一种基于vCPU调度解决虚拟机性能干扰的方法 |
CN111338782A (zh) * | 2020-03-06 | 2020-06-26 | 中国科学技术大学 | 面向共享式突发数据缓存的基于竞争感知的节点分配方法 |
CN112559384A (zh) * | 2020-12-17 | 2021-03-26 | 南昌航空大学 | 一种基于非易失存储器的混合固态盘动态分区方法 |
CN112559384B (zh) * | 2020-12-17 | 2022-04-15 | 南昌航空大学 | 一种基于非易失存储器的混合固态盘动态分区方法 |
WO2022142595A1 (zh) * | 2020-12-29 | 2022-07-07 | 华为技术有限公司 | 程序检测方法及装置 |
CN114911566A (zh) * | 2021-02-09 | 2022-08-16 | 中国电信股份有限公司 | 虚拟机调度方法和装置 |
CN113190334A (zh) * | 2021-04-21 | 2021-07-30 | 北京字跳网络技术有限公司 | 流程引擎的控制方法、装置、终端和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104050043A (zh) | 基于共享缓存感知的虚拟机调度方法和装置 | |
Kaur et al. | Container-as-a-service at the edge: Trade-off between energy efficiency and service availability at fog nano data centers | |
CN108829494B (zh) | 基于负载预测的容器云平台智能资源优化方法 | |
CN103729248B (zh) | 一种基于缓存感知的确定待迁移任务的方法和装置 | |
CN109684074B (zh) | 物理机资源分配方法及终端设备 | |
US8949847B2 (en) | Apparatus and method for managing resources in cluster computing environment | |
CN111344688B (zh) | 云计算中资源提供的方法及系统 | |
US11816509B2 (en) | Workload placement for virtual GPU enabled systems | |
CN113806018B (zh) | 基于神经网络和分布式缓存的Kubernetes集群资源混合调度方法 | |
CN103297499B (zh) | 一种基于云平台的调度方法及系统 | |
CN103870314A (zh) | 一种单节点同时运行不同类型虚拟机的方法及系统 | |
CN103455363B (zh) | 一种虚拟机的指令处理方法、装置及物理主机 | |
CN103425536B (zh) | 一种面向分布式系统性能测试的测试资源管理方法 | |
CN103473115B (zh) | 虚拟机放置方法和装置 | |
CN103927229A (zh) | 在动态可用服务器集群中调度映射化简作业 | |
CN103780655A (zh) | 一种消息传递接口任务和资源调度系统及方法 | |
CN104679594B (zh) | 一种中间件分布式计算方法 | |
CN104243617A (zh) | 一种异构集群中面向混合负载的任务调度方法及系统 | |
CN112256430A (zh) | 容器的部署方法、装置、设备及存储介质 | |
CN114841345A (zh) | 一种基于深度学习算法的分布式计算平台及其应用 | |
CN112905297A (zh) | 容器集群资源调度方法和装置 | |
WO2022026044A1 (en) | Sharing of compute resources between the virtualized radio access network (vran) and other workloads | |
CN113032102A (zh) | 资源重调度方法、装置、设备和介质 | |
CN105653347B (zh) | 一种服务器、资源管理方法及虚拟机管理器 | |
CN113835897A (zh) | 一种在分布式计算集群Kubernetes上对GPU资源进行分配使用的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140917 |
|
WD01 | Invention patent application deemed withdrawn after publication |