一种credit调度器中增量时间片调整架构及方法
【专利摘要】本发明公开了一种CREDIT调度器中增量时间片调整架构及方法。其中,中断决策信息维护器负责维护历史中断决策信息;增量时间片自适应调整器定时采集中断决策信息维护器中维护的数据信息,结合增量时间片调整历史信息,动态计算出新的增量时间片。若新计算得到的增量时间片与原有的增量时间片有差异,则通知CREDIT调度器执行增量时间片的更新。作为原有时间片机制的扩展,增量时间片动态维护一个非负值来增加原有时间片的长度。增量时间片机制建立在虚拟中断自主决策机制之上,因此可以在不影响虚拟机I/O性能的前提下增加时间片的长度。
【专利说明】—种CREDIT调度器中增量时间片调整架构及方法
【技术领域】
[0001]本发明涉及系统虚拟化、虚拟中断处理、虚拟机调度器设计领域,具体地,涉及一种CREDIT调度器中基于中断绑定决策支持的增量时间片调整架构及方法,用于解决由调度器中时间片长度设置所引起的上下文切换频繁、物理计算资源损耗及中断响应处理延迟较长的问题。
【背景技术】
[0002]系统虚拟化及其相关技术在业界发展迅速。虚拟化技术通过将一台或多台功能相对比较强大的物理服务器虚拟化成多台性能上相对普通的中小型计算机,实现了计算资源和存储资源的整合,在充分考虑现实情况和生产环境需求的前提下对整合后的物理资源进行集中式的管理、再分配与维护,相比原有的物理实体设备系统而言,具有易于把握全局资源利用情况,无需针对不断变化的计算规模和计算要求重复的购置物理资源,便于系统迁移、灾备和重建等主要优点。
[0003]目前主流的系统虚拟化实现方案中,虚拟机监视器(Virtual MachineMonitor, VMM)扮演了一个重要的角色。虚拟机监视器被设计成这样一个软件中间层,他对下层掌握实际的物理资源,包括物理系统的计算资源、存储资源、通信资源等,向上对虚拟操作系统提供虚拟硬件接口,从而实现同一个物理资源在虚拟操作系统层面上的复用。虚拟操作系统从虚拟机监视器中得到虚拟硬件的接口,认为自己独占有一些或某些硬件资源,从而实现系统设备的虚拟化。
[0004]目前业界主流的虚拟机监视器主要有XEN、KVM、VIRTUAL-BOX、VMWARE以及HYPER-V等。其中XEN作为主流的开源虚拟机监视器,为企业和研究机构研究虚拟机监视器开发技术提供了一个非常好的技术平台。XEN默认使用CREDIT调度器来调度VCPU (虚拟CPU)。CREDIT调度器是一种典型的常用调度器。在CREDIT调度器中,每个调度对象即VCPU被分配一定数额的CREDIT值,调度器以时间片为调度周期的考量,对VCPU进行调度。VCPU每运行一段时间,调度器就扣除与运行时间对应的CREDIT值。若VCPU用完了所有的CREDIT值,则在本调度周期中,该VCPU将不再被调度,即不再处于在线状态。
[0005]由于虚拟机监视器作为一种软件中间层插入到虚拟操作系统和底层物理硬件中间,不可避免地在系统整体性能上带来一定程度的负面影响,其中,I/O事件处理延时和VCPU切换性能浪费是两个典型的问题,而这两个问题都和调度器时间片的设计有密切关系。对于I/o事件处理在虚拟化环境中的延时问题,学术界目前采用的研究方法主要集中在设计抢占策略、缩短VCPU轮换的时间片长度、增加VCPU切换频率这些方面。缩短VCPU轮换的时间片长度增加了 VCPU在调度队列中的分散度,在一定程度上能够缓解I/O事件处理的延时较长问题。但是,短时间片直接导致了更加频繁的VCPU上下文切换,从而将宝贵的系统计算资源浪费在VCPU切换上,降低了物理资源的实际利用率。进一步,对于CPU密集型任务,由于其I/o事件不处于主要的性能开销瓶颈中,频繁的上下文切换不但不利于任务的完成,反而会增加任务的时间开销。相反,较长的时间片有利于CPU密集型任务的完成,但是在传统的虚拟中断处理平台中,较长的时间片意味着较长的VCPU队列等待时间和更加不均匀的VCPU在线状态,从而导致I/O事件的响应延时进一步增长。
[0006]图1是虚拟机监视器中原有虚拟中断处理框架。可以看到,在原有的虚拟机监视器设计架构中,调度器的设计和虚拟中断处理平台在结构上是完全独立、互不联系的。以SMP虚拟机为例,在虚拟中断处理平台中,虚拟设备产生虚拟中断请求,发送给虚拟I/OAPIC (输入/输出高级可编程中断控制器),虚拟I/O APIC进一步将此中断请求绑定至该虚拟机的某一个确定的VCPU,并且将中断发送给该VCPU的虚拟Local APIC (本地高级可编程中断控制器),完成中断注入。而另一方面,VMM中的调度器则负责调度VCPU,以每一个物理CPU为单位维护该物理CPU对应的VCPU队列,基于一定的管理方式,例如CREDIT管理等进行VCPU的调度。
[0007]综上所述,在系统虚拟化技术中,调度器时间片的设计从系统性能和物理资源利用率角度来说,存在这样一个自我矛盾、需要分析和进行权衡、取舍的问题。短时间片有利于I/O事件和中断的响应,长时间片则有利于CPU密集型任务的执行,并且减少了不必要的VCPU上下文切换所带来的计算资源的浪费。这种权衡的局面使得时间片的长度在设计上存在一定的争议,不能同时满足快速中断响应和高资源利用率的要求。
[0008]因此,本领域的技术人员致力于开发一种兼顾快速中断响应和高资源利用率的时间片长度调整架构及方法。
【发明内容】
[0009]有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种CREDIT调度器中增量时间片调整架构及方法,在保证系统虚拟中断得到及时处理的同时,根据历史中断处理情况分析,合理增加了时间片长度,从而有效降低了由VCPU上下文切换而引起的系统计算资源的浪费,提高了物理资源的利用率。
[0010]为实现上述目的,本发明提供了一种CREDIT调度器中基于中断绑定决策支持的增量时间片调整架构及方法。
[0011]调整架构包括以下模块:
[0012](I)调度信息维护器:负责接收CREDIT调度器通知,维护及提供虚拟机的调度状态;
[0013](2)中断自主决策器:负责拦截虚拟I/O APIC发送出的虚拟中断,读取调度信息维护器中的调度状态,选取VCPU进行虚拟中断的应答;
[0014](3)中断决策信息维护器:负责维护及提供所述虚拟中断的信息;
[0015](4)时间片自适应调整器:负责监视和分析中断决策信息维护器中的信息,通知CREDIT调度器执行对增量时间片的调整,维护增量值和增量时间片调整历史信息。
[0016]采用以上调整架构的调整方法包括以下步骤:
[0017]步骤1、当虚拟机监视器接收到物理I/O发送的中断后,CREDIT调度器通知调度信息维护器对当前虚拟机的调度状态,其包括1.各个物理队列中的VCPU的在线状态,即当前是否在线,2.在各自队列中所处的位置,即在队列中排第几,3.每个VPCU所拥有的剩余信用值,4.VCPU是否处于空闲状态,进行实时的增量维护,为进一步的方案实施准备充分、有序、可用的调度信息;[0018]步骤2、当虚拟机监视器需要处理由物理I/O设备发送的中断而生成的虚拟中断时,中断自主决策器在虚拟I/O APIC发送出虚拟中断之前进行拦截,并且从调度信息维护器中取得当前虚拟机的调度状态,选取VCPU进行虚拟中断的应答,并在中断决策信息维护器中维护虚拟中断的信息;
[0019]步骤3、时间片自适应调整器实时监视和分析中断决策信息维护器中的信息,通知CREDIT调度器中的增量时间片调整执行器执行对当前虚拟机的所有VCPU的增量时间片的调整。
[0020]进一步地,步骤2中,选取VCPU进行虚拟中断的应答前,需判断当前虚拟机的所有VCPU在CREDIT调度器中是否都不处于在线状态:
[0021]如当前虚拟机没有任何一个VCPU处于在线状态,即中断决策意外,则中断决策器随机选取当前虚拟机中的一个VCPU进行虚拟中断的应答;
[0022]如当前虚拟机有一个或多个VCPU处于在线状态,即中断决策成功,则中断决策器随机选取当前虚拟机中处于在线状态中的一个VCPU进行虚拟中断的应答。
[0023]进一步地,步骤2中,中断决策信息维护器维护中断决策意外和中断决策成功的信息,包括当前时间、当事VM的ID、当事的中断向量号、最后被选取的VCPU的ID、本条中断决策息是否成功。
[0024]进一步地,步骤3中,对于当前虚拟机,时间片自适应调整器从中断决策信息维护器中读取预设数量的信息来计算中断决策意外/中断决策成功的比例,并将该比例与预设门限范围进行比较:
[0025]若比例在预设门限范围,维持当前虚拟机中所有VCPU的增量时间片不变,即无操作;
[0026]若比例小于预设门限范围的下限值,则当前虚拟机中所有VCPU的增量时间片加上增量值,即增加操作;
[0027]若比例大于预设门限范围的上限值,则当前虚拟机中所有VCPU的增量时间片减去增量值,即减小操作;
[0028]在无操作或增加操作或减小操作完成后,将当前时间、当前虚拟机的ID、决策类型作为一条增量时间片调整历史信息,决策类型记录的内容是无操作或增加操作或减小操作。
[0029]进一步地,步骤3中,若从前一次开始并向前统计的增量时间片调整历史信息中,增加操作和减少操作连续交替出现的次数大于预设次数,则将增量值乘以预设百分比的结果作为后续计算中的增量值。
[0030]进一步地,增量时间片是非负值。
[0031]CREDIT调度器中基于中断绑定决策支持的增量时间片调整方法具有以下有益的技术效果:
[0032](I)中断自主决策器取代了传统的虚拟I/O APIC进行中断的发送,在选取VCPU的决策过程中增加了对调度器调度现状信息的综合考虑,使得虚拟中断请求尽可能的由在线VCPU处理,避免了不必要的中断处理等待用时,提高了虚拟中断的响应速率。此外,当存在多个待选VCPU时,通过随机选取的方式,保证了一定程度上的负载均衡性。
[0033](2)基于中断决策信息维护的增量时间片自适应调整方案,在原有调度器的时间片基础上提供了另一种额外的时间片-增量时间片,与原有的时间片一起协同参与调度器时间片长度的管理,提高了调度器本身的灵活性,提高了调度器的管理和优化能力。
[0034](3)相比原有的单一、固定时间片策略,增量时间片基于中断决策信息动态地给出了可以增加的时间片长度,延长了 VCPU调度的时间片,减少了 VCPU之间的切换频率,有效降低了频繁的上下文切换带来的物理机计算性能的损耗。
[0035](4)由于时间片的延长机制建立在自主中断决策机制上,延长时间片之后的调度器不会对中断请求的及时应答造成负面影响,保证了虚拟中断及I/o事件的及时处理。
[0036](5)在确定时间片的增量大小的决策过程中考虑了增量时间片变动的历史操作,根本上避免了不必要的增量值震荡波动现象,保证了增量时间片设置的稳定性、合理性,从而提升了虚拟系统整体的稳定性和可用性。
[0037]以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
【专利附图】
【附图说明】
[0038]图1是虚拟机监视器中原有虚拟中断处理示意图;
[0039]图2是本发明中加入增量时间片调整模块后的VMM虚拟中断处理示意图;
[0040]图3是本发明中基于中断自主决策的增量时间片调整架构的内部结构示意图。
【具体实施方式】
[0041]以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
[0042]图2是本发明中加入增量时间片调整模块后的VMM虚拟中断处理框架。其中,VCPUO?VCPU N表示多个VCPU,同样地,虚拟Local APICO?虚拟Local APIC N和物理CPUO?物理CPU M分别表示多个虚拟Local APIC和物理CPU。在本发明中,虚拟机监视器的调度器模块和虚拟中断处理平台之间不再是孤立的状态,其中引进了基于中断自主决策的增量时间片调整模块进行两边信息的接收、传递和处理。新加入的模块从功能上将主要负责两方面的功能实现:1.截获原有虚拟I/O APIC处理完毕的中断请求,根据调度信息实行动态的自主中断绑定。2.在中断历史信息的支持下,结合增量时间片历史操作信息计算出新的增量时间片,通过消息推送使得调度器中进行相应的更新操作。
[0043]图3是本发明中基于中断自主决策的增量时间片调整架构的内部设计结构。可以看到,基于中断自主决策的增量时间片调整模块有四个主要的实现子模块,分别是调度信息维护器、中断自主决策器、中断决策信息维护器和时间片自适应调整器。调度信息维护器负责维护由调度器产生的调度信息,每当调度器发生一次调度事件,就以增量的形式维护调度信息。调度信息维护器中维护的调度信息主要用于中断自主决策器进行中断决策。中断自主决策器根据截获的中断请求信息,结合调度信息考虑得出合适的接收者VCPU。若该接受者不处于在线状态,则称发生了一次中断决策意外,否则认为此次中断决策成功。所有的中断决策信息都发送到中断决策信息维护器中进行保存和处理。为了节省空间需求,信息维护器中都设置了一个历史门限,超过历史门限的信息将被自动删除。最后,时间片自适应调整器从中断决策信息维护器中得到必要的中断决策信息,综合历史增量时间片浮动信息以及中断的处理情况、负载情况等,做出最终的增量时间片计算,通过消息推送使调度器进行相应的时间片的更新。
[0044]调整方法的具体实现步骤主要分为三个部分,其中第一部分步骤如下:
[0045]步骤1、当虚拟机监视器接收到物理I/O发送的中断后,就在调度信息维护器中对当前的调度状态,其包括1.各个物理队列中的VCPU的在线状态,即当前是否在线,2.在各自队列中所处的位置,即在队列中排第几,3.每个VPCU所拥有的剩余信用值,4.VCPU是否处于空闲状态,进行实时的增量维护,为进一步的方案实施准备充分、有序、可用的调度信息。
[0046]该部分的主要代码实现如下:
[0047]
【权利要求】
1.一种CREDIT调度器中增量时间片调整架构,其特征在于,包括以下模块: (1)调度信息维护器:负责接收所述CREDIT调度器的通知,维护及提供虚拟机的调度状态; (2)中断自主决策器:负责拦截虚拟I/OAPIC发送出的虚拟中断,读取所述调度信息维护器中的所述调度状态,选取VCPU进行所述虚拟中断的应答; (3)中断决策信息维护器:负责维护及提供所述虚拟中断的信息; (4)时间片自适应调整器:负责监视和分析所述中断决策信息维护器中的信息,通知所述CREDIT调度器执行对增量时间片的调整,维护增量值和增量时间片调整历史信息。
2.一种采用如权利要求1所述的CREDIT调度器中增量时间片调整架构的调整方法,其特征在于,包括以下步骤: 步骤1、当虚拟机监视器接收到物理I/O发送的中断后,所述CREDIT调度器通知所述调度信息维护器对当前虚拟机的调度状态进行增量维护; 步骤2、当所述虚拟机监视器处理由所述中断而生成的虚拟中断时,所述中断自主决策器在所述虚拟I/O APIC发送出所述虚拟中断之前进行拦截,并且根据所述调度信息维护器中取得所述当前虚拟机的所述调度状态选取VCPU进行所述虚拟中断的应答,所述中断决策信息维护器中维护所述虚拟中断的信息; 步骤3、所述时间片自适应调整器实时监视和分析所述中断决策信息维护器中的信息,通知所述CREDIT调度 器中的增量时间片调整执行器执行对所述当前虚拟机的所有VCPU的增量时间片的调整。
3.如权利要求2所述的调整方法,其特征在于,所述步骤2中,在选取所述VCPU进行所述虚拟中断的应答前,需判断所述当前虚拟机的所有VCPU在所述CREDIT调度器中是否都不处于在线状态: 如所述当前虚拟机没有任何一个所述VCPU处于在线状态,即中断决策意外,则所述中断决策器随机选取所述当前虚拟机中的一个所述VCPU进行所述虚拟中断的应答; 如所述当前虚拟机有一个或多个所述VCPU处于在线状态,即中断决策成功,则所述中断决策器随机选取所述当前虚拟机中处于所述在线状态中的一个所述VCPU进行所述虚拟中断的应答。
4.如权利要求3所述的调整方法,其特征在于,所述步骤2中,所述中断决策信息维护器维护所述中断决策意外和所述中断决策成功的信息。
5.如权利要求4所述的调整方法,其特征在于,所述步骤3中,所述时间片自适应调整器从所述中断决策信息维护器中读取预设数量的信息来计算所述中断决策意外与所述中断决策成功的比例,并将所述比例与预设门限范围进行比较: 若所述比例在所述预设门限范围内,维持所述当前虚拟机中所有VCPU的增量时间片不变,即无操作; 若所述比例小于所述预设门限范围的下限值,则所述当前虚拟机中所述所有VCPU的增量时间片加上增量值,即增加操作; 若所述比例大于所述预设门限范围的上限值,则所述当前虚拟机中所述所有VCPU的增量时间片减去增量值,即减小操作; 在所述无操作或所述增加操作或所述减小操作完成后,将当前时间、所述当前虚拟机的ID、决策类型作为一条增量时间片调整历史信息,所述决策类型记录的内容是所述无操作或所述增加操作或所述减小操作。
6.如权利要求5所述的调整方法,其特征在于,所述步骤3中,若从前一次开始并向前统计的所述增量时间片调整历史信息中,所述增加操作和所述减少操作连续交替出现的次数大于预设次数,则将所述增量值乘以预设百分比的结果作为后续计算中的所述增量值。
7.如权利要求2-6所述的任一调整方法,其特征在于,所述增量时间片是非负值。
【文档编号】G06F9/48GK103793274SQ201410056740
【公开日】2014年5月14日 申请日期:2014年2月19日 优先权日:2014年2月19日
【发明者】管海兵, 马汝辉, 李健, 朱敏君, 周凡夫 申请人:上海交通大学