【技术实现步骤摘要】
基于共享缓存感知的虚拟机调度方法和装置
本专利技术涉及计算机
,具体涉及一种基于共享缓存感知的虚拟机调度方法和装置。
技术介绍
随着多核技术、虚拟化技术、云计算技术的发展,多核处理器广泛应用于云计算环境。在云计算场景下,通过虚拟化技术,将多台虚拟机同时运行在多核服务器上,可以充分灵活地利用物理资源。然而,多台虚拟机同时运行在同一个多核物理服务器上,虚拟机与虚拟机之间会因为共享资源的竞争使用而导致系统整体运行效率的下降,单台虚拟机的性能指标也会因此而达不到预期的服务质量(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节点中存在的共享微架构主要包括L ...
【技术保护点】
一种基于共享缓存感知的虚拟机调度方法,其特征在于,用于计算机系统,所述计算机系统包括多个节点,每个节点包括至少一个处理器核,每个节点的最后一级缓存为共享缓存,多个虚拟机运行在所述多个节点上;所述方法包括:确定需要进行调度的多个虚拟机;获取需要进行调度的多个虚拟机中的每个虚拟机对所有共享缓存的使用情况,根据所述每个虚拟机对所有共享缓存的使用情况,将所述需要进行调度的多个虚拟机聚类为多个类;依次将其中每一类的虚拟机均衡分配到所述多个节点上,使分配到每个节点上的一个以上虚拟机的共享缓存使用情况相匹配;将所述需要进行调度的多个虚拟机分别调度到各自分配的节点上。
【技术特征摘要】
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...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。