[发明专利]一种虚拟机调度的装置及方法有效
申请号: | 200810224940.3 | 申请日: | 2008-10-27 |
公开(公告)号: | CN101408853A | 公开(公告)日: | 2009-04-15 |
发明(设计)人: | 张翔;马捷;孟丹 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/455 |
代理公司: | 北京律诚同业知识产权代理有限公司 | 代理人: | 梁 挥;祁建国 |
地址: | 100080北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 虚拟机 调度 装置 方法 | ||
技术领域
本发明涉及虚拟化领域,尤其涉及一种虚拟机调度的装置及方法。
背景技术
虚拟化使得不同服务可以互不干扰的整合在同一物理机器上,充分利用系统资源。当服务整合时,通常将每个服务放在一个独立的虚拟机中。因此,需要保证虚拟机之间的公平和效率。公平是指同一个物理节点上的虚拟机,应该以用户指定的配额共享物理资源,互不干扰;效率是指尽可能提高整个系统的吞吐率。
在虚拟机系统中,调度器是用于调度虚拟机的VCPU(虚拟处理器)的装置。在系统启动时,每个虚拟机的VCPU根据其所属虚拟机包含的VCPU的数量,获得对应的信誉度。当VCPU还有剩余信誉度时,该VCPU处于UNDER状态;当VCPU的信誉度被用完时,该VCPU处于OVER状态;当VCPU进行I/O处理时,该VCPU处于BOOST状态。每个被调度运行的VCPU最多运行30ms,对于被调度运行的VCPU,每隔10毫秒将该VCPU的信誉度的值减去100。当系统中VCPU的信誉度总和小于0时,由调度器重新为各个VCPU分配信誉度。
调度器的调度方法如图1所示。调度器将具有任务等待调度的VCPU按调度的优先级排列到可运行队列中。按VCPU所处的状态确定VCPU的调度优先级,由高到低的顺序为BOOST状态、UNDER状态、OVER状态,可运行队列的队尾为系统的空转VCPU。在图1中,虚拟处理器A、B、H处于BOOST状态,虚拟处理器C、D、E处于UNDER状态,虚拟处理器F处于OVER状态,虚拟处理器G为空转VCPU。被调度运行完的虚拟处理器H插入到其相同状态的所有VCPU之后。
现有技术中的调度器可以保证VCPU之间按照信誉度的比例公平共享处理器资源,但是没有考虑I/O资源共享的公平性。例如,在同一物理机器上的两个虚拟机A和B上运行阿帕奇网络服务器,并赋予A和B相同的信誉度的值。若虚拟机B上阿帕奇服务器的服务线程远多于虚拟机A的服务线程,或虚拟机B上的负载远大于虚拟机A,则虚拟机B获得的网络带宽远远高于虚拟机A。这意味着虚拟机B“偷走”了虚拟机A的部分网络处理能力。这种I/O资源共享的不公平会导致I/O性能隔离较差且不可预测,使得虚拟化技术不能适用于性能依赖于I/O公平性的应用程序。
发明内容
为解决上述问题,本发明提供了一种虚拟机调度的装置及方法,能够提高虚拟机之间占用资源的公平性。
本发明公开了一种虚拟机调度的方法,按调度优先级从高到低的顺序将待调度的虚拟机的虚拟处理器排列在可运行队列中,包括:
步骤1,将I/O密集型的虚拟处理器加入到检测窗口,为所述虚拟处理器分配初始的资源配额;
步骤2,按顺序调度所述可运行队列中的虚拟处理器,如果被调度的虚拟处理器不在所述检测窗口内,运行所述虚拟处理器,运行完成后调度所述可运行队列中下一个虚拟处理器,否则,执行下一步骤;
步骤3,依据所述虚拟处理器当前剩余的资源配额确定是否运行所述虚拟处理器,在运行完成后更新所述虚拟处理器的剩余资源配额,调度所述可运行队列中下一个虚拟处理器。
所述资源配额对应表示为I/O信誉度。
所述步骤3进一步为:
步骤31,如果所述虚拟处理器当前的I/O信誉度大于0,则确定运行所述虚拟处理器,在运行完成后,将所述虚拟处理器的I/O信誉度减去所述运行中完成的I/O处理数量,并调度所述可运行队列中下一个虚拟处理器,否则,调度所述可运行队列中下一个虚拟处理器。
所述步骤2和所述步骤3之间还包括:
步骤41,判断所述检测窗口中包含的虚拟处理器个数是否为1,如果是,运行所述虚拟处理器,在运行完成后调度所述可运行队列中下一个虚拟处理器,否则,执行所述步骤3。
所述步骤2和所述步骤41间还包括:
步骤51,判断所述虚拟处理器所属的虚拟机是否属于驱动域或特权虚拟机所在的域,如果是,则运行所述虚拟处理器,在运行完成后调度所述可运行队列中下一个虚拟处理器,否则,执行所述步骤41。
所述将所述虚拟处理器的I/O信誉度减去所述运行中完成的I/O处理数量后还包括:
步骤61,在所述检测窗口内的所有虚拟处理器的I/O信誉度都小于0时,按所述初始的资源配额增加所述检测窗口内的所有虚拟处理器的I/O信誉度。
所述步骤1中将I/O密集型的虚拟处理器加入到检测窗口进一步为:
步骤71,统计所述虚拟处理器运行时完成的I/O处理数量大于预设值的次数占所述虚拟处理器运行的次数的比值;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810224940.3/2.html,转载请声明来源钻瓜专利网。