当前位置: 首页 > 专利查询>浙江大学专利>正文

基于负载预测的NUMA架构中虚拟机调度方法技术

技术编号:11480955 阅读:141 留言:0更新日期:2015-05-20 15:01
本发明专利技术公开了一种基于负载预测的NUMA架构中虚拟机调度方法,首先针对每个虚拟机,按照预设的时间间隔定时获取NUMA架构中各个物理节点的状态信息,根据计算负载方差,当负载方差大于方差阈值时,根据历史状态信息确定调度方案,并按照调度方案进行虚拟机调度。本发明专利技术的虚拟机调度方法提升了NUMA体系结构下VNUMA虚拟机的运行性能,能够防止NUMA体系结构下VNUMA虚拟机调度程序反复调度同一台虚拟机造成的调度“颠簸”现象;(使得调度后的系统负载均衡度小于调度前的负载均衡度,经过多次调度后能够使得系统接近理论上负载最均衡的状态。

【技术实现步骤摘要】
基于负载预测的NUMA架构中虚拟机调度方法
本专利技术涉及网络
,具体涉及一种基于负载预测的NUMA架构中虚拟机调度方法。
技术介绍
随着计算机硬件的不断发展,服务器愈加倾向于承载多种相互独立的业务。虚拟化技术便很好的适应了这种需求:其对计算机硬件资源进行合理分配给多个操作系统,使得这些操作系统能够并发地运行在物理计算机之上。且操作系统间保持着相互的独立,很好地解决了此类问题。现在,虚拟化技术已被广泛运用于互联网服务,云计算等一些领域。在虚拟化技术的诞生之初,计算机多采用SMP结构(SymmetricMulti-Processing,对称多处理结构),即内存空间为所有的CPU所共享,每一个CPU都可以对内存的任意一个地址进行访问,因此,虚拟化系统大多将虚拟机默认为SMP结构。然而,随着计算机CPU物理核个数的增加,现有的SMP结构会带来效率问题:当多个CPU同时访问内存是会造成总线的竞争,从而导致系统整体性能的下降。于是NUMA结构(NonUniformMemoryAccessArchitecture,非统一内存访问)的计算机被引入:其将若干个CPU与一块内存划分为一个节点,每个CPU访问本节点的私有内存时性能较高,访问其他节点的内存时性能较低。通过操作系统对应用程序的合理调配,其能够最大程度地减少访存的竞争,同时访存时间又不会有太大的影响。虚拟化技术亦适应了NUMA体系结构的发展,虚拟机监视器创建支持NUMA体系结构的虚拟机。虚拟机监视器为虚拟机的VCPU和内存划分为若干个虚拟节点,并在创建虚拟机之初通过初始化虚拟机的APIC表中的SRAT表和SLIT表使得虚拟机操作系统能够感知虚拟机的虚拟化NUMA拓扑结构。此后,虚拟机监视器在分配VCPU和内存时使得每一个虚拟节点的VCPU和内存分配到同一个物理节点上,这样便解决了运行在虚拟机之上的操作系统因为不了解底层NUMA结构而造成的性能下降问题。然而,虚拟节点和物理节点的对应关系在虚拟机的运行过程中需要根据节点的负载进行动态调整。现有的负载均衡方式往往是在负载最高的节点上根据CPU使用率和内存使用率选取一个合适的虚拟机迁移到负载较低的目标节点中去。然而,在负载高的节点上所采集到的CPU使用率并不等同于其迁移到目标节点之后给目标节点所增加的CPU使用率开销。于是,基于传统的方法进行迁移,往往会造成迁移之后系统的负载的均衡度不能做到最优。
技术实现思路
针对现有技术的不足,本专利技术提出一种基于负载预测的NUMA架构中虚拟机调度方法。针对每个虚拟机,按照预设的时间间隔定时获取NUMA架构中各个物理节点的状态信息,所述的状态信息包括相应物理节点的CPU、内存使用率,运行于其上的VCPU总数以及运行于其上的当前虚拟机的VCPU数,每次获得状态信息后执行如下操作:(1)根据状态信息计算各个物理节点的负载;(2)根据各个物理节点的负载计算NUMA架构的初始负载方差,并判断初始负载方差是否大于预设的方差阈值;若初始负载方差小于或等于预设的方差阈值则进行虚拟机调度,则不操作(即休眠一个时间间隔);否则,确定负载最高的物理节点并作为源节点,并通过负载预测确定是否存在调度方案,所述的调度方案包括待迁移虚拟机和目标节点:若存在调度方案,则按照所述的调度方案将待迁移虚拟机从所述源节点迁移至目标节点上;否则,不操作。本专利技术的虚拟机调度方法中进行次调度仅调度一个虚拟机,一次调度结束后,负载可能仍然均衡,此时可能需要经过多次调度才能达到负载均衡。且由于整个过程中,各个物理节点的使用状态也会改变,因此通过按照预设的时间间隔进行周期性调度,能够实时对系统负载进行调度。本专利技术迁移时将待迁移虚拟机的内存和虚拟CPU同时从源节点迁移至目标节点上,不会破坏系统的原有架构。执行步骤(1)和(2)的时间开销通常必须小于设定的时间间隔。本专利技术中所述的时间间隔为1~5s,作为优选,所述的时间间隔为1s。本专利技术中计算各个物理节点的负载时同时考虑到CPU负载和内存负载,相应的,所述步骤(1)利用如下公式根据状态信息计算各个物理节点的负载:Load_degreenode=wcpu*cpu_usagenode+wmem*mem_usagenode其中,Load_degreenode为物理节点负载量,wcpu和wmem为CPU负载权重系数和内存负载权重系数,cpu_usagenode为该物理节点的CPU使用率,mem_usagenode为该物理节点的内存使用率。其中,CPU负载权重系数wcpu和内存负载权重系数wmem满足条件:wcpu+wmem=1。考虑到实际应用时,CPU负载和内存负载对NUMA架构中各个物理节点负载的影响,作为优选,本专利技术中wcpu=wmem=0.5。设定的方差阈值的大小直接关系到最终进行虚拟机调度的频率,该方差阈值可根据实际应用情况进行调整。本专利技术所述的方差阈值为0.25~1。通过负载预测确定是否存在调度方案时包括如下步骤:(2-1)以NUMA架构中除源节点外,负载小于预设的负载阈值的其他物理节点作为候选节点;本专利技术中预设的负载阈值为0.75~1。(2-2)针对源节点上的每个虚拟机,分别预测将该虚拟机迁移至每个候选节点上后NUMA架构的负载方差;将当前虚拟机迁移至任意一个候选节点上后NUMA架构的负载方差通过如下方法预测:(2-21)根据源节点和当前候选节点的状态信息分别预测当前虚拟机迁移至候选节点后源节点和当前候选节点的负载;根据如下方法预测当前虚拟机迁移至当前候选节点后源节点的负载:(a1)预测迁移后源节点的CPU使用率Csp:Csp=Cs-CVM其中,Cs为迁移前源节点的CPU使用率,CVM为当前虚拟机在源节点上的CPU使用率;(a2)预测迁移后源节点的内存使用率Usp:其中,PMd为源节点总内存大小,PMu为源节点在调度前已使用的内存大小(可根据检测到的内存使用率和内存量大小计算得到,也可直接采集),VMs为虚拟机在源节点上的内存大小;(a3)根据预测的迁移后源节点的CPU使用率和内存使用率计算迁移后源节点的负载。根据如下方法预测当前虚拟机迁移至当前候选节点后当前候选节点的负载:(b1)根据最近若干次获取的源节点的状态信息,采用岭回归法预测源节点上当前虚拟机的正相关系数kvm和bvm,其中正相关系数kvm和bvm满足如下公式:其中,usagevm为当前虚拟机在源节点上的CPU使用率,usagetotal为源节点的CPU总使用率,vcpuvm为当前虚拟机运行在源节点上的VCPU数,vcputotal为源节点上运行的所有虚拟机的VCPU总数;本专利技术中根据最近5~15次获取的源节点的状态信息预测当前虚拟机的正相关系数kvm和bvm,优选为最近10次。其中,该公式中的vcpuvm和vcputotal从同一次获取的源节点的状态信息中得到,利用不同次获取的源节点的状态信息,根据以上公式从而预测得到源节点上当前虚拟机的正相关系数kvm和bvm。(b2)利用所述的正相关系数kvm和bvm,计算当前虚拟机在当前候选节点上的CPU使用率usagedst_vm:其中,usagedst_total为迁移前当前候选节点的CPU总使用率,vcpudst_total为当前候选节点上所有虚拟机的VCPU总本文档来自技高网
...
基于负载预测的NUMA架构中虚拟机调度方法

【技术保护点】
一种基于负载预测的NUMA架构中虚拟机调度方法,其特征在于,针对每个虚拟机,按照预设的时间间隔定时获取NUMA架构中各个物理节点的状态信息,所述的状态信息包括相应物理节点的CPU、内存使用率,运行于其上的VCPU总数以及运行于其上的当前虚拟机的VCPU数,每次获得状态信息后执行如下操作:(1)根据状态信息计算各个物理节点的负载;(2)根据各个物理节点的负载计算NUMA架构的初始负载方差,并判断初始负载方差是否大于预设的方差阈值;若初始负载方差小于或等于预设的方差阈值则进行虚拟机调度,则不操作;否则,确定负载最高的物理节点并作为源节点,并通过负载预测确定是否存在调度方案,所述的调度方案包括待迁移虚拟机和目标节点:若存在调度方案,则按照所述的调度方案将待迁移虚拟机从所述源节点迁移至目标节点上;否则,不操作。

【技术特征摘要】
1.一种基于负载预测的NUMA架构中虚拟机调度方法,其特征在于,针对每个虚拟机,按照预设的时间间隔定时获取NUMA架构中各个物理节点的状态信息,所述的状态信息包括相应物理节点的CPU、内存使用率,运行于其上的VCPU总数以及运行于其上的当前虚拟机的VCPU数,每次获得状态信息后执行如下操作:(1)根据状态信息计算各个物理节点的负载;(2)根据各个物理节点的负载计算NUMA架构的初始负载方差,并判断初始负载方差是否大于预设的方差阈值;若初始负载方差小于或等于预设的方差阈值则进行虚拟机调度,休眠一个时间间隔;否则,确定负载最高的物理节点并作为源节点,并通过负载预测确定是否存在调度方案,所述的调度方案包括待迁移虚拟机和目标节点:若存在调度方案,则按照所述的调度方案将待迁移虚拟机从所述源节点迁移至目标节点上;否则,不操作。2.如权利要求1所述的基于负载预测的NUMA架构中虚拟机调度方法,其特征在于,所述的时间间隔为1~5s。3.如权利要求1所述的基于负载预测的NUMA架构中虚拟机调度方法,所述步骤(1)利用如下公式根据状态信息计算各个物理节点的负载:Load_degreenode=wcpu*cpu_usagenode+wmem*mem_usagenode其中,Load_degreenode为物理节点负载量,wcpu和wmem为CPU负载权重系数和内存负载权重系数,cpu_usagenode为该物理节点的CPU使用率,mem_usagenode为该物理节点的内存使用率。4.如权利要求1所述的基于负载预测的NUMA架构中虚拟机调度方法,其特征在于,所述的方差阈值为0.25~1。5.如权利要求1所述的基于负载预测的NUMA架构中虚拟机调度方法,其特征在于,通过负载预测确定是否存在调度方案时包括如下步骤:(2-1)以NUMA架构中除源节点外,负载小于预设的负载阈值的其他物理节点作为候选节点;(2-2)针对源节点上的每个虚拟机,分别预测将该虚拟机迁移至每个候选节点上后NUMA架构的负载方差;(2-3)若所有候选节点对应的负载方差均大于或等于初始负载方差,则认为不存在调度方案;否则,认为存在调度方案,所述调度方案以负载方差最小时对应的候选节点作为目标节点,对应的虚拟机为待迁移虚拟机。6.如权利要求5所述的基于负载预测的NUMA架构中虚拟机调度方法,其特征在于,预设的负载阈值为0.75~1。7.如权利要求5所述的基于负载预测的NUMA架构中虚拟机调度方法,其特征在于,所述步骤(2-2)中将当前虚拟机迁移至任意一个候选节点上后NUMA架构的负载方差通过如下方法预测:(2-21)根据源节点和当前候选节点的状态信息分别预测当前虚拟...

【专利技术属性】
技术研发人员:陈建海左起同王备何钦铭杨策黄步添
申请(专利权)人:浙江大学
类型:发明
国别省市:浙江;33

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

1