CN103955398A - 一种基于处理器性能监控的虚拟机共生调度方法 - Google Patents
一种基于处理器性能监控的虚拟机共生调度方法 Download PDFInfo
- Publication number
- CN103955398A CN103955398A CN201410176123.0A CN201410176123A CN103955398A CN 103955398 A CN103955398 A CN 103955398A CN 201410176123 A CN201410176123 A CN 201410176123A CN 103955398 A CN103955398 A CN 103955398A
- Authority
- CN
- China
- Prior art keywords
- vcpu
- physical cpu
- buffer memory
- virtual machine
- shared buffer
- 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.)
- Granted
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种基于处理器性能监控的虚拟机共生调度方法。该虚拟机共生调度方法中基于硬件处理器性能监控单元提供的性能事件,基于多核物理服务器上运行的各个VCPU的压力值和容忍度,计算得到各个VCPU的压力系数和容忍系数,并根据压力系数和容忍系数,从高载物理CPU中确定待迁出VCPU,并通过共生系数预测,将待迁出VCPU迁移至共生系数最小的物理CPU上。在本发明的虚拟机共生调度方法在VCPU共生组合的性能预测中,引入VCPU共生系数表示不同VCPU共生组合的性能,给出了一种基于VCPU共生组合共生系数预测方法,为虚拟机调度时提供有利的决策信息,将共享缓存的使用情况匹配的虚拟机调度到同一个共享缓存的CPU上执行,达到提高虚拟机运行效率的目的。
Description
技术领域
本发明涉及虚拟机技术领域,更具体地说,涉及一种基于处理器性能监控的虚拟机共生调度方法。
背景技术
系统虚拟化技术是云计算应用中的基础核心技术之一。在目前云计算数据中心,大部分应用程序部署在虚拟机中,而虚拟机则运行在商用多核架构的物理服务器上。系统虚拟化技术的使用,实现了不同的应用程序可以运行在各自的虚拟机之中,从而极大地方便了应用服务的部署与管理,保证了应用程序之间的隔离性和安全性,提高了数据中心整体运营效率。然而,现有的虚拟化技术不能很好地解决多台虚拟机共享底层的物理服务器资源时出现资源竞争的问题,导致虚拟机性能下降,当物理服务器负载较高时不能有效保证每台虚拟机的服务质量。
虚拟机之间的资源竞争主要表现在不同虚拟机之间对同一共享物理资源的竞争使用。其中共享物理资源主要包括多核处理器中的共享缓存资源、内存控制器和内存带宽资源以及外部的I/O存储资源等。由于不同虚拟机中运行不同的应用服务程序,应用程序表现出不同的资源需求特征。因此,不同虚拟机对于物理资源的需求各有不同。如果某些虚拟机同时对某一共享物理资源竞争使用,则这部分虚拟机的性能就会出现大幅下降问题。
目前,多核物理服务器普遍使用NUMA(Non-Uniform Memory Access)架构,即非一致性内存访问架构如图1所示,四台虚拟机共享底层的一台多核物理服务器。该多核NUMA架构拥有两个处理器,每个处理器中有一个共享缓存。虚拟机A(VM A)和虚拟机B(VM B)使用同一个共享缓存,虚拟机C(VM C)和虚拟机D(VM D)使用另一个共享缓存。若虚拟机A和虚拟机B对共享缓存的资源需求很强,而虚拟机C和虚拟机D对共享缓存的资源需求较弱,则虚拟机A和虚拟机B的性能因为共享缓存的竞争使用出现下降。为了缓和虚拟机A和B对共享缓存的资源竞争问题,可以指定虚拟机A和C使用同一个共享缓存,虚拟机B和D使用另一个共享缓存,从而达到缓解共享资源竞争的问题。
为了让多核系统中的线程能够更公平地使用共享缓存和处理器中其他的共享资源,Fedorova提出了一种在多核处理器环境下,基于公平使用共享缓存和处理器其他共享资源的线程调度方法和装置。线程调度器首先识别出在多核处理器上运行的可调度的线程,然后基于收集的线程运行时统计数据估计出一个性能参数。调度器根据估计出的性能参数,分别为每个线程重新分配CPU运行的时间片。通过增加线程的CPU运行时间,来弥补那些因共享资源竞争而性能下降的线程,从而使得系统中各个运行线程能够更加公平得使用多核处理器中的共享资源。
为了监控多核处理器中共享缓存的使用情况,Li Zhao等[2]提出了一种在分布式共享缓存中监控缓存资源使用情况的方法。该方法利用一张进程资源表记录该进程在共享缓存中总共占用共享缓存行的数目。通过比较每个进程的进程资源表可以得出进程之间使用共享缓存资源的高低程度。系统中为每个共享缓存行记录一个资源监控ID(RMID),当该缓存行被修改时,触发相应的进程资源表,从而更新该进程的使用共享缓存行的数目。此外,进程资源表记录的共享缓存总的行数小于物理共享缓存总行数。
通过增加线程CPU运行时间片的方法消除因共享缓存资源竞争导致的线程间公平性问题,该方法容易导致某些线程的CPU运行时间片过长,使得其他线程获得的CPU时间片小于其按权重分配所需的CPU时间片。方法二中需要修改共享缓存硬件逻辑,实现成本过高。
发明内容
针对现有技术的不足,本发明提供了一种基于处理器性能监控的虚拟机共生调度方法。
一种基于处理器性能监控的虚拟机共生调度方法,所述虚拟机共生调度方法应用于基于多核物理服务器的虚拟计算机系统,所述虚拟计算机系统中虚拟机的VCPU运行于多核物理服务器的各个物理CPU,所述的多核物理服务器包括至少2个共享缓存,各个物理CPU运行于所述的共享缓存上,当不同共享缓存上的物理CPU负载不平衡时,进行VCPU的迁移调节各个物理CPU的负载,达到各个物理CPU负载均衡,根据各个VCPU的压力值和容忍度进行VCPU的迁移,包括如下步骤:
(1)每隔一定的时间周期,针对任意两个共享缓存,根据两个共享缓存上的各个物理CPU的负载情况,确定高载物理CPU和低载物理CPU,并将所有共享缓存上与低载物理CPU的负载相同的物理CPU组合作为低载CPU集合;
(2)根据所有VCPU的压力值和容忍度,计算各个共享缓存上各个VCPU的压力系数和容忍系数,并根据各个VCPU的压力系数和容忍系数,从高载物理CPU上的VCPU中选择一个作为待迁出VCPU,分别以低载CPU集合中的各个物理CPU为目标物理CPU,计算待迁出VCPU迁移至目标物理CPU后,该目标物理CPU所在的共享缓存的共生系数;
(3)以低载CPU集合中任意一个运行于共生系数最小的共享缓存上的物理CPU作为最终目标物理CPU,将所述的待迁出VCPU迁移至最终目标物理CPU上;
所述的压力值为VCPU对相应的共享缓存的访问速率;
所述的容忍度为该VCPU在其他VCPU的竞争压力作用下的性能变化值。本发明中的物理CPU为多核物理服务器的内核。VCPU(Virtual CentralProcessing Unit,虚拟CPU)为虚拟机的内核处理器。
步骤(2)中的低载CPU集合包含有该低载物理CPU。且该步骤中所有共享缓存上与低载物理CPU的负载相同的物理CPU组合作为低载CPU集合中,所述的共享缓存实际上为所述的虚拟计算机系统中除去高载物理CPU所在的共享缓存外所有的共享缓存。
本发明中物理CPU负载大小为物理CPU的负载是运行其上所有VCPU总的负载大小(即各个VCPU运行时的负载权重的和)。当所有VCPU均满负载运行且每个VCPU的负载都具有相同的权重,则物理CPU的负载大小为该物理CPU上运行的VCPU的个数。
多核物理平台(多核物理服务器)上运行虚拟机监控软件,可以是hypervisor模式的虚拟化实现,也可以是Host-guest模式的虚拟化实现。虚拟机监控软件中,实现在线硬件性能监控,通过利用硬件处理器性能监控单元提供的性能事件采集功能,在线性能信息采集各个虚拟机的在线运行性能信息,并通过对虚拟机性能信息的分析,传递给VCPU共生调度器需要的调度决策信息。
本发明基于硬件处理器性能监控单元提供的性能事件,获取各个VCPU的压力值和容忍度,并计算得到各个VCPU的压力系数和容忍系数,并根据压力系数和容忍系数,从高载物理CPU中确定待迁出VCPU,并通过共生系数预测,将待迁出VCPU迁移至共生系数最小的物理CPU上。本发明首次提出了采用VCPU的压力值和容忍度作为衡量多核物理服务器运行性能的性能指标。并进一步引入压力系数和容忍系数,并根据压力系数和容忍系数,在VCPU共生组合的性能预测中,第一次引入VCPU共生系数表示不同VCPU共生组合的性能表现,共生系数越低,表示该共享缓存上的各个虚拟机共生时相互性能影响越小,系统性能提升越大。本发明提出了一种基于VCPU共生组合共生系数预测方法,从而为虚拟机调度时提供有利的决策信息,将共享缓存的使用情况匹配的虚拟机调度到同一个共享缓存的CPU上执行,达到提高虚拟机运行效率的目的。
本发明的虚拟机共生调度方法执行前还包括如下步骤:
针对任意一个共享缓存,按照设定的时间周期(通常为10~15s),检测该共享缓存对应的各个物理CPU的负载是否均衡,当不均衡时,对该共享缓存对应的各个物理CPU的负载进行调整。同一共享缓存内部负载调整后,进行不同共享缓存上各个物理CPU的负载平衡状态判定,当不平衡时在进行启动本发明的虚拟机共生调度过程。
本发明技术方案通过分析系统中虚拟机对共享缓存的使用情况,对虚拟机的缓存使用特点进行在线聚类,利用虚拟机聚类结果预测虚拟机之间共同使用共享缓存的合适程度,从而为虚拟机调度时提供有利的决策信息,使得虚拟机之间共享缓存使用情况匹配的虚拟机调度到同一个共享缓存的CPU上执行,达到提高虚拟机运行效率的目的。
所述虚拟计算机系统中的第i个VCPU的压力值LAR(VCPUi)根据公式:
计算,Instructions(VCPUi)表示VCPUi在设定的时间间隔内完成指令的数量,
LLCAccesses(VCPUi)表示VCPUi在设定的时间间隔内的访问共享缓存的访问次数,
VCPUi为该虚拟计算机系统中的第i个VCPU。
Instructions(VCPUi)和LLCAccesses(VCPUi)通过虚拟机监控软件对在线硬件性能监控得到。利用VCPU对相应的共享缓存的(LAR)表示VCPU的压力值时,VCPU压力值越大,则该VCPU对其他使用相同共享缓存的VCPU(即与该VCPU共生的VCPU)的影响越大。
所述虚拟计算机系统中的第i个VCPU的容忍度ΔCPI(VCPUi)根据公式:
计算得到,为不施加竞争压力时,若干个设定的时间间隔内VCPUi的运行性能的平均值,
为施加竞争压力时,若干个设定的时间间隔内VCPUi的运行性能的平均值,其中,在每个设定的时间间隔内,VCPUi的运行性能根据公式:
计算得到,Cycles(VCPUi)表示VCPUi在设定的时间间隔内的使用物理CPU的时钟周期数,Instructions(VCPUi)表示VCPUi在设定的时间间隔内完成指令的数量。
VCPU的容忍度即为该虚拟机VCPU共享缓存竞争使用容忍度,表示VCPU与其他VCPU使用相同的共享缓存时,该VCPU受其他VCPU(即与该VCPU使用相同的共享缓存的VCPU)的竞争压力影响而反应出来的性能变化值。
VCPU的运行性能(CPI)的值越大,表示该VCPU的运行性能越差。采集VCPU的容忍度实际为性能变化值,因此,在采集容忍度信息时需要在系统运行时加入一个共享缓存压力测试线程。测试施加竞争压力时的运行性能,然后撤掉施加竞争压力,再次测试运行性能。在测试阶段,压力测试线程频繁进行访存操作,通过压力测试线程来模拟其他VCPU对该VCPU的压力,通过控制压力测试线程的工作集大小,达到控制压力测试线程对共享缓存使用的压力大小。为减少压力测试对系统产生的运行性能冲击,也可选择系统中压力值最大的VCPU作为压力测试线程。
在测试VCPU的运行性能时(包括施加竞争压力时和未施加竞争压力时),通常测试多个周期内的运行性能,然后求取平均,这个能够提高测试的准确性。在设定时间间隔时,应满足若干个时间间隔的总时长小于或等于所述步骤(1)中的时间周期,通常情况下为小于。
所述步骤(1)中,针对任意两个共享缓存,以上述两个共享缓存上负载最大的物理CPU作为高载物理CPU,并以与高载物理CPU不在同一个共享缓存上的物理CPU中负载最小的物理CPU作为低载物理CPU。
物理CPU的负载为该物理CPU上运行的虚拟CPU的个数。
所述步骤(2)中采用以下方法计算各个VCPU的压力系数和容忍系数:
(a)根据压力值采用K-means聚类方法将的所有VCPU聚为若干类,并根据公式:
计算第i类VCPU的压力系数,为第i类VCPU的平均压力值,k为划分的类数;
(b)根据容忍度采用K-means聚类方法将的所有VCPU聚为若干类,并根据公式:
计算第i类VCPU的容忍系数,为第i类VCPU的平均容忍度,k为划分的类数。
所述步骤(2)中根据压力值和容忍度,分别采用K-means聚类方法将的所有VCPU聚为3类。
本发明中实际上对所有VCPU进行2次独立并列的聚类。一次聚类根据压力值,采用K-means聚类方法将所有VCPU聚为3类,另一次聚类根据容忍度,采用K-means聚类方法将所有VCPU聚为3类。其中,步骤(a)中的第i类指根据压力值聚类得到的第i类,步骤(b)中的第i类指根据容忍度聚类得到的第i类。
所述步骤(2)中,根据压力系数和容忍系数从高载物理CPU上的VCPU中选择压力系数和容忍系数乘积最小的VCPU作为待迁出VCPU。
高载物理CPU上的VCPU中选择压力系数和容忍系数乘积最小的VCPU作为待迁出VCPU,能够降低VCPU调度导致的VCPU自身性能开销。当存在多个眼里系数和容忍系数乘积最小的VCPU,从中任意选择一个即可。
所述步骤(3)中根据公式:
计算待迁出VCPU迁移至目标物理CPU后,该目标物理CPU所在的共享缓存的共生系数Sy,Sm为该共享缓存上第m个VCPU的生存系数,
N为待迁出VCPU迁移至目标物理CPU后,目标物理CPU所在的共享缓存上的VCPU的总数。
为方便可以假设待迁出VCPU已经迁移至目标物理CPU上,则统计目标物理CPU所在的共享缓存上所有VCPU的个数(包括待迁出VCPU),并从1开始依次重新编号。Pn为目标物理CPU所在的共享缓存上第n个VCPU的压力系数。
共享缓存的共生系数越小,表明该共享缓存上的虚拟机共生时相互性能影响越小,系统性能提升越大。低载CPU集合中各个物理CPU可能在同一个共享缓存上,此时直接将待迁出VCPU迁移至低载CPU集合中的任意一个物理CPU上即可。当低载CPU集合中各个物理CPU在不同一个共享缓存上,逐一计算各个共享缓存的共生系数,将待迁出VCPU迁移至共生系数最小的共享缓存上的低载物理CPU上。当共生系数最小的共享缓存上有多个低载物理CPU时,将待迁出VCPU迁移至共生系数最小的共享缓存上任意一个低载物理CPU上。
本发明中未作特殊说明,所述的时间间隔为1~2s。
与现有技术相比,本发明的基于处理器性能监控的虚拟机共生调度方法在VCPU共生组合的性能预测时,第一次引入VCPU共生系数,用来表示不同VCPU共生组合的性能表现,进行CPU负载平衡时使用基于共生系数的VCPU调度方法,有效解决了虚拟机之间对多核处理器中的共享缓存资源,以及内存控制器和内存带宽资源竞争的问题,识别出虚拟机对共享资源的竞争使用情况,从而优化虚拟机运行环境,提高虚拟机的服务质量。
附图说明
图1为本实施例的基于多核物理服务器的虚拟计算机系统的结构示意图;
图2为基于处理器性能监控的虚拟机共生调度方法的流程图。
具体实施方式
下面将结合附图和具体实施方式对本发明进行详细说明。
本实施例的基于处理器性能监控的虚拟机共生调度方法应用于如图1所示的基于多核物理服务器的虚拟计算机系统。该虚拟计算机系统中的多核物理服务器为四核物理服务器,具有2个内存和2个共享缓存,分别为第一共享缓存和第二共享缓存。第一共享缓存和第二共享缓存通过高速互联技术进行通信。共享缓存与相应的内存之间通过内存控制器连接。每个核即为本实施例中的物理CPU,四个核分别为C0、C1、C2和C3,其中C0和C1运行于第一共享缓存上,C2和C3运行于第二共享缓存上。不同共享缓存之间进行高速互连。每个共享缓存上运行后硬件性能监控单元和内存控制器,该多核物理服务器还运行有虚拟机运行环境共生调度单元。虚拟计算机系统可以是hypervisor模式的虚拟化实现,也可以是Host-guest模式的虚拟化实现(本实施例中为Host-guest模式的虚拟化实现)。
通过硬件性能监控单元实现在线硬件性能监控,通过利用硬件处理器性能监控单元提供的性能事件采集功能,在线性能信息采集各个虚拟机的在线运行性能信息,并通过对虚拟机性能信息的聚类分析,传递给虚拟机运行环境共生调度单元,通过虚拟机运行环境共生调度单元做出调度决策,并执行相应的调度决策,完成VCPU的调度。
该虚拟计算机系统一共运行有四个虚拟机,分别为虚拟机VMA,虚拟机VMB,虚拟机VMC和虚拟机VMD。每个虚拟机均具有2个VCPU,分别为VCPU0、VCPU1、VCPU2、VCPU3、VCPU4、VCPU5、VCPU6和VCPU7。且VCPU0、VCPU1、VCPU2、VCPU3、VCPU4、VCPU5、VCPU6和VCPU7的负载权重分别为10%、50%、40%、50%、1%、10%、20%、50%。
初始情况,VCPU0和VCPU1运行于C0上,VCPU2和VCPU3运行于C1上,VCPU4和VCPU5运行于C2上,VCPU6和VCPU7运行于C3上。
该虚拟计算机系统每隔一定的时间周期(10s)检测同一共享缓存上的各个物理CPU的负载是否平衡,不平衡时,在同一共享缓存内进行的VCPU的内部调度,当内部调度结束后,再检测物理在所有共享缓存上各个物理CPU的负载是否平衡,若不平衡则在不同共享缓存之间的进行的VCPU的跨缓存调度(外部调度)。
本实施例中根据初始情况下各个VCPU的运行为位置,确定本实施例中四个物理CPU的负载如下:C0的负载为60%,C1的负载为90%,C2的负载为11%,C3的负载为70%。
经过判断得到第二共享缓存上的两个物理CPU(C2和C3)的负载不均衡,先进行内部调度,将VCPU6迁移至C3上,将VCPU7迁移至C2上.
内部调度完成后,四个物理CPU的负载如下:C0的负载为60%,C1的负载为90%,C2的负载为30%,C3的负载为51%。
可以看出两个共享缓存上各个物理CPU的负载不平衡,需要采用虚拟机共生调度方法进行虚拟机的VCPU的调度。
一种基于处理器性能监控的虚拟机共生调度方法,该虚拟机共生调度方法应用于如图1所示的基于多核物理服务器的虚拟计算机系统,当不同共享缓存上的物理CPU负载不平衡时,进行VCPU的迁移调节各个物理CPU的负载,达到负载均衡,根据各个VCPU的压力值和容忍度进行VCPU的迁移,如图2所示,包括如下步骤:
(1)每隔一定的时间周期(本实施例中为10s),针对任意两个共享缓存,根据两个共享缓存上的各个物理CPU的负载情况物理CPU的负载情况,确定高载物理CPU和低载物理CPU,并将所有共享缓存上与低载物理CPU的负载相同的物理CPU组合作为低载CPU集合。
根据内部调度完成后,四个物理CPU的负载情况确定C1为高载物理CPU,C2为低载物理CPU,且以C2作为低载CPU集合。
(2)根据所有VCPU的压力值和容忍度,计算各个共享缓存上各个VCPU的压力系数和容忍系数。
压力值为VCPU对相应的共享缓存的访问速率。其中,VCPUi(该虚拟计算机系统中的第i个VCPU)的压力值LAR(VCPUi)根据公式:
计算,Instructions(VCPUi)表示VCPUi在设定的时间间隔内完成指令的数量,
LLCAccesses(VCPUi)表示VCPUi在设定的时间间隔(本实施例中为1s)内的访问共享缓存的访问次数,
VCPUi为该虚拟计算机系统中的第i个VCPU。
容忍度为当前VCPU在其他VCPU(与当前CPU共用同一个共享缓存的VCPU)的竞争压力作用下的性能变化值。其中,VCPUi的容忍度ΔCPI(VCPUi)根据公式:
计算得到,为不施加竞争压力时,若干个(本实施例为5个)设定的时间间隔内VCPUi的运行性能的平均值,
为施加竞争压力时,若干个设定的时间间隔内VCPUi的运行性能的平均值,其中,在每个设定的时间间隔内,VCPUi的运行性能CPI(VCPUi)根据公式:
计算得到,Cycles(VCPUi)表示VCPUi在设定的时间间隔内的使用物理CPU的时钟周期数,Instructions(VCPUi)表示VCPUi在设定的时间间隔内完成指令的数量。
步骤(2)中采用以下方法计算各个VCPU的压力系数和容忍系数:
(a)根据压力值采用K-means聚类方法将该虚拟计算机系统中所有VCPU聚为若干类,并根据公式:
计算第i类VCPU的压力系数,为第i类VCPU的平均压力值,k为划分的类数;
(b)根据容忍度采用K-means聚类方法将该虚拟计算机系统中所有VCPU聚为若干类,并根据公式:
计算第i类VCPU的容忍系数,为第i类VCPU的平均容忍度,k为划分的类数。
本实施例中若未作特殊说明,所有的间间隔均为1s。
本实施例中根据压力值和容忍度,分别采用K-means聚类方法将该虚拟计算机系统中所有VCPU聚为3类,即k=3。
本实施例中各个VCPU的压力系数和容忍系数如表1所示。
表1
(3)根据各个VCPU的压力系数和容忍系数,从高载物理CPU上的VCPU中选择一个作为待迁出VCPU,分别以低载CPU集合中的各个物理CPU为目标物理CPU,计算待迁出VCPU迁移至目标物理CPU后,该目标物理CPU所在的共享缓存的共生系数。
为降低迁移时自身性能开销,根据压力系数和容忍系数从高载物理CPU上的VCPU中选择压力系数和容忍系数乘积最小的VCPU作为待迁出VCPU。本实施例中以VCPU2作为待迁出VCPU。
该目标物理CPU所在的共享缓存的共生系数根据公式:
计算待迁出VCPU迁移至目标物理CPU后,该目标物理CPU所在的共享缓存的共生系数Sy,Sm为该共享缓存上第m个VCPU的生存系数,
N为待迁出VCPU迁移至目标物理CPU后,目标物理CPU所在的共享缓存上的VCPU的总数。
将待迁出VCPU(VCPU2)迁移至目标物理CPU(C2)上后,C2所在的共享缓存(第二共享缓存)上一共有5个VCPU,即N=5。再对第二共享缓存上的VCPU按照1~5重新进行编号,并计算各个VCPU的生存系数。
本实施例中以待迁出VCPU的编号为1,即以VCPU2作为第二共享缓存上的第一个VCPU。则该待迁出VCPU迁移至第二共享缓存后的生存系数为:
S1=T1*(P2+P3+P4+P5),
根据编号结果得到:
S1=T(VCPU2)*(P(VCPU3)+P(VCPU4)+P(VCPU5)+P(VCPU6)),
进一步代值得到:
S1=0.26。
依据以上方法,类推得到第二共享缓存上的所有的VCPU的生存系数,并求和,得到第二共享缓存的共生系数Sy为1.81。
(4)以低载CPU集合中任意一个运行于共生系数最小的共享缓存上的物理CPU作为最终目标物理CPU,将所述的待迁出VCPU迁移至最终目标物理CPU上。
本实施例中只有两个共享缓存,即低载CPU集合中所有的物理CPU运行于同一个共享缓存上,因此将待迁出VCPU迁移至第二共享缓存上任意一个属于低载CPU集合的物理CPU上。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (8)
1.一种基于处理器性能监控的虚拟机共生调度方法,所述虚拟机共生调度方法应用于基于多核物理服务器的虚拟计算机系统,所述虚拟计算机系统中虚拟机的VCPU运行于多核物理服务器的各个物理CPU,所述的多核物理服务器包括至少2个共享缓存,各个物理CPU运行于所述的共享缓存上,当不同共享缓存上的物理CPU负载不平衡时,进行VCPU的迁移调节各个物理CPU的负载,达到各个物理CPU负载均衡,其特征在于,根据各个VCPU的压力值和容忍度进行VCPU的迁移,包括如下步骤:
(1)每隔一定的时间周期,针对任意两个共享缓存,根据两个共享缓存上的各个物理CPU的负载情况,确定高载物理CPU和低载物理CPU,并将所有共享缓存上与低载物理CPU的负载相同的物理CPU组合作为低载CPU集合;
(2)根据所有VCPU的压力值和容忍度,计算各个共享缓存上各个VCPU的压力系数和容忍系数,并根据各个VCPU的压力系数和容忍系数,从高载物理CPU上的VCPU中选择一个作为待迁出VCPU,分别以低载CPU集合中的各个物理CPU为目标物理CPU,计算待迁出VCPU迁移至目标物理CPU后,该目标物理CPU所在的共享缓存的共生系数;
(3)以低载CPU集合中任意一个运行于共生系数最小的共享缓存上的物理CPU作为最终目标物理CPU,将所述的待迁出VCPU迁移至最终目标物理CPU上;
所述的压力值为VCPU对相应的共享缓存的访问速率;
所述的容忍度为该VCPU在其他VCPU的竞争压力作用下的性能变化值。
2.如权利要求1所述的基于处理器性能监控的虚拟机共生调度方法,其特征在于,所述虚拟计算机系统中的第i个VCPU的压力值LAR(VCPUi)根据公式:
计算,Instructions(VCPUi)表示VCPUi在设定的时间间隔内完成指令的数量,
LLCAccesses(VCPUi)表示VCPUi在设定的时间间隔内的访问共享缓存的访问次数,
VCPUi为该虚拟计算机系统中的第i个VCPU。
3.如权利要求2所述的基于处理器性能监控的虚拟机共生调度方法,其特征在于,所述虚拟计算机系统中的第i个VCPU的容忍度ΔCPI(VCPUi)根据公式:
计算得到,为不施加竞争压力时,若干个设定的时间间隔内VCPUi的运行性能的平均值,
为施加竞争压力时,若干个设定的时间间隔内VCPUi的运行性能的平均值,其中,在每个设定的时间间隔内,VCPUi的运行性能根据公式:
计算得到,Cycles(VCPUi)表示VCPUi在设定的时间间隔内的使用物理CPU的时钟周期数,Instructions(VCPUi)表示VCPUi在设定的时间间隔内完成指令的数量。
4.如权利要求1所述的基于处理器性能监控的虚拟机共生调度方法,其特征在于,所述步骤(1)中,针对任意两个共享缓存,以上述两个共享缓存上负载最大的物理CPU作为高载物理CPU,并以与高载物理CPU不在同一个共享缓存上的物理CPU中负载最小的物理CPU作为低载物理CPU。
5.如权利要求1~4中任意一项权利要求所述的基于处理器性能监控的虚拟机共生调度方法,其特征在于,所述步骤(2)中采用以下方法计算各个VCPU的压力系数和容忍系数:
(a)根据压力值采用K-means聚类方法将所述虚拟计算机系统中所有VCPU聚为若干类,并根据公式:
计算第i类VCPU的压力系数,为第i类VCPU的平均压力值,k为划分的类数;
(b)根据容忍度采用K-means聚类方法将所述虚拟计算机系统中所有VCPU聚为若干类,并根据公式:
计算第i类VCPU的容忍系数,为第i类VCPU的平均容忍度,k为划分的类数。
6.如权利要求5所述的基于处理器性能监控的虚拟机共生调度方法,其特征在于,所述步骤(2)中根据压力值和容忍度,分别采用K-means聚类方法将所述虚拟计算机系统中所有VCPU聚为3类。
7.如权利要求6所述的基于处理器性能监控的虚拟机共生调度方法,其特征在于,所述步骤(2)中,根据压力系数和容忍系数从高载物理CPU上的VCPU中选择压力系数和容忍系数乘积最小的VCPU作为待迁出VCPU。
8.如权利要求7所述的基于处理器性能监控的虚拟机共生调度方法,其特征在于,所述步骤(3)中根据公式:
计算待迁出VCPU迁移至目标物理CPU后,该目标物理CPU所在的共享缓存的共生系数Sy,Sm为该共享缓存上第m个VCPU的生存系数,
N为待迁出VCPU迁移至目标物理CPU后,目标物理CPU所在的共享缓存上的VCPU的总数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410176123.0A CN103955398B (zh) | 2014-04-28 | 2014-04-28 | 一种基于处理器性能监控的虚拟机共生调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410176123.0A CN103955398B (zh) | 2014-04-28 | 2014-04-28 | 一种基于处理器性能监控的虚拟机共生调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103955398A true CN103955398A (zh) | 2014-07-30 |
CN103955398B CN103955398B (zh) | 2017-01-11 |
Family
ID=51332674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410176123.0A Active CN103955398B (zh) | 2014-04-28 | 2014-04-28 | 一种基于处理器性能监控的虚拟机共生调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103955398B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104536800A (zh) * | 2014-09-29 | 2015-04-22 | 杭州华为数字技术有限公司 | 一种虚拟机放置方法及装置 |
CN104699629A (zh) * | 2015-03-16 | 2015-06-10 | 清华大学 | 共享片上缓存划分装置 |
CN105808454A (zh) * | 2014-12-31 | 2016-07-27 | 北京东土科技股份有限公司 | 一种多端口访问共享缓存的方法及装置 |
CN105988856A (zh) * | 2015-02-02 | 2016-10-05 | 龙芯中科技术有限公司 | 解释器访存优化方法及装置 |
CN107479945A (zh) * | 2017-08-15 | 2017-12-15 | 爱普(福建)科技有限公司 | 一种虚拟机资源调度方法及装置 |
CN107851040A (zh) * | 2015-07-23 | 2018-03-27 | 高通股份有限公司 | 用于使用高速缓存需求监视在异构处理器簇架构中调度任务的系统和方法 |
CN109144658A (zh) * | 2017-06-27 | 2019-01-04 | 阿里巴巴集团控股有限公司 | 有限资源的负载均衡方法、装置及电子设备 |
CN109766243A (zh) * | 2019-01-02 | 2019-05-17 | 浙江中烟工业有限责任公司 | 一种基于幂函数的多核主机性能监控方法 |
CN109947538A (zh) * | 2019-03-29 | 2019-06-28 | 神州数码信息系统有限公司 | 一种基于vCPU调度解决虚拟机性能干扰的方法 |
CN111209079A (zh) * | 2019-12-27 | 2020-05-29 | 山东乾云启创信息科技股份有限公司 | 一种基于鲲鹏处理器的调度方法、装置及介质 |
CN113032154A (zh) * | 2021-04-19 | 2021-06-25 | 深信服科技股份有限公司 | 一种虚拟cpu的调度方法、装置、电子设备及存储介质 |
CN113544647A (zh) * | 2019-03-08 | 2021-10-22 | 微软技术许可有限责任公司 | 云计算系统中使用虚拟机系列建模的容量管理 |
CN113918272A (zh) * | 2020-07-10 | 2022-01-11 | 上海交通大学 | 分离式虚拟机及其虚拟机架构、构建方法和优化方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120005670A1 (en) * | 2010-06-30 | 2012-01-05 | Sap Ag | Distributed cloud computing architecture |
US20120089663A1 (en) * | 2006-12-29 | 2012-04-12 | Jeff Sedayao | Apparatus for end-user transparent utilization of computational, storage, and network capacity of mobile devices, and associated methods |
US20120167067A1 (en) * | 2010-12-23 | 2012-06-28 | International Business Machines Corporation | Batch dispatch of java native interface calls |
CN102662725A (zh) * | 2012-03-15 | 2012-09-12 | 中国科学院软件研究所 | 一种事件驱动的高并发流程虚拟机实现方法 |
CN103164283A (zh) * | 2012-05-10 | 2013-06-19 | 上海兆民云计算科技有限公司 | 一种虚拟桌面系统中虚拟化资源动态调度管理方法及系统 |
-
2014
- 2014-04-28 CN CN201410176123.0A patent/CN103955398B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120089663A1 (en) * | 2006-12-29 | 2012-04-12 | Jeff Sedayao | Apparatus for end-user transparent utilization of computational, storage, and network capacity of mobile devices, and associated methods |
US20120005670A1 (en) * | 2010-06-30 | 2012-01-05 | Sap Ag | Distributed cloud computing architecture |
US20120167067A1 (en) * | 2010-12-23 | 2012-06-28 | International Business Machines Corporation | Batch dispatch of java native interface calls |
CN102662725A (zh) * | 2012-03-15 | 2012-09-12 | 中国科学院软件研究所 | 一种事件驱动的高并发流程虚拟机实现方法 |
CN103164283A (zh) * | 2012-05-10 | 2013-06-19 | 上海兆民云计算科技有限公司 | 一种虚拟桌面系统中虚拟化资源动态调度管理方法及系统 |
Non-Patent Citations (1)
Title |
---|
王凯 等: ""Xen虚拟机的虚拟CPU松弛协同调度方法"", 《计算机研究与发展》 * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104536800B (zh) * | 2014-09-29 | 2018-05-11 | 杭州华为数字技术有限公司 | 一种虚拟机放置方法及装置 |
CN104536800A (zh) * | 2014-09-29 | 2015-04-22 | 杭州华为数字技术有限公司 | 一种虚拟机放置方法及装置 |
CN105808454A (zh) * | 2014-12-31 | 2016-07-27 | 北京东土科技股份有限公司 | 一种多端口访问共享缓存的方法及装置 |
CN105988856A (zh) * | 2015-02-02 | 2016-10-05 | 龙芯中科技术有限公司 | 解释器访存优化方法及装置 |
CN105988856B (zh) * | 2015-02-02 | 2019-04-16 | 龙芯中科技术有限公司 | 解释器访存优化方法及装置 |
CN104699629A (zh) * | 2015-03-16 | 2015-06-10 | 清华大学 | 共享片上缓存划分装置 |
CN104699629B (zh) * | 2015-03-16 | 2017-09-22 | 清华大学 | 共享片上缓存划分装置 |
CN107851040A (zh) * | 2015-07-23 | 2018-03-27 | 高通股份有限公司 | 用于使用高速缓存需求监视在异构处理器簇架构中调度任务的系统和方法 |
CN109144658A (zh) * | 2017-06-27 | 2019-01-04 | 阿里巴巴集团控股有限公司 | 有限资源的负载均衡方法、装置及电子设备 |
CN107479945B (zh) * | 2017-08-15 | 2021-06-22 | 爱普(福建)科技有限公司 | 一种虚拟机资源调度方法及装置 |
CN107479945A (zh) * | 2017-08-15 | 2017-12-15 | 爱普(福建)科技有限公司 | 一种虚拟机资源调度方法及装置 |
CN109766243A (zh) * | 2019-01-02 | 2019-05-17 | 浙江中烟工业有限责任公司 | 一种基于幂函数的多核主机性能监控方法 |
CN109766243B (zh) * | 2019-01-02 | 2022-05-27 | 浙江中烟工业有限责任公司 | 一种基于幂函数的多核主机性能监控方法 |
CN113544647A (zh) * | 2019-03-08 | 2021-10-22 | 微软技术许可有限责任公司 | 云计算系统中使用虚拟机系列建模的容量管理 |
CN109947538A (zh) * | 2019-03-29 | 2019-06-28 | 神州数码信息系统有限公司 | 一种基于vCPU调度解决虚拟机性能干扰的方法 |
CN109947538B (zh) * | 2019-03-29 | 2022-12-02 | 神州数码信息系统有限公司 | 一种基于vCPU调度解决虚拟机性能干扰的方法 |
CN111209079A (zh) * | 2019-12-27 | 2020-05-29 | 山东乾云启创信息科技股份有限公司 | 一种基于鲲鹏处理器的调度方法、装置及介质 |
CN113918272A (zh) * | 2020-07-10 | 2022-01-11 | 上海交通大学 | 分离式虚拟机及其虚拟机架构、构建方法和优化方法 |
CN113032154A (zh) * | 2021-04-19 | 2021-06-25 | 深信服科技股份有限公司 | 一种虚拟cpu的调度方法、装置、电子设备及存储介质 |
CN113032154B (zh) * | 2021-04-19 | 2023-11-07 | 深信服科技股份有限公司 | 一种虚拟cpu的调度方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103955398B (zh) | 2017-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103955398A (zh) | 一种基于处理器性能监控的虚拟机共生调度方法 | |
CN102236582B (zh) | 虚拟化集群负载在多台物理机中均衡分配的方法 | |
Kc et al. | Scheduling hadoop jobs to meet deadlines | |
CN102053873B (zh) | 一种缓存感知的多核处理器虚拟机故障隔离保证方法 | |
CN106293881B (zh) | 一种基于非一致性i/o访问构架的性能监控器及其监控方法 | |
CN103729248B (zh) | 一种基于缓存感知的确定待迁移任务的方法和装置 | |
CN103678003B (zh) | 一种实时性增强的虚拟cpu调度方法 | |
CN104636187A (zh) | 基于负载预测的numa架构中虚拟机调度方法 | |
JP2012525641A5 (zh) | ||
WO2018196296A1 (zh) | 一种非一致性内存访问架构下的虚拟机调度装置及方法 | |
US20140373010A1 (en) | Intelligent resource management for virtual machines | |
CN101986280A (zh) | 虚拟计算系统的自动化测试平台 | |
US20070234357A1 (en) | Method, apparatus and system for processor frequency governers to comprehend virtualized platforms | |
CN103955396A (zh) | 一种基于共生系数平衡的虚拟机调度方法 | |
Guo et al. | A container scheduling strategy based on neighborhood division in micro service | |
CN109558216B (zh) | 一种基于在线迁移的单根i/o虚拟化优化方法及其系统 | |
CN103744716A (zh) | 一种基于当前vcpu调度状态的动态中断均衡映射方法 | |
CN104615480A (zh) | 基于numa高性能网络处理器负载的虚拟处理器调度方法 | |
CN103049332A (zh) | 一种虚拟cpu调度方法 | |
CN104657198A (zh) | Numa架构系统在虚拟机环境中的访存优化方法及系统 | |
CN103870350A (zh) | 一种基于watchdog的微处理器多核加固方法 | |
Gottschlag et al. | Automatic core specialization for AVX-512 applications | |
CN106681830B (zh) | 一种任务缓存空间监测方法和装置 | |
Liu et al. | Understanding the impact of vcpu scheduling on dvfs-based power management in virtualized cloud environment | |
CN106649067A (zh) | 一种性能和能耗预测方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |