CN102270159B - 一种虚拟化环境中的准入控制与负载均衡方法 - Google Patents
一种虚拟化环境中的准入控制与负载均衡方法 Download PDFInfo
- Publication number
- CN102270159B CN102270159B CN 201110229811 CN201110229811A CN102270159B CN 102270159 B CN102270159 B CN 102270159B CN 201110229811 CN201110229811 CN 201110229811 CN 201110229811 A CN201110229811 A CN 201110229811A CN 102270159 B CN102270159 B CN 102270159B
- Authority
- CN
- China
- Prior art keywords
- vcpu
- pcpu
- load
- cpu
- virtual machine
- 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.)
- Active
Links
Images
Landscapes
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
Abstract
本发明涉及一种虚拟化环境中的准入控制与负载均衡方法,包括以下步骤:1:修改Xen虚拟机中的简单最早截止期优先调度算法,实现非工作保养模式下的分区最早截止期优先的调度算法NWC-PEDF;2:对每个物理处理器引入准入控制机制,控制每个物理处理器上分配的Xen虚拟处理器的负载;3:采用首次适应的策略来控制Xen虚拟化环境中的VCPU到多核硬件平台上PCPU的分配映射,以保证每个PCPU上负载的均衡;4:提供对调整VCPU调度参数的支持机制,允许管理员根据运行过程中虚拟机负载的变化情况调整VCPU的调度参数。本发明的优点:满足多核硬件平台下虚拟化环境对嵌入式实时系统硬实时任务的时间需求的支持,对Xen虚拟机中的调度算法进行改进,实现了准入控制和负载均衡机制。
Description
技术领域
本发明涉及实时嵌入式系统中的多核和虚拟化技术,尤其是一种虚拟化环境中的准入控制与负载均衡方法。
背景技术
虚拟化技术已经被普遍应用于服务器与桌面系统,随着嵌入式系统芯片性能的提高((如多核芯片的大量出现),虚拟化技术在嵌入式系统中的应用也越来越成为学术界和工业界的研究热点。Xen 是剑桥大学教授Ian等发起的一个开源的虚拟机项目,其性能接近单机操作系统(Native Operating System)的性能。Xen由于其优越的性能和开源性,所以被业界广泛看好,被认为是未来最有前途的一款虚拟机管理软件。
在Xen中,一个虚拟机(domain)可能有一个或多个虚拟处理器(VCPU),每个VCPU被映射到一个物理处理器(PCPU)上。在Xen虚拟机管理器中,当domain启动时,Xen虚拟机管理器按照循环分配的方式将VCPU映射到PCPU上,不考虑每个PCPU上是否超载的问题。附图1显示了Xen系统中原来的VCPU分配方法及结果,在Xen虚拟化环境中,有两个PCPU :分别是Core-1和Core-2;5个VCPU:VCPU0-VCPU4,5个VCPU的CPU利用率分别是75%、10%、20%、50%、20%。按照Xen原来的循环VCPU分配方法,Core-1 PCPU上会有VCPU0、VCPU2、VCPU4三个VCPU,总的VCPU负载为115%,将超载,而Core-2 PCPU的VCPU负载仅为60%,CPU资源仍有剩余。从图中可以看到Core1和Core3都出现了超载情况。
Xen3.0以后实现了两种的调度器中,一种调度器是基于信度(Credit)调度器,支持PCPU间VCPU的迁移。如果一个PCPU进入IDLE状态,调度器会检查它相邻的PCPU是否有需要调度的VCPU,如果它相邻的PCPU上有处于UNDER状态的VCPU在等待PCPU资源,则调度器会强行将相邻的PCPU上的VCPU赋给IDLE PCPU,这样系统可以充分利用系统资源。但是,VCPU的迁移会带来额外的开销,如处理上下文切换、快存(Cache)的刷新等。另外,Credit调度器中的调度算法不是实时调度算法,不能满足实时嵌入式系统所要求的实时性。
Xen中的另一种调度器是简单最早截止期优先(SEDF)调度器,可以支持实时调度器。但是,SEDF调度器不支持PCPU间VCPU的迁移,这样可能会导致负载的不均衡。另外,如果一个实时任务被分配到一个PCU上,超过了这个PCPU的最大处理器资源限制,则实时任务的时间需求将无法被满足,实时系统的实时性也将无法被保证。
为了满足多核硬件平台下,嵌入式实时系统对虚拟化的需求,本发明设计和实现了一种Xen虚拟化环境中的准入控制与负载均衡方法,以保证虚拟化环境中实时嵌入式系统所要求的实时性和各物理处理器上负载的均衡。
发明内容
本发明的目的正是要解决上述技术存在的不足,而提供一种在多核硬件平台下Xen虚拟化环境中的准入控制与负载均衡方法,满足多核硬件平台下虚拟化环境对嵌入式实时系统硬实时任务的时间需求的支持,对Xen虚拟机中的调度算法进行改进,实现了准入控制和负载均衡机制。
本发明解决其技术问题采用的技术方案:这种虚拟化环境中的准入控制与负载均衡方法,包括以下步骤:
步骤一:修改Xen虚拟机中的简单最早截止期优先SEDF调度算法,实现非工作保养模式NWC下的分区最早截止期优先的调度算法NWC-PEDF;保证虚拟机环境下嵌入式实时系统中硬实时应用的实时需求。在Xen虚拟机调度中实现非工作保养模式(NWC),防止工作保养模式下因为某个实时虚拟机因为超载而过多占用处理器(CPU)资源所导致的CPU资源分配的不可控性。
步骤二:对每个物理处理器引入准入控制机制,控制每个物理处理器PCPU上分配的Xen虚拟处理器VCPU的负载不会超过本物理处理器所能够承受的最大值;
步骤三:采用首次适应(即从上次首次适应结束时开始)的策略来控制Xen 虚拟化环境中的VCPU到多核硬件平台上PCPU的分配映射;以保证PCPU上负载的均衡性,并尽量减小VCPU分配所带来的时间开销。
步骤四:提供对调整VCPU调度参数的支持机制,允许管理员根据运行过程中虚拟机负载的变化情况调整VCPU的调度参数,并根据管理员所做的参数的调整进行系统可调度性检查和VCPU负载在PCPU上的调整, 能够更好满足系统的适应性。
作为优选,修改Xen中的SEDF调度算法,实现分区最早截止期优先的调度算法(PEDF)。在Xen 虚拟机环境下,每个虚拟处理器VCPU固定被分配到一个物理处理器PCPU上,并只能够在其对应的PCPU上运行或进行状态的转换;每个物理处理器PCPU都有自己最大的处理器资源值、自身的虚拟处理器 (VCPU)负载队列,以减小调度和迁移开销;每个PCPU独立按照最早截止期优先的调度算法对自身的VCPU负载队列进行调度,以保证虚拟机环境下嵌入式实时系统中硬实时应用的实时需求。
作为优选,在Xen虚拟机调度中实现非工作保养模式(NWC)。为每个虚拟机对应的虚拟处理器(VCPU)都设置固定的CPU 资源份额,在Xen 虚拟机环境下,每个虚拟处理器(VCPU)实际占用的处理器(CPU)资源都不能超过其自身固定的CPU 资源份额,以防止在工作保养模式(WC)下某个实时虚拟机因为超载而过多占用CPU资源所导致的CPU资源分配的不可控性。
作为优选,采用首次适应(从上次首次适应结束时开始)的策略,处理Xen 虚拟化环境中的虚拟处理器(VCPU)负载到多核硬件平台上物理处理器(PCPU)的分配映射问题,保证PCPU上负载的均衡性,并尽量减小VCPU分配所带来的时间开销。对多核硬件平台上的物理处理器(PCPU)编号,在对虚拟处理器(VCPU)负载进行初始化分配到PCPU上时,第一个VCPU从第一个PCPU开始,寻找能够满足VCPU负载需求的PCPU,将VCPU分配给该物理PCPU;之后的VCPU依次从前一个VCPU所分配的PCPU的下一个PCPU开始,寻找能够满足VCPU负载需求的PCPU,将VCPU分配给该物理PCPU。当虚拟处理器(VCPU)的调度参数发生调整需要修改VCPU到PCPU的映射关系时,从VCPU原来所在的PCPU的下一个PCPU开始,寻找能够满足VCPU负载需求的PCPU,将VCPU分配给该物理PCPU。
作为优选,对每个物理处理器(PCPU)引入准入控制机制,控制每个PCPU上分配的VCPU的负载不会超过该PCPU的资源的最大值,保证每个PCPU上的VCPU的负载在非工作保养模式下的最早截止期优先(NWC-PEDF)调度算法下均是可调度的,从而使实时应用的实时性能够得到保障。初始时设置每个物理处理器PCPU的最大可用的CPU资源值为100。当通过首次适应(从上次首次适应结束时开始)的策略,尝试将VCPU负载分配给PCPU时,会检查PCPU上是否剩余有足够的CPU资源可以满足VCPU负载的需求,如果PCPU上剩余有足够的CPU资源可以满足VCPU负载的需求,则该PCPU接受此VCPU负载;否则该PCPU拒绝接受此VCPU负载,继续检查下一个PCPU上是否剩余有足够的CPU资源可以满足VCPU负载的需求。如果能够找到可以满足VCPU负载需求的PCPU,则建立此VCPU,并将VCPU负载分配给该PCPU;如果找不到可以满足VCPU负载需求的PCPU,则拒绝建立此VCPU,并返回相应信息。
作为优选,提供对调整VCPU调度参数的支持机制,允许管理员在VCPU初始化之后,根据运行过程中虚拟机负载的变化情况调整VCPU的调度参数;并能够对管理员所调整的VCPU的调度参数进行合格性检查,保证系统的可调度性。当管理员修改了VCPU的调度参数(VCPU所能够使用的PCPU(Affinity PCPU),周期(Period),周期内CPU时间(Slice))后,系统将会检查VCPU原来所在的PCPU上是否能够满足修改后VCPU负载的CPU资源需求,如果能够满足,则保持原来的VCPU和PCPU的分配关系不变,并根据修改后VCPU负载的CPU需求更新PCPU上剩余的CPU资源值;如果VCPU原来所在的PCPU不能够满足修改后VCPU负载的CPU资源需求,则从VCPU原来所在的PCPU的下一个PCPU开始,根据首次适应策略,寻找能够满足修改后的VCPU负载CPU资源需求的PCPU,如果能够找到这样的PCPU,则将次VCPU分配给该PCPU,并更新VCPU原来所在PCPU和现在所在PCPU上的剩余CPU资源值;如果没有PCPU能够满足修改后VCPU负载的CPU资源需求,则保持VCPU原来的调度参数和与PCPU的分配关系,拒绝VCPU调度参数的调整,并返回相应信息给用户。
本发明具有如下优点:
一. 本发明在Xen中实现了具有准入控制的分区最早截止期优先的调度算法,是硬实时调度算法,为Xen虚拟机在嵌入式硬实时系统中的应用提供了保障。
二. 在本发明中,采用非工作保养(NWC)模式,可以保证每个实时虚拟机固定的CPU资源份额,防止了在工作保养(WC)模式下某个实时虚拟机因为超载而过多占用CPU资源。
三. 在本发明中,采用的是多核调度算法中的分区调度算法PEDF,每个物理CPU上都有自己独立的VCPU负载队列,减少了迁移开销,降低了调度开销。
四. 在本发明中,对每个物理处理器均采用了准入控制机制来控制其上的VCPU负载不会超过物理处理器的最大资源限制,保证了每个物理处理器上的VCPU负载的集合均是可调度的,从而使实时应用的实时性得到了保证。
五. 在本发明中,采用从上次首次适应结束时开始的首次适应的策略来控制VCPU在物理处理器上的分配,其时间开销比较小并且能够较好保证每个物理处理器上负载的均衡:与最好适应分配算法相比,在每个物理处理器上负载的均衡性上难分伯仲,但是时间开销小;与最差适应分配算法相比,时间开销更小,并且每个物理处理器上负载的均衡性更好。
六. 在本发明中,支持管理员根据运行过程中虚拟机负载的变化情况调整VCPU的调度参数,并对管理员所做的参数的调整进行系统可调度性检查,能够更好满足系统的适应性和安全性。
附图说明
图1:Xen系统中原来的VCPU分配方法及结果示意图;
图2:Xen虚拟机调度中实现准入控制机制和负载均衡机制的架构图。
图3:AC-PEDF调度算法下VCPU的状态转换示意图;
图4:AC-PEDF调度算法下VCPU初始化时分配PCPU的过程示意图;
图5:AC-PEDF调度算法下VCPU的调度参数(slice,period)发生改变时,VCPU到PCPU的映射的调整过程示意图
图6:AC-PEDF调度算法下,根据具有准入控制机制的首次适应算法,调整VCPU和PCPU的映射关系的过程示意图
图7:AC-PEDF调度算法下改变VCPU所对应的affinity PCPU时,VCPU到PCPU的映射的调整过程示意图;
图8:AC-PEDF调度算法下, 根据具有准入控制机制的首次适应算法,寻找有足够剩余CPU资源的PCPU的过程示意图;
图9:AC-PEDF调度算法下实验案例中VCPU在PCPU上的初始分配情况示意图;
图10:AC-PEDF调度算法下VCPU在PCPU上的运行情况示意图;
图11:AC-PEDF调度算法下,修改RT-VCPU2 、RT-VCPU3的调度参数后,VCPU在PCPU上的分配情况示意图。
注:(本发明中实现准入控制和负载均衡机制的Xen虚拟机中的调度算法简称为AC-PEDF)。
具体实施方式
下面结合附图和实施例对本发明作进一步说明:
本发明为满足多核硬件平台下嵌入式实时系统硬实时任务在虚拟化环境中的时间需求,在Xen4.0.1虚拟机平台中实现了一种具有准入控制和负载均衡机制的分区最早截止期优先(EDF)调度方法。其实现架构图如图1所示。
具体实施过程分为如下三个部分:
一. 在Xen中实现NWC模式下的分区最早截止期优先的调度算法NW-PEDF
1. 实现调度器中的VCPU调度接口
每个VCPU可配置的调度参数为(period,slice),period 表示VCPU的周期,slice表示VCPU每个周期内最多可以获得的CPU执行时间,slice的值小于等于period。不支持Work Conserving 模式,即,每个VCPU 拥有固定的CPU份额,即使CPU空闲,每个周期内运行的时间特不能超过slice时间单位。
另外每个VCPU还有四个参数cpu_util,deadline,cpu_time,next_begin,用于内部调度控制。cpu_util表示VCPU的CPU资源份额(也成VCPU的CPU利用率),等于(slice*100)/period。deadline表示vcpu在当前周期内的绝对截止时间,cpu_time 表示VCPU在当前周期内已经运行的CPU时间,next_begin表示VCPU下个周期开始的时间。
实现调度器中的PCPU调度接口
为每个物理处理器核(PCPU)设置一个int类型的参数cpu_remainer,一个变量runningVCPU。cpu_remainer用来表示当前物理处理器核上还剩余的CPU 资源,cpu_remainer 参数的取值范围为0到100,0表示CPU资源已经用完,100表示最大CPU资源;runningVCPU用来记录前物理处理器核上当前正在运行的VCPU。
另外,为每个PCPU设置两个队列,ReadyQ 和 ReleaseQ。ReleaseQ 队列用来存放该PCPU上所有未就绪的VCPU,当VCPU刚刚分配到PCPU上、还没有到达释放时间,或者VCPU用完本周期内的slice运行时间时就进入未就绪状态,进入ReleaseQ。ReadyQ队列用来存放处于就绪状态但没有在CPU上运行的VCPU,就绪状态是指VCPU在当前周期内的运行时间小于slice时间单位,还有剩余的CPU时间可以运行。ReadyQ队列上的VCPU的根据VCPU的绝对截止时间进行排序,绝对截止时间最小的VCPU位于队首。ReadyQ队列的VCPU根据VCPU的下周期的开始时间进行排序,下周期开始时间最早的VCPU位于队首。每次当有新的就绪VCPU的绝对截止期小于当前正在运行的VCPU或当前正在运行的VCPU的时间片用完时,就重新进行调度,选取ReadyQ队列队首VCPU运行,并将当前正在运行的VCPU放入就入就绪队列ReadyQ或ReleaseQ。NWC模式下的分区最早截止期优先的调度算法VCPU的状态转换图如附图3所示。
二. 采用首次适应(从上次首次适应结束时开始)的策略来完成VCPU到PCPU的分配算法的设计和实现。对每个物理CPU,引入准入机制,控制每个物理CPU上分配的虚拟CPU(VCPU)的负载不会超过本物理CPU所能够承受的最大值,保证每个物理CPU上的虚拟CPU(VCPU)的负载在AC-PEDF调度算法下均是可调度的,进而使实时应用的实时性能够得到保障。
初始化时分配PCPU的过程
图4说明了VCPU初始化时分配PCPU的过程。当有新的VCPU产生时,均采用默认的调度参数period和slice完成对VCPU的初始化工作,并计算其CPU利用率 cpu_util。然后选取PCPU,根据从上次首次适应结束时开始的策略来选择PCPU,将VCPU放入该PCPU的队列。如果VCPU的建立会导致所有符合VCPU 亲和(Affinity)性质的PCPU的超载,则拒绝建立此VCPU,并向上层返回错误信息。具体过程如下:
(1)选择从上次首次适应结束时选取的PCPU的下一个PCPU;
(2)检查该PCPU是否已被初始化。如果该PCPU还没有初始化,则对该PCPU分配相应的AC-PEDF_PCPU调度数据结构,并初始化PCPU的cpu_remainer参数为100,即表示PCPU上有最多的CPU资源。否则进行第(3)步。
(3)比较PCPU的cpu_remainer参数与VCPU的cpu_util的大小。如果PCPU上有足够的剩余CPU资源可以分配给VCPU,即cpu_remainer>=cpu_util,则将VCPU分配到该PCPU,同时PCPU的cpu_remainer将减少cpu_util,结束选择。否则,该PCPU上剩余的CPU资源已经不能够满足VCPU的CPU需求,进行第(4)步。
(4)如果已经遍历完VCPU所对应的所有Affinity PCPU,进入第(5)步;否则,选取该PCPU的下一个PCPU,重新从第(2)步开始执行。
(5)说明VCPU所对应的所有Affinity PCPU均没有足够的CPU资源可以提供给VCPU,则拒绝产生此VCPU,向上层返回拒绝建立该VCPU信息。以防止该VCPU均会导致任何满足VCPU的Affintity 性质的PCPU上的资源超载。结束。
2. 当出现domain销毁或VCPU销毁时
将回收VCPU所占用的CPU资源,将VCPU原来对应的PCPU的剩余CPU可利用率增加,增加值为被销毁的VCPU原来占用的CPU 资源份额。
三. 实现对调整VCPU调度参数的支持机制,允许管理员在VCPU初始化之后,根据运行过程中虚拟机负载的变化情况调整VCPU的调度参数, 能够更好满足系统的适应性和扩展性。
当VCPU的调度参数(slice,period)发生改变时
图5说明了VCPU的调度参数(slice,period)发生改变时,VCPU到PCPU的映射的调整过程。当VCPU的调度参数(slice,period)发生改变时,具体调整过程如下:
1)将VCPU从当前PCPU的队列中移出,并重新初始化VCPU的调度参数deadline=period,cpu_time=0,next_begin=0。
2)计算VCPU的CPU利用率cpu_util的改变值,记VCPU原来的CPU利用率为old_cpu_util, VCPU改变后的CPU利用率为new_cpu_util,d_cpu_util=new_cpu_util-old_cp_util。考虑以下四种情况:
(1)当VCPU的cpu_util参数保持不变(即d_cpu_util =0)时,原来的VCPU和PCPU的映射关系保持不变,将VCPU放回PCPU的ReleaseQ。
(2)当VCPU的cpu_util参数变小(即d_cpu_util <0)时,保持原来的VCPU和PCPU的映射关系,另外,将PCPU的cpu_remainer参数增加VCPU的cpu_util参数的减小值d_cpu_util, 将VCPU放回PCPU的ReleaseQ。
(3)当VCPU的cpu_util参数变大,并且原来的PCPU上仍有足够的CPU资源可以补充给VCPU(即d_cpu_util >0 并且cpu_remainer >= d_cpu_util)时,保持原来的VCPU和PCPU的映射关系,另外,将PCPU的cpu_remainer参数减少VCPU的cpu_util参数的减小值d_cpu_util, 将VCPU放回PCPU的ReleaseQ。
(4)当VCPU的cpu_util参数变大,并且原来的PCPU没有足够的cpu_remainer(即d_cpu_util >0 并且cpu_remainer < d_cpu_util)时,需要改变VCPU和PCPU的映射关系。
3)图6说明如何改变VCPU和PCPU的映射关系,具体步骤如下:
(1)回收VCPU原来占用的CPU资源,将VCPU原来对应的PCPU的剩余CPU可利用率增加,增加值为被销毁的VCPU原来占用的CPU 资源份额。
(2)从VCPU当前所在的PCPU的下一个PCPU开始,根据具有准入控制机制的首次适应方法,寻找有足够剩余CPU资源的满足VCPU affinity 的PCPU(cpu_remainer>=cpu_util)。如果找到有足够剩余CPU资源的 PCPU,进入第(3)步;否则进入第(4)步。
(3)建立VCPU与PCPU新的映射关系,并更新新PCPU的CPU剩余资源newpcpu.cpu_remainer=newpcpu.cpu_remainer-vcpu.cpu_util,原来所在PCPU的CPU剩余资源oldpcpu.cpu_remainer=oldpcpu.cpu_remainer+vcpu.cpu_util; 将该VCPU放入新PCPU的ReleaseQ。结束。
(4)说明VCPU所对应的所有Affinity PCPU均没有足够的CPU资源可以提供给VCPU,则拒绝此VCPU的调度参数的改变,将该VCPU放回原来所在PCPU的ReleaseQ;并向上层返回拒绝修改VCPU调度参数信息。以防止该VCPU调度参数的调度改变导致 PCPU上VCPU负载的不可调度性。结束。
当修改VCPU所对应的affinity pcpu时,
图7说明了VCPU所对应的affinity PCPU发生改变时,VCPU到PCPU的映射的调整过程。根据从上次首次适应结束时开始的策略寻找有足够剩余CPU资源的PCPU,调整VCPU和PCPU的映射关系。
(1)将VCPU原来的PCPU的队列中移出,并重新初始化VCPU的调度参数deadline=period,cpu_time=0,next_begin=0。
(2)检查VCPU原来所在PCPU是否属于VCPU的affinity PCPU。如果VCPU原来所在PCPU属于VCPU的affinity PCPU,保持原来的VCPU和PCPU的映射关系,并将VCPU放回PCPU的ReleaseQ。结束。
(3)如果VCPU原来所在PCPU不属于VCPU的affinity PCPU,从VCPU当前所在的PCPU的下一个PCPU开始,根据具有准入控制机制的首次适应方法,寻找有足够剩余CPU资源的PCPU,调整VCPU和PCPU的映射关系。根据具有准入控制机制的首次适应方法,寻找有足够剩余CPU资源的PCPU流程图如图8。
下面通过一个在Intel 酷睿 I5 双核处理器的Xen4.01平台上运行的实例说明本发明的工作过程。
在本案例中有两个物理CPU核PCPU,分别是Core-1和Core-2,初始状态下,DomO具有1个VCPU,是DOM0-VCPU0(20,15),位于在Core-1上。在Xen虚拟机上依次创建有4个实时虚拟机,它们对应四个VCPU分别是:RT-VCPU1(50,5),RT-VCPU2(20,10),RT-VCPU3(15,3),RT-VCPU4(30,6)。
案例中初始时VCPU在PCPU上的分配情况应如图9所示。从图9中可以看到,Core-1上有DOM0-VCPU0和RT-VCPU3,Core-1上VCPU负载总值为95%;Core-2上有RT-VCPU1、RT-VCPU2和RT-VCPU4,Core-2上VCPU负载总值为80%。两个PCPU上均无出现超载。
VCPU在PCPU上的运行情况应如图10所示。从图10中可以看到,DOM0-VCPU0和RT-VCPU3在Core-1上按照最早截止期优先(EDF)的调度方法进行运行,RT-VCPU1、RT-VCPU2和RT-VCPU4在Core-2上按照最早截止期优先(EDF)的调度方法进行运行,所有的VCPU都能在自身的截止期内运行结束,保证了所有实时任务的实时性。
当修改RT-VCPU2的调度参数为RT-VCPU2(20,5)、RT-VCPU3的调度参数为RT-VCPU3(15,6)时,VCPU在PCPU上的分配情况应如图11所示。调整RT-VCPU2调度参数后,RT-VCPU2的CPU利用率变小,Core-2能够满足其CPU资源的需求,因此,RT-VCPU2仍分配在Core-2上;调整RT-VCPU3调度参数后,RT-VCPU2的CPU利用率变为40%,增大20%,RT-VCPU3原来所在的PCPU Core-1不能够满足其CPU资源的需求,因此需要改变RT-VCPU3所在的PCPU,此时Core-2上剩余的CPU资源为45%,能够满足RT-VCPU3的CPU资源需求,因此,将RT-VCPU3分配在Core-2上。从图11中可以看到,最终PCPU上VCPU的分配结果为:Core-1上有DOM0-VCPU0,Core-1上VCPU负载总值为75%;Core-2上有RT-VCPU1、RT-VCPU4、RT-VCPU2和RT-VCPU3,Core-2上VCPU负载总值为95%。两个PCPU上均无出现超载。
虽然通过上述具体实例对本发明进行了说明,但是本发明并不局限于上述实例,对于本领域的相关人员,可以根据本发明的技术方案和思想,作出其他各种改变和变形,而所有这些都应该属于本发明权利要求的保护范围内。
Claims (2)
1.一种虚拟化环境中的准入控制与负载均衡方法,其特征在于:包括以下步骤:
步骤一:修改Xen虚拟机中的简单最早截止期优先SEDF调度算法,实现非工作保养模式NWC下的分区最早截止期优先的调度算法NWC-PEDF;
步骤二:对每个物理处理器引入准入控制机制,控制每个物理处理器PCPU上分配的Xen虚拟处理器VCPU的负载不会超过本物理处理器所能够承受的最大值;
步骤三:采用首次适应,即从上次首次适应结束时开始的策略来控制Xen虚拟化环境中的VCPU到多核硬件平台上PCPU的分配映射;
步骤四:提供对调整VCPU调度参数的支持机制,允许管理员根据运行过程中虚拟机负载的变化情况调整VCPU的调度参数,并根据管理员所做的参数的调整进行系统可调度性检查和VCPU负载在PCPU上的调整;
在步骤一中,在Xen虚拟机环境下,每个虚拟处理器VCPU固定被分配到一个物理处理器PCPU上,并只能够在其对应的PCPU上运行或进行状态的转换;每个物理处理器PCPU都有自己最大的处理器资源值、自身的虚拟处理器VCPU负载队列;每个PCPU独立按照最早截止期优先的调度算法进行调度VCPU,以保证虚拟机环境下嵌入式实时系统中硬实时应用的实时需求;
在Xen虚拟机调度中实现非工作保养模式,为每个虚拟机对应的虚拟处理器VCPU都设置固定的CPU资源份额,在Xen虚拟机环境下,每个虚拟处理器VCPU实际占用的处理器CPU资源都不会超过其自身固定的CPU资源份额;
对多核硬件平台上的物理处理器PCPU编号,在对虚拟处理器VCPU负载进行初始化分配到PCPU上时,第一个VCPU从第一个PCPU开始,寻找能够满足VCPU负载需求的PCPU,将VCPU分配给该物理PCPU;之后的VCPU依次从前一个VCPU所分配的PCPU的下一个PCPU开始,寻找能够满足VCPU负载需求的PCPU,将VCPU分配给该物理PCPU;当虚拟处理器VCPU的调度参数发生调整需要修改VCPU到PCPU的映射关系时,从VCPU原来所在的PCPU的下一个PCPU开始,寻找能够满足VCPU负载需求的PCPU,将VCPU分配给该物理PCPU;
对每个物理处理器PCPU引入准入控制机制,控制每个PCPU上分配的VCPU的负载不会超过该PCPU的资源的最大值,保证每个PCPU上的VCPU的负载在非工作保养模式NWC下的分区最早截止期优先的调度算法NWC-PEDF下均是可调度的;初始时设置每个物理处理器PCPU的最大可用的CPU资源值为100,当通过首次适应的策略,尝试将VCPU负载分配给PCPU时,会检查PCPU上是否剩余有足够的CPU资源可以满足VCPU负载的需求,如果PCPU上剩余有足够的CPU资源可以满足VCPU负载的需求,则该PCPU接受此VCPU负载;否则该PCPU拒绝接受此VCPU负载,继续检查下一个PCPU上是否剩余有足够的CPU资源可以满足VCPU负载的需求;如果能够找到可以满足VCPU负载需求的PCPU,则建立此VCPU,并将VCPU负载分配给该PCPU;如果找不到可以满足VCPU负载需求的PCPU,则拒绝建立此VCPU,并返回相应信息。
2.根据权利要求1所述的虚拟化环境中的准入控制与负载均衡方法,其特征在于:在步骤四中,当管理员修改了VCPU的调度参数,即VCPU所能够使用的PCPU、周期Period、周期内CPU时间后,系统将会检查VCPU原来所在的PCPU上是否能够满足修改后VCPU负载的CPU资源需求,如果能够满足,则保持原来的VCPU和PCPU的分配关系不变,并根据修改后VCPU负载的CPU需求更新PCPU上剩余的CPU资源值;如果VCPU原来所在的PCPU不能够满足修改后VCPU负载的CPU资源需求,则从VCPU原来所在的PCPU的下一个PCPU开始,根据首次适应策略,寻找能够满足修改后的VCPU负载CPU资源需求的PCPU,如果能够找到这样的PCPU,则将此VCPU分配给该PCPU,并更新VCPU原来所在PCPU和现在所在PCPU上的剩余CPU资源值;如果没有PCPU能够满足修改后VCPU负载的CPU资源需求,则保持VCPU原来的调度参数和与PCPU的分配关系,拒绝VCPU调度参数的调整,并返回相应信息给用户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110229811 CN102270159B (zh) | 2011-08-11 | 2011-08-11 | 一种虚拟化环境中的准入控制与负载均衡方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110229811 CN102270159B (zh) | 2011-08-11 | 2011-08-11 | 一种虚拟化环境中的准入控制与负载均衡方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102270159A CN102270159A (zh) | 2011-12-07 |
CN102270159B true CN102270159B (zh) | 2013-02-27 |
Family
ID=45052470
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110229811 Active CN102270159B (zh) | 2011-08-11 | 2011-08-11 | 一种虚拟化环境中的准入控制与负载均衡方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102270159B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523153B (zh) * | 2011-12-08 | 2014-06-04 | 华中科技大学 | 虚拟化环境下的负载均衡方法 |
CN103179048B (zh) * | 2011-12-21 | 2016-04-13 | 中国电信股份有限公司 | 云数据中心的主机QoS策略变换方法及系统 |
CN103677990B (zh) * | 2013-12-13 | 2018-01-16 | 清华大学 | 虚拟机实时任务的调度方法、装置和虚拟机 |
CN103729242B (zh) * | 2013-12-19 | 2017-02-08 | 华为技术有限公司 | 一种自旋锁抢占调度算法选择方法及装置 |
CN104980330B (zh) * | 2014-04-08 | 2018-06-19 | 中国科学院软件研究所 | 一种实时多智能体系统的消息准入方法 |
CN104123174B (zh) * | 2014-08-06 | 2017-06-16 | 华中科技大学 | 一种虚拟化环境下动态实时cpu调度系统 |
CN105550036A (zh) * | 2015-12-09 | 2016-05-04 | 浪潮电子信息产业股份有限公司 | 一种基于云计算的准入控制算法 |
CN108701046B (zh) * | 2015-12-23 | 2022-04-08 | 英特尔公司 | 用于避免虚拟机之间的物理cpu争用的虚拟cpu合并的方法、系统、设备、装置和介质 |
CN106775925B (zh) * | 2016-11-11 | 2020-08-04 | 郑州云海信息技术有限公司 | 一种虚拟机cpu的限额处理方法和装置 |
CN106919457A (zh) * | 2017-03-03 | 2017-07-04 | 郑州云海信息技术有限公司 | 一种InCloudSphere虚拟化系统的cpu性能优化方法 |
CN107122233B (zh) * | 2017-03-27 | 2020-08-28 | 西安电子科技大学 | 一种面向tsn业务的多vcpu自适应实时调度方法 |
CN108984264B (zh) * | 2017-06-02 | 2022-11-15 | 阿里巴巴集团控股有限公司 | 虚拟gpu的实现方法、装置及系统 |
CN111427673B (zh) * | 2020-03-16 | 2023-04-07 | 杭州迪普科技股份有限公司 | 一种负载均衡方法、装置及设备 |
CN111580966B (zh) * | 2020-04-30 | 2022-11-04 | 西安石油大学 | 一种基于内存利用率的云任务调度方法 |
CN111831398A (zh) * | 2020-07-20 | 2020-10-27 | 平安科技(深圳)有限公司 | 虚拟机创建及cpu资源分配方法、装置、设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9817695B2 (en) * | 2009-04-01 | 2017-11-14 | Vmware, Inc. | Method and system for migrating processes between virtual machines |
CN101719081B (zh) * | 2009-12-01 | 2012-10-10 | 北京大学 | 一种虚拟机调度方法 |
CN101706743B (zh) * | 2009-12-07 | 2012-09-05 | 北京航空航天大学 | 一种多核环境下的虚拟机调度方法 |
CN102135903B (zh) * | 2011-03-09 | 2013-01-09 | 上海交通大学 | 基于硬件虚拟化的Xen实时性增强系统及其方法 |
-
2011
- 2011-08-11 CN CN 201110229811 patent/CN102270159B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN102270159A (zh) | 2011-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102270159B (zh) | 一种虚拟化环境中的准入控制与负载均衡方法 | |
CN100511151C (zh) | 多路多核服务器及其cpu的虚拟化处理方法 | |
CN104503838B (zh) | 一种虚拟cpu调度方法 | |
CN102289390B (zh) | 系统管理程序调度器 | |
CN103678003B (zh) | 一种实时性增强的虚拟cpu调度方法 | |
Blelloch et al. | Scheduling irregular parallel computations on hierarchical caches | |
EP1628214B1 (en) | Systems and methods for implementing an operating system in a virtual machine environment | |
CN101799773B (zh) | 并行计算的内存访问方法 | |
CN105912406B (zh) | 一种低能耗的独立任务调度与资源配置方法 | |
CN1266590C (zh) | 面向构件基于系统内核的进程池/线程池管理方法 | |
CN106020934A (zh) | 一种基于虚拟集群在线迁移的优化部署方法 | |
CN103179048B (zh) | 云数据中心的主机QoS策略变换方法及系统 | |
JP2010500667A (ja) | 仮想マシン環境におけるハードウェア仮想化を提供するためのシステムおよび方法 | |
CN103080903A (zh) | 调度器、多核处理器系统以及调度方法 | |
CN102135903B (zh) | 基于硬件虚拟化的Xen实时性增强系统及其方法 | |
CN106598731A (zh) | 基于异构多核架构的运行时系统及其控制方法 | |
CN101976201B (zh) | 基于cpu亲和力的虚拟cpu动态绑定方法 | |
CN101706743A (zh) | 一种多核环境下的虚拟机调度方法 | |
CN108123980A (zh) | 一种资源调度方法及系统 | |
CN105912383A (zh) | 一种高可靠性的依赖任务调度与资源配置方法 | |
Koneru et al. | Resource allocation method using scheduling methods for parallel data processing in cloud | |
Corbalan et al. | Improving gang scheduling through job performance analysis and malleability | |
CN107423114A (zh) | 一种基于服务分类的虚拟机动态迁移方法 | |
CN107133099B (zh) | 一种云计算方法 | |
Peluso et al. | Supports for transparent object-migration in PDES systems |
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 |