首页> 中国专利> 基于当前credit进行预测调度的处理器资源精确分配方法

基于当前credit进行预测调度的处理器资源精确分配方法

摘要

本发明公开了一种基于当前credit进行预测调度的处理器资源精确分配方法,其中,Credit调度器的运行队列包括位于队列的前部分的处于UNDER优先级的VCPU、处于OVER优先级的VCPU、位于队列末尾的IDLE优先级的VCPU以及用于保存所有透支了credit的VCPU的等待队列,该方法基于VCPU所拥有的credit值来预测credit开始透支的时间点,并停止对该VCPU的调度,从而有效控制credit的消耗,进而达到精确分配处理器资源的目的。本发明提高了Credit调度器在NWC模式下分配处理器资源的精确度,提高了VCPU的隔离性,可以有效地对处理器资源进行划分。此外,该方法还能保留现有Credit调度器对小任务负载的响应快速响应,负载均衡的优点。

著录项

  • 公开/公告号CN103064746A

    专利类型发明专利

  • 公开/公告日2013-04-24

    原文格式PDF

  • 申请/专利权人 上海交通大学;

    申请/专利号CN201310025314.2

  • 申请日2013-01-23

  • 分类号G06F9/50;

  • 代理机构上海旭诚知识产权代理有限公司;

  • 代理人郑立

  • 地址 200240 上海市闵行区东川路800号

  • 入库时间 2024-02-19 19:06:55

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-08-12

    授权

    授权

  • 2013-05-29

    实质审查的生效 IPC(主分类):G06F9/50 申请日:20130123

    实质审查的生效

  • 2013-04-24

    公开

    公开

说明书

技术领域

本发明涉及计算机系统虚拟化调度领域,具体地,涉及一种基于当前credit进 行预测调度的处理器资源精确分配方法,用于解决Credit调度算法在分配小额处理 器资源不精确的问题。

背景技术

虚拟机监控器(Virtual Machine Monitor,VMM)是指在硬件与传统操作系统 之间提供一个软件管理层,来抽象底层的硬件,向上层提供虚拟硬件接口,从而能 够使多个操作系统同时在该虚拟硬件上运行。虚拟机管理主要负责对硬件资源的管 理,主要资源包括处理器、内存和I/O。虚拟机监控器与运行其上的虚拟机或者说 虚拟机操作系统之间的关系就如同传统操作系统和进程之间的关系。

基于虚拟机监控器的系统虚拟化技术是当今云计算,数据中心底层构建的基 础。系统虚拟化技术提供执行的高效性,资源管理的隔离性,有助于企业将原本运 行于多台物理服务器上的服务整合到一台物理服务器上,从而充分利用硬件资源, 有效减少企业在IT基础架构上的开销。此外,通过在虚拟机管理上运行虚拟操作 系统,有助于遗留软件系统的移植。系统虚拟化技术提供的隔离性能够保证一个虚 拟机的执行,不影响其他虚拟机的运行。这其中包括安全隔离性和性能隔离性。安 全隔离性指某个虚拟机运行出错或者崩溃不会影响到在同一个宿主机上其他虚拟 机的正常运行。而所谓性能隔离性是指某个虚拟机对系统资源的消耗不会影响系统 初始配置给其他虚拟机的资源。

由于在硬件和虚拟操作系统之间引入了虚拟机监控器中间层,系统的性能势必 受到一些影响。目前学术界主要研究集中在于引入虚拟化软件层对系统处理器吞吐 量的影响,对虚拟机监控器具体如何分配处理器资源关注较少。

由于现有Credit调度器具有以下优点,使得其从Xen平台提供的多个调度器 中脱颖而出作为默认的调度器:

1、现有Credit调度器一个显著有点是具备多核负载均衡的特性,它在多核环 境下,根据每个物理处理器的负载情况,有效的分配VCPU到空闲的物理处理器 上,从而有效利用系统资源。

2、现有Credit调度器能够为每个空闲的VCPU保留一定Credit值,这个值正 比于调度时间片。由于该空闲时间片,每次有小任务请求时,系统都能快速响应执 行完毕。

但是现有Credit调度器采用的credit透支惩罚机制来管理VCPU的credit, VCPU在每个时间片都可以透支credit,导致在该时间片中,VCPU可以获得比配 置期望更多的处理器时间,由于在本轮中过度的透支credit,Credit调度器会在接 下去的几个时间片中停止调度该VCPU进行惩罚,从而在整体上保证处理器资源 的公平分配。该方法的缺点是无法在短时间提供提供有效地资源隔离性。

Xen是一个开源的虚拟机监控器,它可以运行多个虚拟操作系统以充分利用硬件 资源。在现有的Xen中的实现的Credit调度器能够在Non-Working-Conserving模式 (NWC-mode)下实现公平地分配CPU资源到每个VCPU中,但是由于现有的Credit 调度器采用透支惩罚机制来管理credit。在该机制下,每个VCPU可以使用超过预期 分配credit,透支使用的credit以负值体现。透支credit的VCPU在接下来的几个调 度周期中将被惩罚而得不到调度,直到该VCPU获得新的credit使其重新变成正值。 这样就不能保证VCPU在每个调度周期内准确获得相应比例的CPU时间。因此,现 有的Xen Credit调度器并不能很好的保证在短时间内每个VCPU的隔离性。经过实 验发现,Xen Credit调度器工作在NWC-模式时,分配处理器资源有较大误差,当 分配目标较小时误差更加严重。当虚拟机数量增加时,分配处理资源的精确度更加 下降。

发明内容

有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种基于当前 credit进行预测调度的处理器资源精确分配方法,其克服了Credit调度器处理器资 源分配误差大的不足,有效地控制credit的透支。

为实现上述目的,本发明提供了一种基于当前credit进行预测调度的处理器资 源精确分配方法,其特征在于:Credit调度器的运行队列包括位于队列的前部分 的处于UNDER优先级的VCPU、处于OVER优先级的VCPU、位于队列末尾的 IDLE优先级的VCPU以及用于保存所有透支了credit的VCPU的等待队列,

基于当前credit进行预测调度的处理器资源精确分配方法包括以下步骤:

步骤1、每当Credit调度器被触发时,判断当前运行的VCPU的credit值,如 果当前的credit值已经变为负值或者零,则将该VCPU放入等待队列中;如果当前 的credit为正值,则按该VCPU的优先级放到相应优先级队列的末尾;

步骤2、当处理器从运行队列中选择优先级最高的VCPU进行调度执行时,根 据所拥有的credit值,预测在多长时间后credit会被消耗完;

步骤3、根据步骤2所预测的时间,设置一个在该预测的时间过后触发的定时 器,用以通知Credit调度器当前运行的VCPU的credit已经消耗完;

步骤4、在每个周期重新为每个处于活动状态的VCPU分配credit时,若发现 某个VCPU处于等待队列中并且该VCPU的credit由于新分配的credit值而从负值 变为正值,则将该VCPU从等待队列移除,添加到运行队列队首。

如上述的基于当前credit进行预测调度的处理器资源精确分配方法,其中,步 骤2中,根据10ms相当于100credit值进行转换,来预测在多长时间后credit会被 消耗完。

本发明的基于当前credit进行预测调度的处理器资源精确分配方法具有以下有 益的技术效果:

(1)可有效控制在Xen平台上Credit调度器对处理器资源的精确分配,保证 每个VCPU的处理器资源隔离性;

(2)基于当前credit值预测该VCPU将要执行的时间来有效的控制credit值, 能够在VCPU用完credit时停止调度该VCPU,从而阻止credit值的进一步消耗;

(3)相比于现有Credit调度器,本发明的Credit调度器能够有效提供短时间 内的处理器资源隔离性,同时因为能够保证每个VCPU在每个调度周期都能获得 预先配置的,虚拟机的I/O响应能力也得到一定提高;

(4)本发明的Credit调度器依旧保留了现有Credit调度器负载均衡的特性, 实验证明本发明的调度器在多核环境下能够很好地工作;

(5)由于本发明的调度器并没有修改调度周期的片长度,因此依旧能够为Xen 上的空闲VCPU积累一定的credit,有利于小任务负载的调度。

附图说明

图1是现有Credit调度器的运行队列的结构示意图;

图2是本发明的Credit调度器的运行队列的结构示意图;

图3是Credit调度器的credit分配过程示意图。

具体实施方式

以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明, 以充分地了解本发明的目的、特征和效果。

图1是现有Credit调度器的运行队列,该队列主要由三部分组成,位于队列的 前部分是处于UNDER优先级的VCPU,紧接着是处于OVER优先级的VCPU, UNDER的优先级高于OVER的优先级。位于队列末尾的IDLE优先级的VCPU, 每个运行队列都维护一个IDLE的VCPU,当IDLE运行时,处理器处于空闲状态。

图2是本发明的Credit调度器的运行队列,相比于现有Credit调度器的运行队 列,该队列新增一个等待队列,该等待队列用于保存所有透支了credit的VCPU。

在具体实现基于预测的处理器资源精确分配调度算法时,本发明根据每个 VCPU在每轮调度中所拥有的credit作为启发式信息预测出多长时间后credit开始 透支,从而需要引入一个定时器,用来在经过预测时间以后作为调度事件通知调度 器,使调度器停止对credit已经透支的VCPU进行调度,以此保证每个VCPU在 一个调度周期中只能准确拥有预期配置的处理器时间。除此之外,还需要引入一个 等待队列,该等待队列用于维护credit已经透支的VCPU。引入该队列的目的在于 保护原有Credit调度器的结构不受影响,本发明新实现的调度器能够兼容现有 Credit调度器的性质,使现有Credit调度器的特性不被破坏。

图3是Credit调度器的credit分配过程。现有的Credit调度器每隔30ms进行 一次credit分配,每隔10ms根据VCPU所运行的时间更新credit,同时检查是否 有空闲的物理CPU,如果存在空闲的物理CPU,则可能将当前的VCPU迁移过去。 是否真的迁移还有其他一些约束条件。

本发明基于预测的处理器资源精确分配Credit调度方法具体步骤如下:

步骤1、每当Credit调度器被触发时,判断当前运行的VCPU的credit值,如 果当前的credit值已经变为负值或者零,则将该VCPU放入等待队列中;如果当前 的credit为正值,则按该VCPU的优先级放到相应优先级队列的末尾;

步骤2、当处理器从运行队列中选择优先级最高的VCPU进行调度执行时,根 据所拥有的credit值,根据默认的10ms相当于100credit值进行转换,预测在多长 时间后credit会被消耗完;

步骤3、根据步骤2所预测的时间,设置一个在该预测的时间过后触发的定时 器用以通知调度器当前运行的VCPU的credit已经消耗完;

步骤4、在每个周期重新为每个处于活动状态的VCPU分配credit时,若发现 某个VCPU处于等待队列中并且该VCPU的credit由于新分配的credit值而从负值 变为正值,则将该VCPU从等待队列移除,添加到运行队列队首。

具体地,本发明的调度方法具体实现步骤主要分为两部分,第一部分步骤如下:

步骤1、当调度器停止当前VCPU运行,从运行队列选取列首VCPU进行运行时, 判断当前VCPU的credit值,如果该值为正值,则将该VCPU按现有Credit调度器的 方式放入其相应优先级队列的末尾,否则将该VCPU放入等待队列。该步骤的代码如 下:

步骤2、当调度器选取新的VCPU运行时,根据该VCPU所拥有的credit值 以及10ms等于100credit的关系预测该VCPU在credit透支之前能够运行多长 时间。

步骤3、根据步骤2预测的时间,设定一个定时器,在该时间过后异步同时 调度器,使调度器选取新的VCPU进行运行。

步骤2和步骤3的代码如下:

本发明的调度方法具体实现步骤的第二部分修改现有Credit调度的分配过程,具 体步骤如下:

步骤1、现有Credit调度器为活动链表中的VCPU根据Weight和Cap参数分配 credit,在具体分配之前,将等待队列中处于活动状态的VCPU加入到活动列表中。

步骤2、当某个VCPU获得新分配的credit后判断该VCPU的credit值,如果credit 值大于零则将该VCPU从等待队列中移除,加入到运行队列中。

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需 创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中 技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验 可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号