一种基于处理器性能监控的虚拟机共生调度方法

xiaoxiao2020-7-22  15

一种基于处理器性能监控的虚拟机共生调度方法
【专利摘要】本发明公开了一种基于处理器性能监控的虚拟机共生调度方法。该虚拟机共生调度方法中基于硬件处理器性能监控单元提供的性能事件,基于多核物理服务器上运行的各个VCPU的压力值和容忍度,计算得到各个VCPU的压力系数和容忍系数,并根据压力系数和容忍系数,从高载物理CPU中确定待迁出VCPU,并通过共生系数预测,将待迁出VCPU迁移至共生系数最小的物理CPU上。在本发明的虚拟机共生调度方法在VCPU共生组合的性能预测中,引入VCPU共生系数表示不同VCPU共生组合的性能,给出了一种基于VCPU共生组合共生系数预测方法,为虚拟机调度时提供有利的决策信息,将共享缓存的使用情况匹配的虚拟机调度到同一个共享缓存的CPU上执行,达到提高虚拟机运行效率的目的。
【专利说明】一种基于处理器性能监控的虚拟机共生调度方法
【技术领域】
[0001]本发明涉及虚拟机【技术领域】,更具体地说,涉及一种基于处理器性能监控的虚拟机共生调度方法。
【背景技术】
[0002]系统虚拟化技术是云计算应用中的基础核心技术之一。在目前云计算数据中心,大部分应用程序部署在虚拟机中,而虚拟机则运行在商用多核架构的物理服务器上。系统虚拟化技术的使用,实现了不同的应用程序可以运行在各自的虚拟机之中,从而极大地方便了应用服务的部署与管理,保证了应用程序之间的隔离性和安全性,提高了数据中心整体运营效率。然而,现有的虚拟化技术不能很好地解决多台虚拟机共享底层的物理服务器资源时出现资源竞争的问题,导致虚拟机性能下降,当物理服务器负载较高时不能有效保证每台虚拟机的服务质量。
[0003]虚拟机之间的资源竞争主要表现在不同虚拟机之间对同一共享物理资源的竞争使用。其中共享物理资源主要包括多核处理器中的共享缓存资源、内存控制器和内存带宽资源以及外部的I/o存储资源等。由于不同虚拟机中运行不同的应用服务程序,应用程序表现出不同的资源需求特征。因此,不同虚拟机对于物理资源的需求各有不同。如果某些虚拟机同时对某一共享物理资源竞争使用,则这部分虚拟机的性能就会出现大幅下降问题。
[0004]目前,多核物理服务器普遍使用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使用另一个共享缓存,从而达到缓解共享资源竞争的问题。
[0005]为了让多核系统中的线程能够更公平地使用共享缓存和处理器中其他的共享资源,FedOTova提出了一种在多核处理器环境下,基于公平使用共享缓存和处理器其他共享资源的线程调度方法和装置。线程调度器首先识别出在多核处理器上运行的可调度的线程,然后基于收集的线程运行时统计数据估计出一个性能参数。调度器根据估计出的性能参数,分别为每个线程重新分配CPU运行的时间片。通过增加线程的CPU运行时间,来弥补那些因共享资源竞争而性能下降的线程,从而使得系统中各个运行线程能够更加公平得使用多核处理器中的共享资源。
[0006]为了监控多核处理器中共享缓存的使用情况,Li Zhao等[2]提出了一种在分布式共享缓存中监控缓存资源使用情况的方法。该方法利用一张进程资源表记录该进程在共享缓存中总共占用共享缓存行的数目。通过比较每个进程的进程资源表可以得出进程之间使用共享缓存资源的高低程度。系统中为每个共享缓存行记录一个资源监控ID(RMID),当该缓存行被修改时,触发相应的进程资源表,从而更新该进程的使用共享缓存行的数目。此夕卜,进程资源表记录的共享缓存总的行数小于物理共享缓存总行数。
[0007]通过增加线程CPU运行时间片的方法消除因共享缓存资源竞争导致的线程间公平性问题,该方法容易导致某些线程的CPU运行时间片过长,使得其他线程获得的CPU时间片小于其按权重分配所需的CPU时间片。方法二中需要修改共享缓存硬件逻辑,实现成本过闻。

【发明内容】

[0008]针对现有技术的不足,本发明提供了一种基于处理器性能监控的虚拟机共生调度方法。
[0009]一种基于处理器性能监控的虚拟机共生调度方法,所述虚拟机共生调度方法应用于基于多核物理服务器的虚拟计算机系统,所述虚拟计算机系统中虚拟机的VCPU运行于多核物理服务器的各个物理CPU,所述的多核物理服务器包括至少2个共享缓存,各个物理(PU运行于所述的共享缓存上,当不同共享缓存上的物理CPU负载不平衡时,进行VCPU的迁移调节各个物理CPU的负载,达到各个物理CPU负载均衡,根据各个VCPU的压力值和容忍度进行VCPU的迁移,包括如下步骤:
[0010](I)每隔一定的时间周期,针对任意两个共享缓存,根据两个共享缓存上的各个物理CPU的负载情况,确定高载物理CPU和低载物理CPU,并将所有共享缓存上与低载物理CPU的负载相同的物理CPU组合作为低载CPU集合;
[0011](2)根据所有VCPU的压力值和容忍度,计算各个共享缓存上各个VCPU的压力系数和容忍系数,并根据各个VCPU的压力系数和容忍系数,从高载物理CPU上的VCPU中选择一个作为待迁出VCPU,分别以低载CPU集合中的各个物理CPU为目标物理CPU,计算待迁出VCPU迁移至目标物理CPU后,该目标物理CPU所在的共享缓存的共生系数;
[0012](3)以低载CPU集合中任意一个运行于共生系数最小的共享缓存上的物理CPU作为最终目标物理CPU,将所述的待迁出VCPU迁移至最终目标物理CPU上;
[0013]所述的压力值为VCPU对相应的共享缓存的访问速率;
[0014]所述的容忍度为该VCPU在其他VCPU的竞争压力作用下的性能变化值。本发明中的物理CPU为多核物理服务器的内核。VCPU(Virtual Central Processing Unit,虚拟CPU)为虚拟机的内核处理器。
[0015]步骤(2)中的低载CPU集合包含有该低载物理CPU。且该步骤中所有共享缓存上与低载物理CPU的负载相同的物理CPU组合作为低载CPU集合中,所述的共享缓存实际上为所述的虚拟计算机系统中除去高载物理CPU所在的共享缓存外所有的共享缓存。
[0016]本发明中物理CPU负载大小为物理CPU的负载是运行其上所有VCPU总的负载大小(即各个VCPU运行时的负载权重的和)。当所有VCPU均满负载运行且每个VCPU的负载都具有相同的权重,则物理CPU的负载大小为该物理CPU上运行的VCPU的个数。
[0017]多核物理平台(多核物理服务器)上运行虚拟机监控软件,可以是hypervisor模式的虚拟化实现,也可以是Host-guest模式的虚拟化实现。虚拟机监控软件中,实现在线硬件性能监控,通过利用硬件处理器性能监控单元提供的性能事件采集功能,在线性能信息采集各个虚拟机的在线运行性能信息,并通过对虚拟机性能信息的分析,传递给VCPU共生调度器需要的调度决策信息。
[0018]本发明基于硬件处理器性能监控单元提供的性能事件,获取各个VCPU的压力值和容忍度,并计算得到各个VCPU的压力系数和容忍系数,并根据压力系数和容忍系数,从高载物理CPU中确定待迁出VCPU,并通过共生系数预测,将待迁出VCPU迁移至共生系数最小的物理CPU上。本发明首次提出了采用VCPU的压力值和容忍度作为衡量多核物理服务器运行性能的性能指标。并进一步引入压力系数和容忍系数,并根据压力系数和容忍系数,在VCPU共生组合的性能预测中,第一次引入VCPU共生系数表示不同VCPU共生组合的性能表现,共生系数越低,表示该共享缓存上的各个虚拟机共生时相互性能影响越小,系统性能提升越大。本发明提出了一种基于VCPU共生组合共生系数预测方法,从而为虚拟机调度时提供有利的决策信息,将共享缓存的使用情况匹配的虚拟机调度到同一个共享缓存的CPU上执行,达到提高虚拟机运行效率的目的。
[0019]本发明的虚拟机共生调度方法执行前还包括如下步骤:
[0020]针对任意一个共享缓存,按照设定的时间周期(通常为10~15s),检测该共享缓存对应的各个物理CPU的负载是否均衡,当不均衡时,对该共享缓存对应的各个物理CPU的负载进行调整。同一共享缓存内部负载调整后,进行不同共享缓存上各个物理CPU的负载平衡状态判定,当不平衡时在进行启动本发明的虚拟机共生调度过程。
[0021]本发明技术方案通过分析系统中虚拟机对共享缓存的使用情况,对虚拟机的缓存使用特点进行在线聚类,利用虚拟机聚类结果预测虚拟机之间共同使用共享缓存的合适程度,从而为虚拟机调度时提供有利的决策信息,使得虚拟机之间共享缓存使用情况匹配的虚拟机调度到同一个共享缓存的CPU上执行,达到提高虚拟机运行效率的目的。
[0022]所述虚拟计算机系统中的第i个VCPU的压力值LAR (VCPUi)根据公式:
【权利要求】
1.一种基于处理器性能监控的虚拟机共生调度方法,所述虚拟机共生调度方法应用于基于多核物理服务器的虚拟计算机系统,所述虚拟计算机系统中虚拟机的VCPU运行于多核物理服务器的各个物理CPU,所述的多核物理服务器包括至少2个共享缓存,各个物理(PU运行于所述的共享缓存上,当不同共享缓存上的物理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)根据公式:

3.如权利要求2所述的基于处理器性能监控的虚拟机共生调度方法,其特征在于,所述虚拟计算机系统中的第i个VCPU的容忍度ACPI(VCPUi)根据公式:

4.如权利要求1所述的基于处理器性能监控的虚拟机共生调度方法,其特征在于,所述步骤(1)中,针对任意两个共享缓存,以上述两个共享缓存上负载最大的物理CPU作为高载物理CPU,并以与高载物理CPU不在同一个共享缓存上的物理CPU中负载最小的物理CPU作为低载物理CPU。
5.如权利要求1~4中任意一项权利要求所述的基于处理器性能监控的虚拟机共生调度方法,其特征在于,所述步骤(2)中采用以下方法计算各个VCPU的压力系数和容忍系数: (a)根据压力值采用K-means聚类方法将所述虚拟计算机系统中所有VCPU聚为若干类,并根据公式:
6.如权利要求5所述的基于处理器性能监控的虚拟机共生调度方法,其特征在于,所述步骤(2)中根据压力值和容忍度,分别采用K-means聚类方法将所述虚拟计算机系统中所有VCPU聚为3类。
7.如权利要求6所述的基于处理器性能监控的虚拟机共生调度方法,其特征在于,所述步骤(2)中,根据压力系数和容忍系数从高载物理CPU上的VCPU中选择压力系数和容忍系数乘积最小的VCPU作为待迁出VCPU。
8.如权利要求7所述的基于处理器性能监控的虚拟机共生调度方法,其特征在于,所述步骤(3)中根据公式:
【文档编号】G06F9/455GK103955398SQ201410176123
【公开日】2014年7月30日 申请日期:2014年4月28日 优先权日:2014年4月28日
【发明者】陈文智, 程雨夏, 王总辉, 俞新杰, 金睿 申请人:浙江大学

最新回复(0)