CN102521055A - 一种虚拟机资源分配方法及其系统 - Google Patents
一种虚拟机资源分配方法及其系统 Download PDFInfo
- Publication number
- CN102521055A CN102521055A CN201110421298XA CN201110421298A CN102521055A CN 102521055 A CN102521055 A CN 102521055A CN 201110421298X A CN201110421298X A CN 201110421298XA CN 201110421298 A CN201110421298 A CN 201110421298A CN 102521055 A CN102521055 A CN 102521055A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- overbar
- resources
- value
- unit interval
- 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
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种虚拟机资源分配方法及其系统,统计主机上运行的各个虚拟机的单位时间I/O操作次数、VCPU单次执行时间、单位时间指令队列深度、以及单位时间收发数据包数目的统计值,并对主机上运行的所有虚拟机计算每一项所述统计值的平均值。根据单位时间I/O操作次数计算虚拟机的I/O操作资源分配值;根据VCPU单次执行时间计算所述实时响应资源分配值;根据单位时间指令队列深度计算所述运算资源分配值;根据单位时间收发数据包数目,计算所述通信资源分配值。最后获得对各个虚拟机分配资源的总资源分配值,根据所述总资源分配值来调节各个虚拟机占用的计算机资源分配比例。以达到根据虚拟机的应用特征来优化虚拟机性能的目的。
Description
技术领域
本发明涉及虚拟机技术领域,尤其涉及一种虚拟机资源分配方法,以及一种虚拟机资源分配系统。
背景技术
60年代末期兴起的虚拟机技术与虚拟机,随着存储虚拟化技术,以及一批新产品的涌现,在70年代初期达到了它的第一个高峰。但是,随着硬件价格的下降、性能的大幅上升,以及廉价的小型机、个人电脑和多任务操作系统的出现,虚拟机技术开始走向衰落。
90年代,研究者在研究解决大规模并行处理机(MPP,Massively ParallelProcessing)不能运行已有的操作系统和编程困难等问题时发现,使用虚拟机技术可以使这些体系结构复杂的机器看起来与已有平台完全相似,从而可以运行现有的操作系统。
虚拟化是一种计算机系统抽象技术,通过物理平台上的虚拟机逻辑层管理计算机资源,并向运行在其上的客户层提供虚拟的资源。客户机操作系统可以通过标准接口访问资源,但是接口并不是与物理的资源直接通信,而是通过虚拟层来对真实资源进行管理,从而使得有限的资源可在多个虚拟机之间复用。直接运行在硬件平台上的虚拟化层称为虚拟机监视器VMM或者Hypervisor,它负责对虚拟机提供硬件资源和软件资源的抽象,为客户操作系统提供运行环境。
在虚拟化过程中,虚拟化软件需要实现对硬件的抽象,资源的分配、调度和管理,虚拟机与宿主操作系统及多个虚拟机的隔离等功能。VMM对底层的所有硬件资源进行抽象,然后把它们重新组合并集成到多个虚拟机(VirtualMachine)中实现虚拟化,每个虚拟机都能够运行独立的操作系统实例。
当前,主流的虚拟化技术产品有Vmware、Xen、Hyper-V和KVM等,它们在服务器的整合、资源的控制与优化,成本与能源的节约上都做出了杰出的贡献。虚拟化技术在虚拟集群领域也用很好的应用前景,并逐渐应用在云计算等高端领域中。
然而,通过虚拟化技术,在一台主机上可以运行着多个虚拟机,在每个虚拟机中运行着不同的操作系统和应用,而每个虚拟机都需要占用一定的计算机资源,如CPU资源和I/O资源。
由于各个虚拟机运行的应用是不同的。有些虚拟机中运行的是实时性应用,例如视频会议;有些虚拟机中运行的是I/O密集型应用,例如本地观看高清电影;有些虚拟机中运行着CPU密集应用,例如进行精确的科学计算;还有些虚拟机运行着通信密集的应用,例如下载。还有很多的应用它是几个特征综合的,例如:网上视频点播,它既是实时的、IO密集的,也是通信密集的。当CPU资源充足时,可以保证各种虚拟机的正常运行,但是当CPU负载非常重时,虚拟机进入争夺计算机资源的状态,此时若缺乏适当的优化措施,很容易导致主机上的所有虚拟机的应用相互影响,而使得各个虚拟机的性能下降。
以一个开放源代码虚拟机监视器Xen为例,它的CPU调度和I/O调度算法对运行在其上的虚拟机非常注重公平和一致性,而不考虑虚拟机上运行的应用的具体资源需求。因此从开始到结束,Xen对所有的虚拟机都是按照初始分配给它的份额Weight来同等对待,并按照基本的分时方法依次轮流执行不同的虚拟CPU。但是在不同的虚拟机中运行着不同的应用程序,并且各个应用程序的特征也不尽相同。例如,实时性的应用,它需要I/O处理要及时,且CPU计算要同步,这样才能满足程序响应时间的要求,而使得用户得到真正的实时感受。
如果对各个虚拟机都分配同等份额的I/O处理资源和CPU,则可能导致需要大量I/O处理资源的实时性的应用的响应变慢,影响用户体验。
发明内容
本发明要解决的技术问题在于提供一种能够对同一计算机上运行的各个虚拟机合理地分配计算机资源的虚拟机资源分配方法。
一种虚拟机资源分配方法,包括以下步骤:分别获取在主机上运行的各个虚拟机的单位时间I/O操作次数、VCPU单次执行时间、单位时间指令队列深度、以及单位时间收发数据包数目的统计值,并对主机上运行的所有虚拟机计算每一项所述统计值的平均值;根据各个虚拟机单位时间I/O操作次数的统计值及对应的单位时间I/O操作次数的平均值,计算所述虚拟机的I/O操作资源分配值;根据各个虚拟机单位时间I/O操作次数的统计值及对应的单位时间I/O操作次数的平均值,以及所述虚拟机VCPU单次执行时间的统计值及对应的VCPU单次执行时间的平均值,计算所述虚拟机的实时响应资源分配值;根据各个虚拟机单位时间指令队列深度的统计值及对应的单位时间指令队列深度的平均值,计算所述虚拟机的运算资源分配值;根据各个虚拟机单位时间收发数据包数目的统计值及对应的单位时间收发数据包数目的平均值,计算所述虚拟机的通信资源分配值;根据所述I/O操作资源分配值,所述实时响应资源分配值,所述运算资源分配值,以及所述通信资源分配值,计算所述虚拟机的总资源分配值;根据各个所述虚拟机的总资源分配值,调节各个虚拟机的资源分配比例。
与现有技术相比较,本发明的虚拟机资源分配方法中,统计主机上运行的各个虚拟机的单位时间I/O操作次数、VCPU单次执行时间、单位时间指令队列深度、以及单位时间收发数据包数目的统计值,并对主机上运行的所有虚拟机计算每一项所述统计值的平均值。根据单位时间I/O操作次数计算虚拟机的I/O操作资源分配值;根据VCPU单次执行时间计算所述实时响应资源分配值;根据单位时间指令队列深度计算所述运算资源分配值;根据单位时间收发数据包数目,计算所述通信资源分配值。最后获得对各个虚拟机分配资源的总资源分配值,根据所述总资源分配值来调节各个虚拟机占用的计算机资源分配比例。
例如,在统计获得某一虚拟机的单位时间I/O操作次数较多时,其对应的I/O操作资源分配值增大,从而使其对应的总资源分配值也增大,获得更多的计算机资源分配比例,保证所述计算机能够运行顺畅。同样,当其他的统计值增大时,也会相应地增加其对应的资源分配值,因此可以实现同一计算机上运行的各个虚拟机之间的合理资源调配。
进一步地,还可以通过设置各个资源分配值在所述总资源分配值中所占的权重,从而可以对各个虚拟机设定资源分配的优先级,例如,设定所述I/O操作资源分配值在所述总资源分配值中所占的权重较大,则对单位时间I/O操作次数较多的虚拟机,将优先分配更多计算机资源。
本发明要解决的技术问题在于提供一种能够对同一计算机上运行的各个虚拟机合理地分配计算机资源的虚拟机资源分配系统。
一种虚拟机资源分配系统,包括:监控模块、操作资源分配值计算模块、实时资源分配值计算模块、运算资源分配值计算模块、通信资源分配值计算模块、总资源分配值计算模块和资源调度模块。所述监控模块用于获取在主机上运行的各个虚拟机的单位时间I/O操作次数、VCPU单次执行时间、单位时间指令队列深度、以及单位时间收发数据包数目的统计值,并对主机上运行的所有虚拟机计算每一项所述统计值的平均值。所述操作资源分配值计算模块用于根据各个虚拟机单位时间I/O操作次数的统计值及对应的单位时间I/O操作次数的平均值,计算所述虚拟机的I/O操作资源分配值。所述实时资源分配值计算模块用于根据各个虚拟机单位时间I/O操作次数的统计值及对应的单位时间I/O操作次数的平均值,以及所述虚拟机VCPU单次执行时间的统计值及对应的VCPU单次执行时间的平均值,计算所述虚拟机的实时响应资源分配值。所述运算资源分配值计算模块用于根据各个虚拟机单位时间指令队列深度的统计值及对应的单位时间指令队列深度的平均值,计算所述虚拟机的运算资源分配值。所述通信资源分配值计算模块用于根据各个虚拟机单位时间收发数据包数目的统计值及对应的单位时间收发数据包数目的平均值,计算所述虚拟机的通信资源分配值。所述总资源分配值计算模块用于根据所述I/O操作资源分配值,所述实时响应资源分配值,所述运算资源分配值,以及所述通信资源分配值,计算所述虚拟机的总资源分配值。所述资源调度模块用于根据各个所述虚拟机的总资源分配值,调节各个虚拟机的资源分配比例。
与现有技术相比较,本发明的虚拟机资源分配系统中,所述监控模块统计主机上运行的各个虚拟机的单位时间I/O操作次数、VCPU单次执行时间、单位时间指令队列深度、以及单位时间收发数据包数目的统计值,并对主机上运行的所有虚拟机计算每一项所述统计值的平均值。所述操作资源分配值计算模块根据单位时间I/O操作次数计算虚拟机的I/O操作资源分配值;所述实时资源分配值计算模块根据VCPU单次执行时间计算所述实时响应资源分配值;所述运算资源分配值计算模块根据单位时间指令队列深度计算所述运算资源分配值;所述通信资源分配值计算模块根据单位时间收发数据包数目,计算所述通信资源分配值。最后由所述总资源分配值计算模块获得对各个虚拟机分配资源的总资源分配值,并由所述资源调度模块根据所述总资源分配值来调节各个虚拟机占用的计算机资源分配比例。
例如,在统计获得某一虚拟机的单位时间I/O操作次数较多时,其对应的I/O操作资源分配值增大,从而使其对应的总资源分配值也增大,获得更多的计算机资源分配比例,保证所述计算机能够运行顺畅。同样,当其他的统计值增大时,也会相应地增加其对应的资源分配值,因此可以实现同一计算机上运行的各个虚拟机之间的合理资源调配。
进一步地,还可以通过设置各个资源分配值在所述总资源分配值中所占的权重,从而可以对各个虚拟机设定资源分配的优先级,例如,设定所述I/O操作资源分配值在所述总资源分配值中所占的权重较大,则对单位时间I/O操作次数较多的虚拟机,将优先分配更多计算机资源。
附图说明
图1是本发明虚拟机资源分配方法的流程示意图;
图2是本发明虚拟机资源分配系统的结构示意图。
具体实施方式
请参阅图1,图1是本发明虚拟机资源分配方法的流程示意图。
本发明虚拟机资源分配方法包括以下步骤:
S1,分别获取在主机上运行的各个虚拟机的单位时间I/O操作次数、VCPU单次执行时间、单位时间指令队列深度、以及单位时间收发数据包数目的统计值,并对主机上运行的所有虚拟机计算每一项所述统计值的平均值;
在本步骤中,通过对各个虚拟机的运行情况的监控,获取上述各项统计值。即通过监控各个虚拟机的I/O操作,获取所述虚拟机的单位时间I/O操作次数的统计值;通过监控各个虚拟机的VCPU单次执行时间,获取所述虚拟机的VCPU单次执行时间的统计值;通过监控各个虚拟机的指令队列,获取所述单位时间指令队列深度的统计值;通过监控各个虚拟机的数据包收发,获取所述单位时间收发数据包数目的统计值。
进一步可设定每隔一个预定周期对各个虚拟机的运行情况发起一次上述监控,以获得最新的统计值数据。
然后对上述各项统计值,在主机上运行的所有虚拟机范围内求取其平均值。例如,根据各个虚拟机的单位时间I/O操作次数的统计值,计算单位时间I/O操作次数的平均值;根据各个虚拟机的VCPU单次执行时间,计算VCPU单次执行时间的平均值;根据各个虚拟机的单位时间指令队列深度,计算单位时间指令队列深度的平均值;根据各个虚拟机的单位时间收发数据包数目,计算单位时间收发数据包数目的平均值。
S2,根据各个虚拟机单位时间I/O操作次数的统计值及对应的单位时间I/O操作次数的平均值,计算所述虚拟机的I/O操作资源分配值;
在本步骤中,优选按照以下公式计算所述虚拟机的I/O操作资源分配值:
因此可根据不同虚拟机的I/O操作次数来确定其对I/O操作资源的要求。
通常,若某一虚拟机满足则认为此虚拟机的应用是I/O密集型的。进一步可通过调整所述常数α,来调节虚拟机应用是I/O密集型的条件,从而调整各个虚拟机的I/O操作资源分配值。当满足应用是I/O密集型的虚拟机过多时,可提高α的值,使得应用是I/O密集型的虚拟机的层次更加分明,资源分配更加合理。
S3,根据各个虚拟机单位时间I/O操作次数的统计值及对应的单位时间I/O操作次数的平均值,以及所述虚拟机VCPU单次执行时间的统计值及对应的VCPU单次执行时间的平均值,计算所述虚拟机的实时响应资源分配值;
在本步骤中,优选根据以下公式计算所述虚拟机的实时响应资源分配值:
其中,G(x,t)为所述虚拟机的实时响应资源分配值,x为虚拟机单位时间I/O操作次数的统计值,及为主机上运行的所有虚拟机单位时间I/O操作次数的平均值,t为虚拟机VCPU单次执行时间的统计值,为主机上运行的所有虚拟机的VCPU单次执行时间的平均值,β、δ为预先设定的常数,且β>2、
因此,可根据不同虚拟机的I/O操作次数和VCPU单次执行时间来决定其对实时响应资源的要求。
通常,当β<α且时,若某一虚拟机满足且则认为此虚拟机的应用是实时型的。进一步可通过调整所述常数β和δ的值,来调节虚拟机应用是实时型的条件,从而调整各个虚拟机的实时响应资源分配值。当满足应用是实时型的虚拟机过多时,可提高β的值和/或减低δ的值,使得应用是实时型的虚拟机的层次更加分明,资源分配更加合理。
S4,根据各个虚拟机单位时间指令队列深度的统计值及对应的单位时间指令队列深度的平均值,计算所述虚拟机的运算资源分配值;
在本步骤中,优选根据以下公式计算所述虚拟机的运算资源分配值:
若虚拟机具有多个虚拟CPU,则此虚拟机的指令队列深度为各个虚拟CPU的指令队列深度之和。可根据不同虚拟机的单位时间指令队列深度决定其对运算资源的要求。
通常,当θ>2时,若某一虚拟机满足则认为此虚拟机的应用是计算密集型的。进一步可通过调整所述常数θ的值,来调节虚拟机应用是计算密集型的条件,从而调整各个虚拟机的运算资源分配值。当满足应用是计算密集型的虚拟机过多时,可提高θ的值,使得应用是计算密集型的虚拟机的层次更加分明,资源分配更加合理。
S5,根据各个虚拟机单位时间收发数据包数目的统计值及对应的单位时间收发数据包数目的平均值,计算所述虚拟机的通信资源分配值;
在本步骤中,优选根据以下公式计算所述虚拟机的通信资源分配值:
可根据不同虚拟机的单位时间收发数据包数目决定其对通信资源的要求。通常,当ρ>2时,若某一虚拟机满足则认为此虚拟机的应用是通信密集型的。进一步可通过调整所述常数ρ的值,来调节虚拟机应用是通信密集型的条件,从而调整各个虚拟机的通信资源分配值。当满足应用是通信密集型的虚拟机过多时,可提高ρ的值,使得应用是通信密集型的虚拟机的层次更加分明,资源分配更加合理。
S6,根据所述I/O操作资源分配值,所述实时响应资源分配值,所述运算资源分配值,以及所述通信资源分配值,计算所述虚拟机的总资源分配值;
在本步骤中,优选按照以下公式计算所述虚拟机的总资源分配值:
Weight=w1×F(x)+w2×G(x,t)+w3×H(y)+w4×I(n)
其中,Weight是所述虚拟机的总资源分配值,w1、w2、w3和w4分别为预先设定的各种资源分配值的权重,F(x)为所述虚拟机的I/O操作资源分配值,G(x,t)为所述虚拟机的实时响应资源分配值,H(y)为所述虚拟机的运算资源分配值,I(n)为所述虚拟机的通信资源分配值。
进一步地,在上述计算虚拟机的总资源分配值的步骤之前,进一步包括根据用户指令,调整各种资源分配值的权重的步骤。即,根据用户指令来设置不同类型的虚拟机的对计算机资源占用的优先级。
例如:若需要将IO密集型的应用优先处理,则可以提高w1降低w2、w3和w4。若需要将实时型的应用优先处理,则可以提高w2降低w1、w3和w4。这样可以保证各个虚拟机在资源分配时,考虑到各自的应用特征的优先性。
S7,根据各个所述虚拟机的总资源分配值,调节各个虚拟机的资源分配比例。
在本步骤中,优选采用以下方法调节各个虚拟机的资源分配比例:计算各个所述虚拟机的总资源分配值的总和;计算各个所述虚拟机的总资源分配值与所述总和的比值;根据所述比值调整各个虚拟机的资源分配比例。
在本步骤中,对虚拟机VCPU的调度,可根据最新修改总资源分配值,进行虚拟CPU运行队列的优化操作,保证总资源分配值高的虚拟机能获得优先处理和更多的CPU运行时间片,从而实现根据虚拟机的应用特征来优化虚拟机性能。
与现有技术相比较,本发明的虚拟机资源分配方法主要是通过周期性的监控和统计虚拟机上运行着的应用的特征,来优化虚拟机对计算机资源的利用。例如:对于实时型、I/O密集型和计算密集型和通信密集型的应用,根据不同的应用需求来分配给虚拟机不同的CPU和I/O资源分配值,所述资源分配值是通过量化得到的。使得在主机负载较重时,拥有高资源分配值的虚拟机能获得更多的CPU和I/O资源,而优先运行。
以下结合具体的例子说明本发明的虚拟机资源分配方法。
首先,通过虚拟机监视器(VMM),对接入主机的虚拟机进行监控,当有新加入的虚拟机时,对新加入的虚拟机分配初始资源分配值w。
然后,判断是否到达虚拟机周期监控发起时间,若未到达,则结束。若已经到达周期发起时间,则开始监控各个虚拟机的单位时间I/O操作次数x、虚拟机的VCPU单次执行时间t、虚拟机的指令队列深度y和虚拟机的接受和发送数据包的数目n,并统计主机上所有虚拟机的平均单位时间I/O操作次数虚拟机的平均VCPU单次执行时间所有虚拟机的平均指令队列深度和所有虚拟机的平均接受和发送数据包的数目
再根据获得的统计值数据,调用对应的资源分配值计算函数F(x)、G(x,t)、H(y)和I(n),对各个虚拟机进行资源分配值的量化运算,得到相应的资源分配值f(x)、g(x,t)、h(y)和i(n)。利用这些资源分配值套用以下公式:
Weight=w1×f(x)+w2×g(x,t)+w3×h(y)+w4×i(n)
其中wi≥0,i=1,2,3,4。wi为虚拟机的各种资源分配值的权重。
最后,根据各个所述虚拟机的总资源分配值,调节各个虚拟机的资源分配比例。在每次完成虚拟机的总资源分配值的计算之后,进行虚拟CPU运行队列的优化操作,保证高总资源分配值的虚拟CPU能获得优先处理和更多的CPU运行时间片,达到根据虚拟机的应用特征来优化虚拟机性能的目的。
请参阅图2,图2是本发明虚拟机资源分配系统的结构示意图。
所述虚拟机资源分配系统,包括:监控模块11、操作资源分配值计算模块12、实时资源分配值计算模块13、运算资源分配值计算模块14、通信资源分配值计算模块15、总资源分配值计算模块16和资源调度模块17。
所述监控模块11用于获取在主机上运行的各个虚拟机的单位时间I/O操作次数、VCPU单次执行时间、单位时间指令队列深度、以及单位时间收发数据包数目的统计值,并对主机上运行的所有虚拟机计算每一项所述统计值的平均值;
所述操作资源分配值计算模块12用于根据各个虚拟机单位时间I/O操作次数的统计值及对应的单位时间I/O操作次数的平均值,计算所述虚拟机的I/O操作资源分配值;
所述实时资源分配值计算模块13用于根据各个虚拟机单位时间I/O操作次数的统计值及对应的单位时间I/O操作次数的平均值,以及所述虚拟机VCPU单次执行时间的统计值及对应的VCPU单次执行时间的平均值,计算所述虚拟机的实时响应资源分配值;
所述运算资源分配值计算模块14用于根据各个虚拟机单位时间指令队列深度的统计值及对应的单位时间指令队列深度的平均值,计算所述虚拟机的运算资源分配值;
所述通信资源分配值计算模块15用于根据各个虚拟机单位时间收发数据包数目的统计值及对应的单位时间收发数据包数目的平均值,计算所述虚拟机的通信资源分配值;
所述总资源分配值计算模块16用于根据所述I/O操作资源分配值,所述实时响应资源分配值,所述运算资源分配值,以及所述通信资源分配值,计算所述虚拟机的总资源分配值;
所述资源调度模块17用于根据各个所述虚拟机的总资源分配值,调节各个虚拟机的资源分配比例。
与现有技术相比较,本发明的虚拟机资源分配系统中,所述监控模块统计主机上运行的各个虚拟机的单位时间I/O操作次数、VCPU单次执行时间、单位时间指令队列深度、以及单位时间收发数据包数目的统计值,并对主机上运行的所有虚拟机计算每一项所述统计值的平均值。所述操作资源分配值计算模块根据单位时间I/O操作次数计算虚拟机的I/O操作资源分配值;所述实时资源分配值计算模块根据VCPU单次执行时间计算所述实时响应资源分配值;所述运算资源分配值计算模块根据单位时间指令队列深度计算所述运算资源分配值;所述通信资源分配值计算模块根据单位时间收发数据包数目,计算所述通信资源分配值。最后由所述总资源分配值计算模块获得对各个虚拟机分配资源的总资源分配值,并由所述资源调度模块根据所述总资源分配值来调节各个虚拟机占用的计算机资源分配比例。
例如,在统计获得某一虚拟机的单位时间I/O操作次数较多时,其对应的I/O操作资源分配值增大,从而使其对应的总资源分配值也增大,获得更多的计算机资源分配比例,保证所述计算机能够运行顺畅。同样,当其他的统计值增大时,也会相应地增加其对应的资源分配值,因此可以实现同一计算机上运行的各个虚拟机之间的合理资源调配。
所述监控模块11可通过对各个虚拟机的运行情况的监控,获取上述各项统计值。即通过监控各个虚拟机的I/O操作,获取所述虚拟机的单位时间I/O操作次数的统计值;通过监控各个虚拟机的VCPU单次执行时间,获取所述虚拟机的VCPU单次执行时间的统计值;通过监控各个虚拟机的指令队列,获取所述单位时间指令队列深度的统计值;通过监控各个虚拟机的数据包收发,获取所述单位时间收发数据包数目的统计值。
所述监控模块11可进一步设定每隔一个预定周期对各个虚拟机的运行情况发起一次上述监控,以获得最新的统计值数据。然后对上述各项统计值,在主机上运行的所有虚拟机范围内求取其平均值。例如,根据各个虚拟机的单位时间I/O操作次数的统计值,计算单位时间I/O操作次数的平均值;根据各个虚拟机的VCPU单次执行时间,计算VCPU单次执行时间的平均值;根据各个虚拟机的单位时间指令队列深度,计算单位时间指令队列深度的平均值;根据各个虚拟机的单位时间收发数据包数目,计算单位时间收发数据包数目的平均值。
所述操作资源分配值计算模块12优选根据以下公式计算所述虚拟机的I/O操作资源分配值:
所述实时资源分配值计算模块13优选根据以下公式计算所述虚拟机的实时响应资源分配值:
其中,G(x,t)为所述虚拟机的实时响应资源分配值,x为虚拟机单位时间I/O操作次数的统计值,及为主机上运行的所有虚拟机单位时间I/O操作次数的平均值,t为虚拟机VCPU单次执行时间的统计值,为主机上运行的所有虚拟机的VCPU单次执行时间的平均值,β、δ为预先设定的常数,且β>2、
所述运算资源分配值计算模块14优选根据以下公式计算所述虚拟机的运算资源分配值:
所述通信资源分配值计算模块15优选根据以下公式计算所述虚拟机的通信资源分配值:
在本实施方式中,所述总资源分配值计算模块16优选根据以下公式计算所述虚拟机的总资源分配值:
Weight=w1×F(x)+w2×G(x,t)+w3×H(y)+w4×I(n)
其中,Weight是所述虚拟机的总资源分配值,w1、w2、w3和w4分别为预先设定的各种资源分配值的权重,F(x)为所述虚拟机的I/O操作资源分配值,G(x,t)为所述虚拟机的实时响应资源分配值,H(y)为所述虚拟机的运算资源分配值,I(n)为所述虚拟机的通信资源分配值。
可以通过设置所述总资源分配值计算模块16中各个资源分配值在所述总资源分配值中所占的权重,从而可以对各个虚拟机设定资源分配的优先级,例如,设定所述I/O操作资源分配值在所述总资源分配值中所占的权重较大,则对单位时间I/O操作次数较多的虚拟机,将优先分配更多计算机资源。
在本实施方式中,所述资源调度模块17计算各个所述虚拟机的总资源分配值的总和,并计算各个所述虚拟机的总资源分配值与所述总和的比值,根据所述比值调整各个虚拟机占用的资源分配比例。
作为一种优选实施方式,本发明的虚拟机资源分配系统进一步包括优先级调整模块,所述优先级调整模块用于根据用户指令,调整各种资源分配值的权重。
与现有技术相比较,本发明的虚拟机资源分配系统通过周期性的监控和统计虚拟机上运行着的应用的特征,来优化虚拟机对计算机资源的利用。例如:对于实时型、I/O密集型和计算密集型和通信密集型的应用,根据不同的应用需求来分配给虚拟机不同的CPU和I/O资源分配值,所述资源分配值是通过量化得到的。使得在主机负载较重时,拥有高资源分配值的虚拟机能获得更多的CPU和I/O资源,而优先运行。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。
Claims (10)
1.一种虚拟机资源分配方法,其特征在于,包括以下步骤:
分别获取在主机上运行的各个虚拟机的单位时间I/O操作次数、VCPU单次执行时间、单位时间指令队列深度、以及单位时间收发数据包数目的统计值,并对主机上运行的所有虚拟机计算每一项所述统计值的平均值;
根据各个虚拟机单位时间I/O操作次数的统计值及对应的单位时间I/O操作次数的平均值,计算所述虚拟机的I/O操作资源分配值;
根据各个虚拟机单位时间I/O操作次数的统计值及对应的单位时间I/O操作次数的平均值,以及所述虚拟机VCPU单次执行时间的统计值及对应的VCPU单次执行时间的平均值,计算所述虚拟机的实时响应资源分配值;
根据各个虚拟机单位时间指令队列深度的统计值及对应的单位时间指令队列深度的平均值,计算所述虚拟机的运算资源分配值;
根据各个虚拟机单位时间收发数据包数目的统计值及对应的单位时间收发数据包数目的平均值,计算所述虚拟机的通信资源分配值;
根据所述I/O操作资源分配值,所述实时响应资源分配值,所述运算资源分配值,以及所述通信资源分配值,计算所述虚拟机的总资源分配值;
根据各个所述虚拟机的总资源分配值,调节各个虚拟机的资源分配比例。
2.如权利要求1所述的虚拟机资源分配方法,其特征在于,根据以下公式计算所述虚拟机的总资源分配值:
Weight=w1×F(x)+w2×G(x,t)+w3×H(y)+w4×I(n)
其中,Weight是所述虚拟机的总资源分配值,w1、w2、w3和w4分别为预先设定的各种资源分配值的权重,F(x)为所述虚拟机的I/O操作资源分配值,G(x,t)为所述虚拟机的实时响应资源分配值,H(y)为所述虚拟机的运算资源分配值,I(n)为所述虚拟机的通信资源分配值。
3.如权利要求2所述的虚拟机资源分配方法,其特征在于,根据以下公式计算所述虚拟机的I/O操作资源分配值:
根据以下公式计算所述虚拟机的实时响应资源分配值:
其中,G(x,t)为所述虚拟机的实时响应资源分配值,x为虚拟机单位时间I/O操作次数的统计值,及为主机上运行的所有虚拟机单位时间I/O操作次数的平均值,t为虚拟机VCPU单次执行时间的统计值,为主机上运行的所有虚拟机的VCPU单次执行时间的平均值,β、δ为预先设定的常数,且β>2、
根据以下公式计算所述虚拟机的运算资源分配值:
根据以下公式计算所述虚拟机的通信资源分配值:
其中,I(n)为所述虚拟机的通信资源分配值,n为虚拟机单位时间收发数据包数目的统计值,为主机上运行的所有虚拟机的单位时间收发数据包数目的平均值,ρ为预先设定的常数,且ρ≥2。
4.如权利要求2所述的虚拟机资源分配方法,其特征在于,在计算所述虚拟机的总资源分配值之前,进一步包括根据用户指令,调整各种资源分配值的权重的步骤。
5.如权利要求1至4中任一项所述的虚拟机资源分配方法,其特征在于,根据各个所述虚拟机的总资源分配值,调节各个虚拟机的资源分配比例的步骤包括:
计算各个所述虚拟机的总资源分配值的总和;
计算各个所述虚拟机的总资源分配值与所述总和的比值;
根据所述比值调整各个虚拟机的资源分配比例。
6.一种虚拟机资源分配系统,其特征在于,包括:
监控模块,用于获取在主机上运行的各个虚拟机的单位时间I/O操作次数、VCPU单次执行时间、单位时间指令队列深度、以及单位时间收发数据包数目的统计值,并对主机上运行的所有虚拟机计算每一项所述统计值的平均值;
操作资源分配值计算模块,用于根据各个虚拟机单位时间I/O操作次数的统计值及对应的单位时间I/O操作次数的平均值,计算所述虚拟机的I/O操作资源分配值;
实时资源分配值计算模块,用于根据各个虚拟机单位时间I/O操作次数的统计值及对应的单位时间I/O操作次数的平均值,以及所述虚拟机VCPU单次执行时间的统计值及对应的VCPU单词执行时间的平均值,计算所述虚拟机的实时响应资源分配值;
运算资源分配值计算模块,用于根据各个虚拟机单位时间指令队列深度的统计值及对应的单位时间指令队列深度的平均值,计算所述虚拟机的运算资源分配值;
通信资源分配值计算模块,用于根据各个虚拟机单位时间收发数据包数目的统计值及对应的单位时间收发数据包数目的平均值,计算所述虚拟机的通信资源分配值;
总资源分配值计算模块,用于根据所述I/O操作资源分配值,所述实时响应资源分配值,所述运算资源分配值,以及所述通信资源分配值,计算所述虚拟机的总资源分配值;
资源调度模块,用于根据各个所述虚拟机的总资源分配值,调节各个虚拟机的资源分配比例。
7.如权利要求6所述的虚拟机资源分配系统,其特征在于,所述总资源分配值计算模块根据以下公式计算所述虚拟机的总资源分配值:
Weight=w1×F(x)+w2×G(x,t)+w3×H(y)+w4×I(n)
其中,Weight是所述虚拟机的总资源分配值,w1、w2、w3和w4分别为预先设定的各种资源分配值的权重,F(x)为所述虚拟机的I/O操作资源分配值,G(x,t)为所述虚拟机的实时响应资源分配值,H(y)为所述虚拟机的运算资源分配值,I(n)为所述虚拟机的通信资源分配值。
8.如权利要求7所述的虚拟机资源分配系统,其特征在于,
所述操作资源分配值计算模块根据以下公式计算所述虚拟机的I/O操作资源分配值:
所述实时资源分配值计算模块根据以下公式计算所述虚拟机的实时响应资源分配值:
其中,G(x,t)为所述虚拟机的实时响应资源分配值,x为虚拟机单位时间I/O操作次数的统计值,及为主机上运行的所有虚拟机单位时间I/O操作次数的平均值,t为虚拟机VCPU单次执行时间的统计值,为主机上运行的所有虚拟机的VCPU单次执行时间的平均值,β、δ为预先设定的常数,且β>2、
所述运算资源分配值计算模块根据以下公式计算所述虚拟机的运算资源分配值:
并且,所述通信资源分配值计算模块根据以下公式计算所述虚拟机的通信资源分配值:
其中,I(n)为所述虚拟机的通信资源分配值,n为虚拟机单位时间收发数据包数目的统计值,为主机上运行的所有虚拟机的单位时间收发数据包数目的平均值,ρ为预先设定的常数,且ρ≥2。
9.如权利要求7所述的虚拟机资源分配系统,其特征在于,进一步包括优先级调整模块,所述优先级调整模块用于根据用户指令,调整各种资源分配值的权重。
10.如权利要求6至9中任一项所述的虚拟机资源分配系统,其特征在于,所述资源调度模块计算各个所述虚拟机的总资源分配值的总和,并计算各个所述虚拟机的总资源分配值与所述总和的比值,根据所述比值调整各个虚拟机占用的资源分配比例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110421298XA CN102521055B (zh) | 2011-12-15 | 2011-12-15 | 一种虚拟机资源分配方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110421298XA CN102521055B (zh) | 2011-12-15 | 2011-12-15 | 一种虚拟机资源分配方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102521055A true CN102521055A (zh) | 2012-06-27 |
CN102521055B CN102521055B (zh) | 2013-12-11 |
Family
ID=46291990
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110421298XA Active CN102521055B (zh) | 2011-12-15 | 2011-12-15 | 一种虚拟机资源分配方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102521055B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103220362A (zh) * | 2013-04-23 | 2013-07-24 | 深圳市京华科讯科技有限公司 | 服务器虚拟化一体机 |
CN103455378A (zh) * | 2013-09-05 | 2013-12-18 | 华为技术有限公司 | 一种虚拟化集群的资源分配方法、装置和系统 |
CN103974149A (zh) * | 2013-02-01 | 2014-08-06 | 鼎点视讯科技有限公司 | 分配带宽方法及装置 |
CN105224406A (zh) * | 2014-07-03 | 2016-01-06 | 深圳市腾讯计算机系统有限公司 | 一种输入输出指令处理的方法及装置 |
WO2016090608A1 (zh) * | 2014-12-11 | 2016-06-16 | 华为技术有限公司 | 确定虚拟机资源的方法、装置及程序产品 |
CN106095554A (zh) * | 2016-06-17 | 2016-11-09 | 中国银行股份有限公司 | 在日间联机阶段进行批量数据处理的方法及装置 |
WO2017000645A1 (zh) * | 2015-06-30 | 2017-01-05 | 华为技术有限公司 | 一种分配宿主机资源的方法和装置 |
WO2017041556A1 (zh) * | 2015-09-11 | 2017-03-16 | 中兴通讯股份有限公司 | 虚拟资源调度方法、装置及系统 |
CN109918192A (zh) * | 2017-12-25 | 2019-06-21 | 郑州云海信息技术有限公司 | 一种用于服务器的bmc资源分配方法 |
CN111078402A (zh) * | 2019-12-03 | 2020-04-28 | 广州西麦科技股份有限公司 | 一种快速提供实验环境的资源池系统 |
CN105511959B (zh) * | 2014-10-16 | 2021-03-19 | 腾讯科技(深圳)有限公司 | 虚拟资源分配方法和装置 |
CN112579177A (zh) * | 2019-09-27 | 2021-03-30 | 宝能汽车集团有限公司 | Hypervisor的CPU配置方法、系统以及车辆、存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090016220A1 (en) * | 2007-07-11 | 2009-01-15 | Mustafa Uysal | Dynamic feedback control of resources in computing environments |
US20090183168A1 (en) * | 2008-01-16 | 2009-07-16 | Satoshi Uchida | Resource allocation system, resource allocation method and program |
CN101719082A (zh) * | 2009-12-24 | 2010-06-02 | 中国科学院计算技术研究所 | 虚拟化计算平台中应用请求调度的方法及其系统 |
CN101894047A (zh) * | 2010-06-24 | 2010-11-24 | 北京航空航天大学 | 一种基于内核虚拟机调度策略的实现方法 |
CN102012835A (zh) * | 2010-12-22 | 2011-04-13 | 北京航空航天大学 | 一种支持软实时应用的虚拟cpu调度方法 |
CN102185759A (zh) * | 2011-04-12 | 2011-09-14 | 田文洪 | 一种满足需求特性的多物理服务器负载均衡的方法及装置 |
-
2011
- 2011-12-15 CN CN201110421298XA patent/CN102521055B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090016220A1 (en) * | 2007-07-11 | 2009-01-15 | Mustafa Uysal | Dynamic feedback control of resources in computing environments |
US20090183168A1 (en) * | 2008-01-16 | 2009-07-16 | Satoshi Uchida | Resource allocation system, resource allocation method and program |
CN101719082A (zh) * | 2009-12-24 | 2010-06-02 | 中国科学院计算技术研究所 | 虚拟化计算平台中应用请求调度的方法及其系统 |
CN101894047A (zh) * | 2010-06-24 | 2010-11-24 | 北京航空航天大学 | 一种基于内核虚拟机调度策略的实现方法 |
CN102012835A (zh) * | 2010-12-22 | 2011-04-13 | 北京航空航天大学 | 一种支持软实时应用的虚拟cpu调度方法 |
CN102185759A (zh) * | 2011-04-12 | 2011-09-14 | 田文洪 | 一种满足需求特性的多物理服务器负载均衡的方法及装置 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103974149A (zh) * | 2013-02-01 | 2014-08-06 | 鼎点视讯科技有限公司 | 分配带宽方法及装置 |
CN103220362A (zh) * | 2013-04-23 | 2013-07-24 | 深圳市京华科讯科技有限公司 | 服务器虚拟化一体机 |
CN103455378A (zh) * | 2013-09-05 | 2013-12-18 | 华为技术有限公司 | 一种虚拟化集群的资源分配方法、装置和系统 |
CN105224406B (zh) * | 2014-07-03 | 2019-03-15 | 深圳市腾讯计算机系统有限公司 | 一种输入输出指令处理的方法及装置 |
CN105224406A (zh) * | 2014-07-03 | 2016-01-06 | 深圳市腾讯计算机系统有限公司 | 一种输入输出指令处理的方法及装置 |
CN105511959B (zh) * | 2014-10-16 | 2021-03-19 | 腾讯科技(深圳)有限公司 | 虚拟资源分配方法和装置 |
WO2016090608A1 (zh) * | 2014-12-11 | 2016-06-16 | 华为技术有限公司 | 确定虚拟机资源的方法、装置及程序产品 |
WO2017000645A1 (zh) * | 2015-06-30 | 2017-01-05 | 华为技术有限公司 | 一种分配宿主机资源的方法和装置 |
WO2017041556A1 (zh) * | 2015-09-11 | 2017-03-16 | 中兴通讯股份有限公司 | 虚拟资源调度方法、装置及系统 |
CN106095554B (zh) * | 2016-06-17 | 2019-08-23 | 中国银行股份有限公司 | 在日间联机阶段进行批量数据处理的方法及装置 |
CN106095554A (zh) * | 2016-06-17 | 2016-11-09 | 中国银行股份有限公司 | 在日间联机阶段进行批量数据处理的方法及装置 |
CN109918192A (zh) * | 2017-12-25 | 2019-06-21 | 郑州云海信息技术有限公司 | 一种用于服务器的bmc资源分配方法 |
CN109918192B (zh) * | 2017-12-25 | 2022-02-18 | 郑州云海信息技术有限公司 | 一种用于服务器的bmc资源分配方法 |
CN112579177A (zh) * | 2019-09-27 | 2021-03-30 | 宝能汽车集团有限公司 | Hypervisor的CPU配置方法、系统以及车辆、存储介质 |
CN111078402A (zh) * | 2019-12-03 | 2020-04-28 | 广州西麦科技股份有限公司 | 一种快速提供实验环境的资源池系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102521055B (zh) | 2013-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102521055B (zh) | 一种虚拟机资源分配方法及其系统 | |
Vijayakumar et al. | Dynamic resource provisioning for data streaming applications in a cloud environment | |
CN101488098B (zh) | 基于虚拟计算技术的多核计算资源管理系统 | |
Song et al. | Multi-tiered on-demand resource scheduling for VM-based data center | |
CN104657221B (zh) | 一种云计算中基于任务分类的多队列错峰调度模型及方法 | |
CN102279771B (zh) | 一种虚拟化环境中自适应按需资源分配的方法及系统 | |
CN102253857B (zh) | 一种多核环境下的Xen虚拟机调度控制方法 | |
CN103605567B (zh) | 面向实时性需求变化的云计算任务调度方法 | |
CN102156665B (zh) | 一种虚拟化系统竞争资源差异化服务方法 | |
CN103713956B (zh) | 应用于云计算虚拟化管理环境中的智能加权负载均衡方法 | |
CN103336722B (zh) | 一种虚拟机cpu资源监控和动态分配方法 | |
CN102611622A (zh) | 一种弹性云计算平台下工作负载的调度方法 | |
CN104503838A (zh) | 一种虚拟cpu调度方法 | |
CN102508714A (zh) | 一种云计算中基于绿色计算的虚拟机调度方法 | |
CN102662750A (zh) | 基于弹性虚拟机池的虚拟机资源优化控制方法及其系统 | |
CN102611723A (zh) | 一种基于虚拟化技术构建高性能计算应用服务的方法 | |
EP2524277A2 (en) | Methods and apparatus for coordinated energy management in virtualized data centers | |
CN104021040A (zh) | 基于时间约束条件下的云计算关联任务调度方法和装置 | |
CN105302638A (zh) | 基于系统负载的mpp集群任务调度方法 | |
US10733022B2 (en) | Method of managing dedicated processing resources, server system and computer program product | |
CN102339233A (zh) | 云计算集中管理平台 | |
CN106126344A (zh) | 一种任务分配方法及装置 | |
CN105404549A (zh) | 基于yarn架构的虚拟机调度系统 | |
Wang et al. | Dependency-aware network adaptive scheduling of data-intensive parallel jobs | |
CN103049314A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |