热点域虚拟机cpu调度方法及虚拟机系统的制作方法

文档序号:6358958阅读:174来源:国知局
专利名称:热点域虚拟机cpu调度方法及虚拟机系统的制作方法
技术领域
本发明实施例涉及计算机技术,尤其涉及一种热点域虚拟机CPU调度方法及虚拟机系统。
背景技术
虚拟化技术是一种将底层硬件设备与上层操作系统、应用程序分离的去耦合方法,其引入虚拟机监控器(Virtual Machine Monitor,简称VMM)层来直接管理底层硬件资源,并创建与底层硬件无关的虚拟机(Virtual Machine,简称VM)供上层操作系统和应用程序使用。虚拟机可以分成热点域虚拟机和普通域虚拟机,普通域虚拟机是用户自行创建的,运行普通任务的虚拟机,热点域虚拟机是在系统中起关键作用的,并被普通域虚拟机所依赖的。在不同的虚拟化系统中,热点域虚拟机特征各不相同,比如在有些系统中存在一个驱动域虚拟化,普通域虚拟化通过该驱动域虚拟化实现与物理硬件的交互。在虚拟机系统中,虚拟机并没有真正的物理资源,分配给虚拟机的CPU并不是真实物理CPU,而是VMM分配给虚拟机的虚拟CPU (Virtual Central Processing Unit, 简称vCPU)。在虚拟化环境中,CPU资源存在双重调度,一方面是虚拟机内部的操作系统 (Operation System,简称OS)调度器把线程调度到vCPU上,另一方面VMM调度器把vCPU调度到物理CPU上。虚拟机内部的OS调度器的实现与具体的OS有关,且无法更改,因此VMM 调度器对整个虚拟机系统的性能有着举足轻重的影响。目前VMM调度器普遍采用的调度策略是将普通域虚拟机和热点域虚拟机的vCPU 平等参与调度,因而可能会出现普通域虚拟机抢占热点域虚拟机CPU时间的现象,导致热点域虚拟机的实时性变差,同时也会使普通域虚拟机的请求得不到及时响应,尤其是当虚拟机数量很多时,可能会导致整体性能急剧下降。另一种调度策略是VMM调度器将固定的物理CPU资源分配给热点域虚拟机,默认的vCPU个数与真实物理CPU个数是相关的。系统中的物理CPU数目比较多时,vCPU数量也很多,一方面系统负载比较轻时会造成资源浪费,另一方面在系统负载比较重时,尤其是普通域的vCPU过多的时候,增加热点域虚拟机的vCPU数量并不能提升系统性能。因此,目前的虚拟机系统CPU资源利用率和系统性能较低。

发明内容
本发明实施例提供一种热点域虚拟机CPU调度方法及虚拟机系统,用以解决现有技术中虚拟机系统CPU资源利用率和系统性能较低的缺陷。本发明实施例提供一种热点域虚拟机CPU调度方法,热点域虚拟机的每个虚拟 CPU分别绑定有不同的物理CPU,所述方法包括根据统计到的热点域虚拟机的虚拟CPU的使用信息,确定所述热点域虚拟机的虚拟CPU综合使用率;所述虚拟CPU的使用信息包括所述热点域虚拟机的虚拟CPU利用率和所述热点域虚拟机的虚拟CPU使用时间占用率;
根据所述虚拟CPU综合使用率和为所述热点域虚拟机分配的虚拟CPU的最大个数,确定为所述热点域虚拟机增加或减少至少一个在线虚拟CPU ;增加在线虚拟CPU后,调整与所述在线虚拟CPU绑定的物理CPU的运行队列上普通域虚拟机的虚拟CPU,使所述在线虚拟CPU在所述物理CPU上调度,并使普通域虚拟机的虚拟CPU不能在所述物理CPU上调度;减少在线虚拟CPU后,调整与被下线虚拟CPU绑定的物理CPU的运行队列上所述热点域虚拟机的虚拟CPU,使普通域虚拟机的虚拟CPU恢复在所述物理CPU上调度。本发明实施例提供一种虚拟机系统,包括热点域虚拟机、普通域虚拟机和虚拟机监控器;所述虚拟机监控器,用于为热点域虚拟机的每个虚拟CPU分别绑定不同的物理 CPU ;所述热点域虚拟机,用于根据获取到的热点域虚拟机的虚拟CPU的使用信息,热点域虚拟机确定所述热点域虚拟机的虚拟CPU综合使用率;根据所述虚拟CPU综合使用率和为所述热点域虚拟机分配的虚拟CPU的最大个数,所述热点域虚拟机增加或减少至少一个在线虚拟CPU ;所述虚拟CPU的使用信息包括所述热点域虚拟机的虚拟CPU利用率和所述热点域虚拟机的虚拟CPU使用时间占用率;所述虚拟机监控器,还用于增加在线虚拟CPU后,虚拟机调度器调整与所述在线虚拟CPU绑定的物理CPU的运行队列上普通域虚拟机的虚拟CPU,使所述在线虚拟CPU在所述物理CPU上调度,并使普通域虚拟机的虚拟CPU不能在所述物理CPU上调度;所述虚拟机监控器,还用于减少在线虚拟CPU后,虚拟机调度器调整与被下线虚拟CPU绑定的物理CPU的运行队列上所述热点域虚拟机的虚拟CPU,使普通域虚拟机的虚拟 CPU在所述物理CPU上调度。本发明实施例的热点域虚拟机CPU调度方法及虚拟机系统,热点域虚拟机根据虚拟CPU的使用信息动态调整该热点域虚拟机的在线虚拟CPU数量。在热点域虚拟机的虚拟 CPU负载较高时,为该热点域虚拟机增加在线虚拟CPU,VMM使增加的在线虚拟CPU独占绑定的物理CPU资源,从而普通域虚拟机的在线虚拟CPU不能在该物理CPU上调度,因此,热点域虚拟机的虚拟CPU可在普通域虚拟机的虚拟CPU之前优先使用该物理CPU资源,使热点域虚拟机的虚拟CPU的请求能及时得到响应,避免了普通域虚拟机的虚拟CPU等待热点域虚拟机现象的出现,提高了虚拟系统的整体性能。在热点域虚拟机的虚拟CPU负载较低时, 为该热点域虚拟机删除在线虚拟CPU后,VMM取消热点域虚拟机的虚拟CPU对物理CPU的独占性,使普通域虚拟机的虚拟CPU可参与物理CPU的调度,提高了普通域虚拟机的性能, 避免了 CPU资源的浪费。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图IA为本发明实施例提供的一种热点域虚拟机CPU调度方法流程图IB为本发明实施例提供的一种虚拟机架构图;图2为本发明实施例提供的另一种热点域虚拟机CPU调度方法流程图;图3为本发明实施例提供的一种虚拟机系统结构示意图;图4为本发明实施例提供的另一种虚拟机系统结构示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例提出的热点域虚拟机CPU调度方法根据系统压力大小动态调整热点域虚拟机的VCPU数目,并为其分配独占的物理CPU资源。图IA为本发明实施例提供的一种热点域虚拟机CPU调度方法流程图,图IB为本发明实施例提供的一种虚拟机架构图。如图IB所示,VMM直接管理底层碣件资源,并创建了与底层硬件无关的VM供上层操作系统和应用程序使用。每个VM包括APPS (应用程序) 和OS调度器。其中,VM包括一个热点域虚拟机和多个普通域虚拟机,热点域虚拟机为每个普通域虚拟机都依赖的虚拟机。虚拟机的vCPU分为在线和离线两种状态,在线vCPU可以被虚拟机的OS使用,同时VMM将它调度到物理CPU上。分配线程后的在线vCPU为非空闲在线vCPU,没有分配线程的在线vCPU为空闲在线vCPU。本发明实施例为热点域虚拟机创建vCPU时为热点域虚拟机的每个vCPU绑定不同的物理CPU,也就是说热点域虚拟机的每个vCPU与物理CPU为一一对应关系。热点域虚拟机的VCPU只能在绑定的物理CPU上运行。如果热点域虚拟机的vCPU离线,VMM可以临时将该vCPU对应的物理CPU分配给普通域虚拟机的vCPU使用,一旦该vCPU上线(从离线变为在线),普通域虚拟机的vCPU不能使用该vCPU对应的物理CPU。如图IA所示,本实施例包括步骤11 根据统计到的热点域虚拟机的vCPU的使用信息,热点域虚拟机确定热点域虚拟机的vCPU综合使用率;vCPU的使用信息包括热点域虚拟机的vCPU利用率和热点域虚拟机的vCPU使用时间占用率。热点域虚拟机实时监控热点域虚拟机的vCPU使用信息,包括从热点域虚拟机的 OS调度器统计的该热点域虚拟机的vCPU利用率和从VMM中获取热点域虚拟机的所有vCPU 的使用时间占用率,根据vCPU利用率和vCPU使用时间占用率,确定热点域虚拟机的vCPU
综合使用率。其中,热点域虚拟机的vCPU使用时间占用率可根据热点域虚拟机的所有vCPU的运行时间之和与等待时间之和来确定。例如,热点域虚拟机的vCPU使用时间占用率为热点域虚拟机的所有vCPU的运行时间之和与总时间的比值,其中总时间为所有vCPU的运行时间和所有vCPU的等待时间之和。其中,热点域虚拟机的vCPU利用率是根据虚拟机内部vCPU实际非空闲时间确定。 热点域虚拟机内部所有虚拟CPU非空闲时间之和与所述热点域虚拟机的所有在线虚拟CPU 运行时间之和的比值,确定所述热点域虚拟机的虚拟CPU利用率。
步骤12 根据vCPU综合使用率和VMM为热点域虚拟机分配的vCPU的个数,确定为热点域虚拟机增加或减少至少一个在线vCPU。热点域虚拟机的vCPU综合使用率可反映热点域虚拟机的对vCPU的使用情况,热点域虚拟机的vCPU综合使用率较高时,表明热点域虚拟机的在线vCPU负载较高,可为热点域虚拟机增加在线vCPU的数量。热点域虚拟机的vCPU综合使用率较低时,表明热点域虚拟机的在线vCPU负载较低,可减少热点域虚拟机的在线vCPU的数量。在增加在线vCPU时,可对热点域虚拟机的一个或多个离线虚拟CPU进行上线操作;减少一个或多个在线vCPU时, 可对热点域虚拟机的一个或多个在线虚拟CPU进行下线操作。在虚拟机系统初始化时,VMM为热点域虚拟机分配了一定数量的vCPU。默认情况下,VMM为热点域分配的vCPU的最大个数与物理CPU的个数相同。当热点域虚拟机的vCPU 不足时,热点域虚拟机OS调度器为热点域虚拟机增加在线vCPU,但热点域虚拟机的在线 vCPU个数不能起过VMM为热点域虚拟机分配的vCPU的个数。也就是说,当热点域虚拟机的在线vCPU个数等于VMM为热点域虚拟机初始分配的vCPU的最大个数时,VMM为热点域虚拟机分配的所有vCPU都为在线状态,已不能为热点域虚拟机增加在线vCPU。步骤13a 增加在线vCPU后,VMM调整与在线vCPU绑定的物理CPU的运行队列上普通域虚拟机的vCPU,使在线vCPU在物理CPU上调度,并使普通域虚拟机的vCPU不能在物理CPU上调度。热点域虚拟机增加在线vCPU后,VMM调整该在线vCPU绑定的物理CPU的运行队列上普通域虚拟机的VCPU,使该在线独占绑定的物理CPU。具体方法可以是VMM为每个物理CPU创建一个运行队列,所有在线vCPU加入到不同的运行队列,等待VMM的调度。热点域虚拟机增加在线vCPU后,VMM将该在线vCPU加入到与该在线vCPU绑定的物理CPU的运行队列,同时在物理CPU的运行队列上移除所有普通虚拟机的vCPU,并将移除的vCPU记录到物理CPU的亲和信息中。步骤13b 减少在线vCPU后,VMM调整与被下线vCPU绑定的物理CPU的运行队列上热点域虚拟机的vCPU,使普通域虚拟机的vCPU在物理CPU上调度。热点域虚拟机减少在线vCPU时将一个或多个在线vCPU进行下线操作,VMM调整与被下线vCPU绑定的物理CPU的运行队列上热点域虚拟机的vCPU,取消该下线vCPU对绑定的物理CPU的独占性,使普通虚拟机的CPU可在该绑定物理CPU的运行队列上调度。具体方法可以是,VMM将被下线vCPU从绑定的物理CPU的运行队列上删除,将被下线vCPU绑定的物理CPU的亲和信息中记录的普通虚拟机的vCPU加入到被下线vCPU物理CPU的运行队列。本实施例提供的热点域虚拟机CPU调度方法,热点域虚拟机根据vCPU的使用信息动态调整该热点域虚拟机的在线vCPU数量。在热点域虚拟机的vCPU负载较高时,为该热点域虚拟机增加在线vCPU,VMM使增加的在线vCPU独占绑定的物理CPU资源,从而普通域虚拟机的在线vCPU不能在该物理CPU上调度,因此,热点域虚拟机的vCPU可在普通域虚拟机的vCPU之前优先使用该物理CPU资源,使热点域虚拟机的vCPU的请求能及时得到响应, 避免了普通域虚拟机的vCPU等待热点域虚拟机现象的出现,提高了虚拟系统的整体性能。 在热点域虚拟机的vCPU负载较低时,为该热点域虚拟机删除在线vCPU后,VMM取消热点域虚拟机的vCPU对物理CPU的独占性,使普通域虚拟机的vCPU可参与物理CPU的调度,提高了普通域虚拟机的性能,避免了 CPU资源的浪费。图2为本发明实施例提供的另一种热点域虚拟机CPU调度方法流程图。如图2所示,本实施例包括步骤21 热点域虚拟机按照配置文件启动,VMM为热点域虚拟机创建N个vCPU,为每个vCPU绑定一个物理CPU。虚拟系统初始化时,热点域虚拟机按照配置文件启动,配置文件规定了热点域虚拟机可拥有vCPU的最大数N和最小数η。热点域虚拟机启动后,VMM为热点域虚拟机分配的vCPU个数为N,N必须小于等于实际物理CPU个数,默认条件下,最大vCPU数与物理CPU 数目相同。热点域虚拟机的每个vCPU在创建时都与一个物理CPU进行绑定,也就是对应的vCPU只能在绑定的物理CPU上调度,防止由于VMM调度器的优化,而使热点域虚拟机的 vCPU迁移到其他物理CPU上。步骤22 根据配置文件,为热点域虚拟机保留η个在线vCPU,其余vCPU均作下线处理。并使保留的η个在线vCPU分别独占绑定的物理CPU。热点域虚拟机启动时VMM为热点域虚拟机创建了 N个vCPU,在系统开始运行时,只保留η个在线vCPU,其余N-n作离线处理。后续OS调度器为热点域虚拟机增加或减少在线 vCPU后,热点域虚拟机的在线vCPU的数量在N和η之间变动。步骤23 获取热点域虚拟机的vCPU信息和系统物理CPU信息。从VMM中获取的热点域虚拟机的vCPU信息不仅包括热点域虚拟机每个vCPU的状态(在线和离线)和vCPU的数量,还包括在线的vCPU所绑定的物理CPU。系统物理CPU信息主要包括物理CPU数量。步骤M 性能统计模块从热点域虚拟机的OS调度器获取该热点域虚拟机的vCPU 利用率和从VMM中获取该热点域虚拟机所有vCPU的使用时间占用率。热点域虚拟机的OS调度器统计该热点域虚拟机的vCPU利用率,VMM中统计该热点域虚拟机所有vCPU的使用时间占用率。热点域虚拟机的vCPU使用时间占用率可为热点域虚拟机的所有vCPU的运行时间之和与总时间的比值,其中总时间为所有vCPU的运行时间和所有vCPU的等待时间之和。热点域虚拟机的vCPU利用率可为热点域虚拟机内部所有虚拟CPU非空闲时间之和与所述热点域虚拟机的所有在线虚拟CPU运行时间之和的比值。步骤25 性能统计模块根据该热点域虚拟机的vCPU利用率和该热点域虚拟机所有vCPU的使用时间占用率,确定热点域虚拟机的vCPU综合使用率。热点域虚拟机的vCPU综合使用率可为热点域虚拟机的vCPU利用率与该热点域虚拟机所有vCPU的使用时间占用率的乘积。步骤沈分析与决策模块判断热点域虚拟机的vCPU综合使用率是否超过使用率上限值。若是执行步骤27a至步骤27b,否则执行步骤28。步骤27a 在vCPU综合使用率超过使用率上限值时,OS调度器为热点域虚拟机增加一个在线vCPU。在vCPU综合使用率超过使用率上限值时,分析与决策模块确定为热点域虚拟机增加一个在线vCPU。在确定为热点域虚拟机增加一个在线vCPU时,OS调度器判断从步骤 22中获取的热点域虚拟机的在线vCPU的数量是否小于VMM为热点域虚拟机分配的vCPU的最大个数N,如果是,OS调度器根据步骤23中获取的每个vCPU的状态,对一个离线vCPU进行上线操作使其唤醒成为在线状态。步骤27b =VMM将增加的在线vCPU加入到与该在线vCPU绑定的物理CPU的运行队列,在所述物理CPU的运行队列上移除所有普通域虚拟机的vCPU并记录到该物理CPU的亲和信息中。在步骤27b之后,返回步骤23继续执行直至虚拟系统下次启动。OS调度器增加一个在线vCPU后,通知VMM对在线vCPU进行独点性操作。VMM根据步骤23中获取的vCPU信息,确定增加的在线vCPU绑定的物理CPU,将该在线vCPU加入到绑定物理CPU的运行队列上。之后,VMM遍历所有普通域虚拟机的vCPU,VMM移除该绑定物理CPU的运行队列上的所有普通域虚拟机的vCPU,将移除的vCPU记录到所述物理CPU的亲和信息中,以便后续允许这些普通域虚拟机的vCPU在该物理CPU上调度时,将这些普通域虚拟机的vCPU恢复到物理CPU的运行队列上。步骤观分析与决策模块判断热点域虚拟机的vCPU综合使用率是否低于使用率下限值。如果低于使用率下限值,执行步骤^a,否则OS调度器维持热点域虚拟机的vCPU 个数,返回步骤23继续执行。步骤^a 在vCPU综合使用率低于使用率下限值时,OS调度器为热点域虚拟机减少一个在线vCPU。在vCPU综合使用率低于使用率下限值时,分析与决策模块确定为热点域虚拟机减少一个在线vCPU。OS调度器根据步骤23中获取的每个vCPU的状态,可选择序号最大的在线vCPU,对其进行下线操作使其成为离线状态。其中,使用率上限值和使用下限值可为根据不同应用场景设置的经验值。步骤^b =VMM将被下线vCPU从绑定的物理CPU的运行队列上移除,并将所述物理 CPU的亲和信息中记录的普通虚拟机的vCPU加入到所述物理CPU的运行队列。在步骤29b之后,返回步骤23继续执行直至虚拟系统下次启动。本实施例提供的热点域虚拟机CPU调度方法,热点域虚拟机增加或减少一个或多个在线vCPU后,VMM对该vCPU绑定的物理CPU上的运行队列进行调整,从而热点域虚拟机的vCPU负载较高时,使增加的在线vCPU独占绑定的物理CPU资源;热点域虚拟机的vCPU 负载较低时,使普通域虚拟机的vCPU在该物理CPU上调度。图3为本发明实施例提供的一种虚拟机系统结构示意图。如图3所示,本实施例提供的虚拟机系统包括热点域虚拟机1、多个普通域虚拟机2和虚拟机监控器3。所述虚拟机监控器3,用于为热点域虚拟机的每个vCPU分别绑定不同的物理CPU。所述热点域虚拟机1,用于根据统计到的热点域虚拟机的vCPU的使用信息,热点域虚拟机确定所述热点域虚拟机的vCPU综合使用率;根据所述vCPU综合使用率和为所述热点域虚拟机分配的vCPU的最大个数,所述热点域虚拟机增加或减少至少一个在线vCPU ; 所述vCPU的使用信息包括所述热点域虚拟机的vCPU利用率和所述热点域虚拟机的vCPU 使用时间占用率。例如,热点域虚拟机的vCPU使用时间占用率为热点域虚拟机的所有vCPU的运行时间之和与总时间的比值,其中总时间为所有vCPU的运行时间和所有vCPU的等待时间之和。热点域虚拟机的vCPU利用率可为热点域虚拟机内部所有虚拟CPU非空闲时间之和与所述热点域虚拟机的所有在线虚拟CPU运行时间之和的比值。所述虚拟机监控器3,还用于增加在线vCPU后,调整与所述在线vCPU绑定的物理CPU的运行队列上普通域虚拟机2的vCPU,使所述在线VCPU在所述物理CPU上调度,并使普通域虚拟机的vCPU不能在所述物理CPU上调度。所述虚拟机监控器3,还用于减少在线vCPU后,调整与被下线vCPU绑定的物理 CPU的运行队列上所述热点域虚拟机的VCPU,使普通域虚拟机的vCPU在所述物理CPU上调度。上述各模块实现的功能可参见图1对应实施例中描述,在此不再赘述。具体地,虚拟机监控器3包括第一调整单元和第二调整单元。第一调整单元,用于将所述在线vCPU加入到与所述在线vCPU绑定的物理CPU的运行队列;移除所述物理CPU的运行队列上所有普通虚拟机的vCPU并将移除的vCPU记录到所述物理CPU的亲和信息中。第二调整单元,用于将被下线vCPU从绑定的物理CPU的运行队列上移除;将所述物理CPU的亲和信息中记录的普通虚拟机的vCPU加入到所述物理CPU的运行队列。上述各单元实现的功能可参见图1对应实施例中描述,在此不再赘述。本实施例提供的虚拟机系统,热点域虚拟机根据vCPU的使用信息动态调整该热点域虚拟机的在线vCPU数量。在热点域虚拟机的vCPU负载较高时,为该热点域虚拟机增加在线vCPU,VMM使增加的在线vCPU独占绑定的物理CPU资源,从而普通域虚拟机的在线 vCPU不能在该物理CPU上调度,因此,热点域虚拟机的vCPU可在普通域虚拟机的vCPU之前优先使用该物理CPU资源,使热点域虚拟机的vCPU的请求能及时得到响应,避免了普通域虚拟机的vCPU等待热点域虚拟机现象的出现,提高了虚拟系统的整体性能。在热点域虚拟机的vCPU负载较低时,为该热点域虚拟机删除在线vCPU后,VMM取消热点域虚拟机的vCPU 对物理CPU的独占性,使普通域虚拟机的vCPU可参与物理CPU的调度,提高了普通域虚拟机的性能,避免了 CPU资源的浪费。图4为本发明实施例提供的另一种虚拟机系统结构示意图。如图4所示,热点域虚拟机1包括性能统计模块11、分析与决策模块12和OS调度器13。性能统计模块11,用于统计热点域虚拟机的虚拟CPU的使用信息;并根据监测到的热点域虚拟机的虚拟CPU的使用信息,确定所述热点域虚拟机的虚拟CPU综合使用率。分析与决策模块12,用于根据性能统计模块11确定的所述虚拟CPU综合使用率和虚拟机调度器为所述热点域虚拟机分配的虚拟CPU的最大个数,确定为所述热点域虚拟机增加或减少至少一个在线虚拟CPU。OS调度器13,用于根据分析与决策模块12的决策增加或减少至少一个在线vCPU。具体地,性能统计模块11包括第一确定单元、第二确定单元和第三确定单元。第一确定单元,用于根据所述热点域虚拟机的所有vCPU的运行时间之和与等待时间之和,确定所述热点域虚拟机的vCPU使用时间占用率。第二确定单元,用于根据所述热点域虚拟机内部的虚拟CPU非空闲时间之和与所述热点域虚拟机的所有在线虚拟CPU运行时间之和,确定所述热点域虚拟机的虚拟CPU利用率。第三确定单元,用于根据所述热点域虚拟机的vCPU使用时间占用率和所述热点域虚拟机的vCPU利用率,确定所述热点域虚拟机的vCPU综合使用率。具体地,分析与决策模块12包括上线确定单元和下线确定单元。上线确定单元,用于在第三确定单元确定的所述虚拟CPU综合使用率超过使用率上限值且所述热点域虚拟机的虚拟CPU的个数没有超过VMM为所述热点域虚拟机分配的虚拟CPU的最大个数时,确定为所述热点域虚拟机增加一个或多个在线虚拟CPU。下线确定单元,用于在第三确定单元确定的所述虚拟CPU综合使用率低于使用率下限值时,确定为所述热点域虚拟机减少至少一个在线虚拟CPU。上述各模块实现的功能可参见图2对应实施例中描述,在此不再赘述。本实施例提供的虚拟机系统,热点域虚拟机增加或减少一个或多个在线vCPU后, VMM对该vCPU绑定的物理CPU上的运行队列进行调整,从而热点域虚拟机的vCPU负载较高时,使增加的在线vCPU独占绑定的物理CPU资源;热点域虚拟机的vCPU负载较低时,使普通域虚拟机的vCPU在该物理CPU上调度。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
权利要求
1.一种热点域虚拟机CPU调度方法,其特征在于,热点域虚拟机的每个虚拟CPU分别绑定有不同的物理CPU,所述方法包括根据统计到的热点域虚拟机的虚拟CPU的使用信息,确定所述热点域虚拟机的虚拟 CPU综合使用率;所述虚拟CPU的使用信息包括所述热点域虚拟机的虚拟CPU利用率和所述热点域虚拟机的虚拟CPU使用时间占用率;根据所述虚拟CPU综合使用率和为所述热点域虚拟机分配的虚拟CPU的最大个数,确定为所述热点域虚拟机增加或减少至少一个在线虚拟CPU ;增加在线虚拟CPU后,调整与所述在线虚拟CPU绑定的物理CPU的运行队列上普通域虚拟机的虚拟CPU,使所述在线虚拟CPU在所述物理CPU上调度,并使普通域虚拟机的虚拟 CPU不能在所述物理CPU上调度;减少在线虚拟CPU后,调整与被下线虚拟CPU绑定的物理CPU的运行队列上所述热点域虚拟机的虚拟CPU,使普通域虚拟机的虚拟CPU在所述物理CPU上调度。
2.根据权利要求1所述方法,其特征在于,所述调整与所述在线虚拟CPU绑定的物理 CPU的运行队列上普通域虚拟机的虚拟CPU,使所述在线虚拟CPU在所述物理CPU上调度, 并使普通域虚拟机的虚拟CPU不能在所述物理CPU上调度,包括虚拟机调度器将所述在线虚拟CPU加入到与所述在线虚拟CPU绑定的物理CPU的运行队列;虚拟机调度器移除所述物理CPU的运行队列上所有普通虚拟机的虚拟CPU并将移除的虚拟CPU记录到所述物理CPU的亲和信息中。
3.根据权利要求1或2所述方法,其特征在于,所述调整与被下线虚拟CPU绑定的物理CPU的运行队列上所述热点域虚拟机的虚拟CPU,使普通域虚拟机的虚拟CPU在所述物理 CPU上调度,包括虚拟机调度器将被下线虚拟CPU从绑定的物理CPU的运行队列上移除;虚拟机调度器将所述物理CPU的亲和信息中记录的普通虚拟机的虚拟CPU加入到所述物理CPU的运行队列。
4.根据权利要求1或2所述方法,其特征在于,所述根据统计到的热点域虚拟机的虚拟 CPU的使用信息,确定所述热点域虚拟机的虚拟CPU综合使用率,包括根据所述热点域虚拟机的所有虚拟CPU的运行时间之和与等待时间之和,确定所述热点域虚拟机的虚拟CPU使用时间占用率;根据所述热点域虚拟机内部的所有虚拟CPU非空闲时间之和与所述热点域虚拟机的所有在线虚拟CPU运行时间之和,确定所述热点域虚拟机的虚拟CPU利用率;根据所述热点域虚拟机的虚拟CPU使用时间占用率和所述热点域虚拟机的虚拟CPU利用率,确定所述热点域虚拟机的虚拟CPU综合使用率。
5.根据权利要求1或2所述方法,其特征在于,所述根据所述虚拟CPU综合使用率和为所述热点域虚拟机分配的虚拟CPU的个数,确定为所述热点域虚拟机增加或减少至少一个在线虚拟CPU,包括在所述虚拟CPU综合使用率超过使用率上限值且所述热点域虚拟机的虚拟CPU的个数没有超过虚拟机调度器为所述热点域虚拟机分配的虚拟CPU的最大个数时,确定为所述热点域虚拟机增加至少一个在线虚拟CPU ;在所述虚拟CPU综合使用率低于使用率下限值时,确定为所述热点域虚拟机减少至少一个在线虚拟CPU。
6.一种虚拟机系统,包括热点域虚拟机、普通域虚拟机和虚拟机监控器,其特征在于 所述虚拟机监控器,用于为热点域虚拟机的每个虚拟CPU分别绑定不同的物理CPU ; 所述热点域虚拟机,用于根据统计到的热点域虚拟机的虚拟CPU的使用信息,热点域虚拟机确定所述热点域虚拟机的虚拟CPU综合使用率;根据所述虚拟CPU综合使用率和为所述热点域虚拟机分配的虚拟CPU的最大个数,所述热点域虚拟机增加或减少至少一个在线虚拟CPU ;所述虚拟CPU的使用信息包括所述热点域虚拟机的虚拟CPU利用率和所述热点域虚拟机的虚拟CPU使用时间占用率;所述虚拟机监控器,还用于增加在线虚拟CPU后,调整与所述在线虚拟CPU绑定的物理 CPU的运行队列上普通域虚拟机的虚拟CPU,使所述在线虚拟CPU在所述物理CPU上调度, 并使普通域虚拟机的虚拟CPU不能在所述物理CPU上调度;所述虚拟机监控器,还用于减少在线虚拟CPU后,调整与被下线虚拟CPU绑定的物理 CPU的运行队列上所述热点域虚拟机的虚拟CPU,使普通域虚拟机的虚拟CPU在所述物理 CPU上调度。
7.根据权利要求6所述系统,其特征在于,所述热点域虚拟机包括性能统计模块、分析与决策模块和OS调度器;所述性能统计模块,用于统计热点域虚拟机的虚拟CPU的使用信息;并根据监测到的热点域虚拟机的虚拟CPU的使用信息,确定所述热点域虚拟机的虚拟CPU综合使用率;所述分析与决策模块,用于根据所述虚拟CPU综合使用率和虚拟机调度器为所述热点域虚拟机分配的虚拟CPU的最大个数,确定为所述热点域虚拟机增加或减少至少一个在线虚拟CPU ;所述OS调度器,用于根据分析与决策模块的决策为所述热点域虚拟机增加或减少至少一个在线虚拟CPU。
8.根据权利要求7所述系统,其特征在于,所述性能统计模块包括第一确定单元,用于根据所述热点域虚拟机的所有虚拟CPU的运行时间之和与等待时间之和,确定所述热点域虚拟机的虚拟CPU使用时间占用率;第二确定单元,用于根据所述热点域虚拟机内部的所有虚拟CPU非空闲时间之和与所述热点域虚拟机的所有在线虚拟CPU运行时间之和,确定所述热点域虚拟机的虚拟CPU利用率;第三确定单元,用于根据所述热点域虚拟机的虚拟CPU使用时间占用率和所述热点域虚拟机的虚拟CPU利用率,确定所述热点域虚拟机的虚拟CPU综合使用率。
9.根据权利要求7所述系统,其特征在于,所述分析与决策模块包括上线确定单元,用于在所述虚拟CPU综合使用率超过使用率上限值且所述热点域虚拟机的虚拟CPU的个数没有超过VMM为所述热点域虚拟机分配的虚拟CPU的最大个数时,确定为所述热点域虚拟机增加一个或多个在线虚拟CPU ;下线确定单元,用于在所述虚拟CPU综合使用率低于使用率下限值时,确定为所述热点域虚拟机减少至少一个在线虚拟CPU。
10.根据权利要求6所述系统,其特征在于,所述虚拟机监控器包括第一调整单元,用于将所述在线虚拟CPU加入到与所述在线虚拟CPU绑定的物理CPU 的运行队列;移除所述物理CPU的运行队列上所有普通虚拟机的虚拟CPU并将移除的虚拟 CPU记录到所述物理CPU的亲和信息中;第二调整单元,用于将被下线虚拟CPU从绑定的物理CPU的运行队列上移除;将所述物理CPU的亲和信息中记录的普通虚拟机的虚拟CPU加入到所述物理CPU的运行队列。
全文摘要
本发明实施例提供一种热点域虚拟机CPU调度方法及虚拟机系统。热点域虚拟机的每个vCPU分别绑定有不同的物理CPU,该方法包括根据获取到的热点域虚拟机的vCPU的使用信息,确定热点域虚拟机的vCPU综合使用率;根据vCPU综合使用率和为热点域虚拟机分配的vCPU的最大个数,确定为热点域虚拟机增加或减少至少一个在线vCPU;增加在线vCPU后,调整与在线vCPU绑定的物理CPU的运行队列上普通域虚拟机的vCPU,使热点域虚拟机在线vCPU在物理CPU上调度,并使普通域虚拟机的vCPU不能在该物理CPU上调度;减少在线vCPU后,调整与被下线vCPU绑定的物理CPU的运行队列上热点域虚拟机的vCPU,使普通域虚拟机的vCPU在该物理CPU上调度。
文档编号G06F9/455GK102317917SQ201180000976
公开日2012年1月11日 申请日期2011年6月30日 优先权日2011年6月30日
发明者洪凯星 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1