CN102103516B - 基于虚拟cpu的频率和电压调节 - Google Patents
基于虚拟cpu的频率和电压调节 Download PDFInfo
- Publication number
- CN102103516B CN102103516B CN201010601572.7A CN201010601572A CN102103516B CN 102103516 B CN102103516 B CN 102103516B CN 201010601572 A CN201010601572 A CN 201010601572A CN 102103516 B CN102103516 B CN 102103516B
- Authority
- CN
- China
- Prior art keywords
- virtual
- operating load
- treatment facility
- characteristic
- frequency
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
在虚拟环境中为每个虚拟处理器执行频率和电压调节。动态地剖析由每个虚拟处理器执行的工作负载的特性,并且调节算法根据所剖析的特性来确定所述虚拟处理器的调节因素。所剖析的特性可以包括与正在执行的工作负载相关联的虚拟化事件。此外,可以基于哪个虚拟处理器当前正在运行来选择特定的调节算法和剖析技术。
Description
背景技术
随着微处理器和计算机系统的发展,能够在单个平台上执行更大量的软件。为了适应可能为不同的平台和操作系统(OS)编写的不同软件,开发了虚拟化技术。虚拟化使得多个OS和应用程序能够共享单个硬件平台的资源并且并发地在该单个硬件平台上执行。目前,虚拟化正在试图进入不同类型的计算环境,从小型服务器到同时向多个用户提供计算服务的大型数据中心。
通常使用被称为虚拟机监视器(VMM)的软件实体来实现虚拟化。VMM向每个OS提供一个虚拟机(VM),该VM具有该OS可以完全并直接地进行控制的虚拟资源,所述虚拟资源包括一个或多个虚拟处理器、虚拟存储器和虚拟输入/输出(I/O)资源。VMM维护用于实现虚拟化策略(例如,在多个VM之间共享和/或分配物理资源)的系统环境。在VM上运行的每个OS和其它软件被称为客户机(guest)或客户机软件,而主机(host)或主机软件是在虚拟化环境以外运行的软件,例如VMM。因此,虚拟化技术允许多个客户机软件同时地在单个主机或物理平台上运行。在系统上执行的客户机可以看到虚拟中央处理单元(VCPU),其在该客户机看来是与真实的物理CPU(PCPU)具有相同的特征或特征子集的物理CPU。
因为虚拟化技术能够把许多不同的工作负载合并到单个物理机中,所以虚拟化得以有效利用物理资源,并因此在一些方面,其可以被看作是一种环境友好的(或“绿色的”)技术。这为利用虚拟化技术提供了动力,尤其是因为能耗越来越受到关注。然而,简单地把多个OS合并到单个平台上可能仍旧不足以满足效率需求。为此目的,日益要求虚拟化技术进一步采用细粒度的功率管理(或节能)功能,该类型的功能最早是在客户端设备上引入的、而现在即使在高端服务器上也很普遍。然而,CPU的虚拟化及物理资源的持续共享和重新分配增加了一层复杂性,使得难以把在物理机上由OS实现的传统功率管理技术转换到虚拟环境中。
附图说明
图1是根据本发明的一个实施例的系统的框图。
图2是根据本发明的一个实施例的方法的流程图。
图3是根据本发明的一个实施例的示例性虚拟机监视器的框图。
具体实施方式
在各种实施例中,包括频率调节(scaling)和电压调节在内的节能功能可以被有效地与虚拟化技术结合起来。当前的虚拟系统要么是未能提供任何类型的调节功能(因此在节能方面做的很少),要么就是简单地重复在物理机上由OS实现的相同的节能算法。然而,目标是在物理环境中使用的调节算法没有很好地转换到虚拟环境中。在物理机上实现的通用调节技术的一个例子被称作动态电压和频率调节(或DVFS)。芯片组(例如,处理器或CPU)上消耗的功率取决于施加到该芯片组中的静态CMOS门上的电压和频率。根据DVFS技术,通过基于变化的情况来改变施加到CPU上的信号的电压和频率,有效地降低了功耗。在实现DVFS技术的系统中,调节算法以将对性能产生最小影响的方式,智能地确定何时适于调节电压和频率。实现该功能的一种方式是基于CPU利用率来进行调节决策。
然而,对用虚拟机实现的许多不同类型的工作负载(例如,存储器密集型工作负载,等待时间敏感型工作负载等等)而言,基于物理处理器(即,PCPU)的利用率的节能算法几乎没有意义。因为虚拟化把并发地执行的不同工作负载合并到单个物理机中,所以基于物理处理器的利用率的调节算法可能反应很慢,并且可能没有被紧密耦合到当前调度的工作负荷。此外,简单地重复物理机所使用的算法漏掉了使用虚拟化事件(其指示在虚拟CPU上运行的工作负载特性)的机会。考虑到使这种指示可见所需的复杂性和成本的缘故,在实际的硬件实现中这种指示很少见。然而,由于VMM必须用软件向客户机提供虚拟资源(例如,CPU,存储器,I/O),所以这些指示在虚拟化环境中是很容易就可用的。
于是,在本发明的一些实施例中,频率和电压调节技术被耦合到每个虚拟CPU而不是物理CPU。例如,每个虚拟CPU配备有它自己的工作负载剖析(profiling)通道和/或它自己的调节算法,以使该调节适合于并耦合到该特定VCPU。另外,一些实施例基于对虚拟化事件的连续监视来剖析工作负载特性,以便动态地和更加智能地对在各种VCPU上运行的不同工作负载作出反应。在这样的实施例中,取决于当前正执行的工作负载的实际特性,有多种不同的调节算法可供选择。以此方式,频率和电压调节能够响应快速变化的合并的工作负载模式,同时可以在不牺牲性能的情况下达到节能的效果。
频率和电压调节算法通常基于与PCPU的需求和利用率相关的历史信息。例如,一些OS实现周期性地——例如,以20毫秒(ms)的间隔——对PCPU利用率进行取样。基于过去的PCPU利用率模式,可以为CPU确定在下一个20ms的间隔内适当的时钟频率(或调节因素)。例如,如果CPU利用率高,则将选择一个高频率。同样地,如果利用率低,则可以选择一个低频率。这种技术通常在物理系统中是可以胜任的,这是由于OS系统调度器典型地以短间隔(例如,1ms)运行,因此在20ms的窗口中看到的工作负载模式通常足以提供单个PCPU上的平均工作负载模式的精确指示。
然而,因为在PCPU上运行的多个VCPU需要分时占用该PCPU,所以VMM调度器的行为有所不同。不同于以短间隔运行的是,VMM调度器把它对任务的调度放宽到一个较长的间隔,以避免通常伴随着每个新引入的虚拟化层而带来的高上下文切换开销。例如,VMM典型地具有大约30ms的调度间隔。因为该时间量(例如,30ms)在大小上相对接近于PCPU调节算法的频率调节间隔(例如,20ms),所以很有可能前一个被调出(scheduled-out)的VCPU的模式将被用来确定下一个被调入(scheduled-in)的VCPU的频率调节。由于被调出的和被调入的VCPU可能运行着类型差异巨大的工作负载,因此,为被调入的VCPU选择的频率可能并不适合当前正执行的工作。这种问题是一类被称为“误调节”的问题。在这种情况下,一种避免误调节问题的方法将是简单地扩大调节间隔(例如,至200ms或更大)。然而,大的调节间隔反过来会导致调节算法不能及时地对正在进行的工作负载的快速变化的特性作出响应,并且还可能引起资源共享的公平性问题。于是,本发明的实施例通过为每个VCPU提供它自己的剖析通道,从而允许单独地监视和分析每个VCPU的特性,来避免误调节问题。因此,调节决策能够基于在VCPU上实际正执行的工作负载的特性。
如上所述,调节决策典型地可以取决于CPU利用率,然而,CPU利用率并不总是对于特定工作负载的最佳频率的精确指示,其也会导致误调节情况。例如,存储器密集型工作负载可能使CPU饱和,但也可能存在许多停顿周期(stall cycle)。因此,尽管CPU利用率将指示应该选择高频率,但是实际上能够选择低频率而不会对性能产生不利影响。于是,本发明的一些实施例通过使工作负载特性剖析通道适合于识别不是基于CPU利用率的那些工作负载模式,来解决这类误调节问题。
在一些实施例中,通过为每个VCPU使用不同的调节算法,基于VCPU的调节还可以提供更多的优势。进一步地,多种调节算法可供任何一个VCPU使用。例如,一种调节算法可以适合基于CPU利用率来选择频率,另一种调节算法可以被用于基于性能考虑来选择频率,而再一种调节算法可以基于节能来进行其决策,等等。在这样的实施例中,可以基于由剖析通道提供的当前工作负载的特性来动态地选择特定的调节算法。之后,如果当前工作负载的特性发生变化,则可以用另一种调节算法来替换当前选定的调节算法。例如,如下面将进一步详细阐明的,I/O密集型工作负载、存储器密集型工作负载和等待时间敏感型工作负载都可以得益于使用考虑到这些工作负载的真实特性的不同的调节算法。
除了提供适合每个VCPU的改进的调节功能,基于VCPU的调节还提供了机会,使得能够更加精确地确定是否遵守计算服务提供商和它的客户之间的服务水平协议。例如,这种协议可能具有某些基于物理处理资源的利用率和速度的条文。因此,每个VCPU正在运行的频率是被考虑进服务水平协议要求的一个因素。如果使用基于PCPU的调节,可能无法精确地保证遵守频率要求。因此,只要服从这种要求的任何VCPU正运行在PCPU上,则基于PCPU的调节算法可能不得不被禁用。因此,基于VCPU的调节能够方便以更精确的方式,针对每个客户的工作负载,对系统的处理资源的利用率进行度量和计费。
图1说明了根据本发明的一个实施例的示例性框架100,其用于在虚拟环境中实现基于VCPU的调节。尽管图1示出虚拟化框架100的一个实施例,但是应该理解还可以用其它框架、体系结构、系统、平台或环境来实现实施例,这取决于使用虚拟化技术的特定应用。
如图1所示,虚拟化框架100包括裸硬件平台102,其可以相当于能够执行OS或VMM软件的任何类型的计算机系统。例如,裸硬件平台可以是个人计算机、大型计算机、便携式计算机、手持计算机、机顶盒、服务器或任何其它计算系统的硬件平台。如图1所示,裸硬件平台102包括物理处理器(或PCPU)104、存储器106、I/O资源107和用于生成供平台102的各种元件(例如,PCPU 104)使用的具有频率和电压的时钟信号的时钟生成/调节电路108。
PCPU 104可以是任何类型的处理器,包括诸如多核处理器这样的通用微处理器、微控制器或可编程逻辑。尽管图1仅示出一个PCPU 104,但应该理解裸硬件平台102可以包括多个处理器,其中可以包括许多个多核处理器(每个可以有许多个执行核心)以及许多个多线程处理器(每个可以有许多个线程)。
图1示出的存储器106可以包括动态随机存取存储器(DRAM)或其它类型的存储器,例如静态随机存取存储器。裸硬件平台102还可以包括许多个附加的设备或连接,其中包括用于存储数据、应用程序、软件指令等等的各种存储设备。
除了裸硬件平台102,图1的系统100还包括VMM 110以及VM 118和120,其中VM 118和120具有VCPU 112a、112b、112n,客户机OS 122和124,以及客户机应用程序126、128、130和132。如图所示,客户机OS 122以及客户机应用程序126和128被安装在VM 118上,供VCPU 112a和112b执行。客户机OS 124以及客户机应用程序130和132被安装在VM120上,供VCPU 112n执行。然而,应该理解系统100可以包括许多个VM、客户机和VCPU,而VM可以包括其它虚拟资源(例如,虚拟存储器,虚拟I/O资源等等),并且本发明的范围在这一点上并不受限。
VMM 100可以是被安装在裸硬件平台102上或可由其访问的任何软件、固件或硬件主机,用于向客户机提供VM,即裸硬件平台102的抽象,或者另外,创建及管理VM并且实现虚拟化策略。在其它实施例中,主机可以是任何VMM、管理程序、OS、或能够控制裸硬件平台102的其它软件、固件或硬件。客户机可以是任何OS、任何VMM(包括VMM 110的另一实例)、任何管理程序、或任何应用程序或其它软件。
继续参考图1,VMM 100包括基于虚拟的频率和电压调节(VBFVS)中心134和多个VBFVS实例136a-n。每个VBFVS实例136a-n都被分配给一个VCPU 112a-n。每个VBFVS实例136a-n还被绑定到一个剖析通道138a-n和一个调节算法140a-n,其中所述剖析通道138a-n对VCPU的工作负载的特性进行剖析,所述调节算法140a-n根据由剖析通道提供的剖析结果来确定合适的调节频率和/或电压(或调节因素)。在一些实施例中,可以动态地执行到特定调节算法的绑定。例如,剖析数据可以指示调节算法140b比当前绑定的算法140a更适于当前正在VCPU上运行的工作负载。在此情况下,VBFVS实例136可以动态地从算法140a切换到调节算法140b。
再次参考图1,系统100还包括用于调度每个VCPU 112a-n的VMM调度器142。当调度器142调入一个新的VCPU(例如,VCPU 112b)时,调度器142向VBFVS中心134发送上下文切换事件。当VBFVS中心134接受该上下文切换事件后,VBFVS中心134选择VBFVS实例(例如,实例136b)来分配给被调入的VCPU 112b。与该VBFVS 136b实例相关联的剖析通道(例如,通道138b)被启动,并且向绑定到该实例136b的调节算法(例如,算法140b)提供信息,以便确定适合的调节频率和/或电压。然后,VBFVS中心134通过向为PCPU 104生成时钟信号的时钟生成电路108发送关于新频率的指示,来对频率进行调节。在一些实施例中,在VCPU112b被调入的整个周期中反复地执行该调节。
在一个实施例中,每个VBFVS实例136还与计费和预算模块(ABM)144相关联,以便在VCPU级别提供细粒度的功率和能源计费。
图2示出可以在系统100中实现的用于确定频率和/或电压调节的示例性流程图。应该理解,本发明并不限于所示出的特定步骤或步骤的特定次序。其它实施例可以包括更多或更少的步骤并且可以改变步骤的执行次序。
在图2中,在块202,VMM调度器142调入一个新的VCPU(例如,VCPU 112b)。在块204,VMM调度器142向VBFVS中心134发送上下文切换事件。然后,VBFVS中心134为被调入的VCPU 112选择VBFVS实例136(块206)。在一些实施例中,VBFVS中心134还可以向调度器142发送调节统计信息。例如,VBFVS中心134可以存储被调出的VCPU最后使用了哪个剖析通道和调节算法,并且可以更新与工作负载特性和VCPU使用率有关的统计信息。VBFVS中心134还可以记录被确定供被调出的VCPU使用的最后频率。VBFVS中心134还可以向调度器142发送该统计信息。进一步地,VBFVS中心134可以恢复先前记录的被调入的VCPU 112的最后频率,并且解冻该当前被调入的VCPU 112最后使用的剖析机制和调节算法。在其它实施例中,VBFVS中心134可以使用用于确定被调入的VCPU最初使用的那个频率、剖析机制和调节算法的其它技术,例如使用默认的起始参数。
不管以何种方式为被调入的VCPU初始选择剖析机制、调节算法和频率/电压,选定的剖析通道138被激活并且开始收集数据以用于剖析被调入的VCPU 112上当前正执行的工作负载的特性(块208和210)。然后,向所选定的调节算法140提供被剖析的信息。在块212,算法140确定适当的频率/电压(或调节因素)并且把它发送给VBFVS中心134。然后,VBFVS中心134使得时钟生成电路108相应地调节时钟频率/电压。剖析通道138继续收集并向调节算法140发送数据,而调节算法140继续响应于该数据而对频率和/或电压进行调节,直到一个新的VCPU被调入。
如前所述,可以使用各种类型的调节算法,并且实际上,多种不同类型的调节算法可供当前被调入的VCPU进行选择。因此,在一些实施例中,图2示出的调节技术还包括一个步骤,即基于被剖析的工作负载来改变或选择一个新的调节算法140(块214)。例如,在本发明的一个示例性实施例中,可供选择的一种调节算法是基于CPU需求的调节(CPU-DBS)算法。通常,可以通过下式来计算物理CPU的利用率。
(Telapsed-Tidle)/Telapsed (Eq.1)
其中Telapsed是从上一次对利用率进行取样后所经过的时间,而Tidle是在整个所经过的阶段中的CPU空闲时间。
对基于VCPU的调节框架而言,可以修改该基于需求的公式,以使得它和VCPU紧密耦合,从而减少误调节的发生。例如,考虑虚拟环境的几种新的因素可以被引入到剖析通道130中。作为一个例子,在虚拟机中,VMM调度器142通常为每个被调入的VCPU 112分配某个时间量(timequantum)(例如,30ms)。然而,在一些情况中被调入的VCPU 112可能在一个时间片内并未用完它被批准的整个时间量。当由于VCPU 112进入空闲状态而导致它自己停止运行时,会出现一种这样的情况。在这种情况下,VMM调度器142可以把VCPU 112置于阻塞状态,直到发生虚拟化事件来唤醒该VCPU 112。为了确定VCPU的利用率,VCPU 112保持处于阻塞状态中的时间可以被称为Tblocked。因此,调度器142可以适合于向剖析通道138发送所批准的时间量和该阻塞时间参数,以用于剖析工作负载的特性。
另一种的VCPU 112在单个时间片内可能并未用完它的整个时间量的情况可能会出现在VCPU 112被其它更高优先级的VCPU 112抢占时。这里,被抢占的VCPU 112仍然可运行,但是正挂起在运行队列中并且实际上有一些正在进行的有意义的作业。再一次地,为了确定VCPU 112的利用率,被抢占的时间可以被称为Tstolen。而且,调度器142可以适合于向剖析通道138发送该被占时间参数。
给定这些新的因素,剖析通道138可以如下计算VCPU 112的利用率:
(Tquantum-Tstolen-Tblocked)/(Tquantum-Tstolen) (Eq.2)
通过使用方程(2)来确定VCPU 112的利用率,针对原生OS环境的已知需求的频率调节算法可以用于差异化的环境,其中VCPU 112的利用率(而不是PCPU 104的利用率)被提供作为基于DBS的算法140的输入。以VCPU的利用率作为输入,CPU-DBS算法针对低利用率输出较低频率,反之亦然。
然而,有一些情况中CPU-DBS算法并不提供性能和节能之间的最佳平衡。在一些情况下,通过剖析与当前工作负载的特性有关的附加的或不同的信息(除了VCPU 112的利用率以外的),可以达到较好的平衡。在虚拟环境中,在虚拟化期间产生了许多从中可以推断出工作负载特性的提示。更具体地,为了在单个物理机上合并多个VM,VMM需要截获来自每个VM的各种类型的敏感动作,仿真所期望的行为,并且注入异步虚拟中断。与在裸硬件平台上运行相比,这一新的虚拟化层给虚拟机增加了开销。然而,由该不可避免的开销所提供的丰富提示可以被用来帮助推测工作负载特性。
作为一个例子,基于仿真的输入/输出(I/O)设备上的I/O请求的频率,可以容易地辨别出具有I/O密集特性的工作负载。如果I/O设备在驱动程序级是半虚拟化的(para-virtualized),则知道该情况的驱动程序会主动地提供指示I/O密集型工作负载的统计信息。作为另一个例子,存储器虚拟化事件可以是存储器密集型工作负载的指示。例如,由于客户机页表包含了不能直接被PCPU理解的虚拟存储器地址,因此VMM典型地可以维护影子页表,该影子页表是根据客户机页表生成的,并且一旦客户机页表发生改变则与该客户机页表保持同步。VMM可以把客户机页表标记为只读。因此,当客户机试图修改它的当前页表时,将出现页失效,以便VMM和其同步。如果VCPU频繁地分配和释放存储器,则可以根据指示这种页失效的统计信息,辨别出这种类型的工作负载。也可以容易地辨别出等待时间敏感型工作负载。典型地,等待时间敏感模式以多个计时器和中断为特征。由于计时器和中断的源是由VMM虚拟化的,因此VMM能够追踪这些事件来辨别等待时间敏感型工作负载。
应该理解,上述虚拟化事件仅仅是示例性的,并且其它类型的事件或指示及其组合可以被用来剖析和推断工作负载的特性,并因此选择出适当的调节算法。此外,取决于VMM的特定实现、基础硬件虚拟化特征的要素等等,可以改变可以剖析和推断工作负载特性的方式。不管工作负载特性是以何种特定方式辨别出来的,本发明的实施例可以把那些特性导入图1示出的基于VCPU的调节框架。使用这些工作负载特性,可以选择特定的调节算法以绑定到被分配给运行该工作负载的VCPU的VCPU实例。
下面的例子说明了由于有可供基于工作负载特性进行选择的多种类型的调节算法,而可以获得的益处。作为第一个例子,存储器密集型工作负载典型地具有许多停顿周期。这样,这种工作负载能够以较低频率的时钟运行,而不会损失性能;而与此同时,较低频率的操作能够导致节能。在这种情况下,由于在存储器密集型工作负载的情况下VCPU可能完全饱和,并且CPU-DBS算法将计算得到一个高频率,因此CPU-DBS算法并不是好的候选算法。相反,基于识别出存储器密集型工作负载能够以较低频率运行,可以选择基于节能的调节算法。因此,如果剖析通道所收集的数据暗示一种存储器密集型工作负载,则可以选择节能算法,使得可以产生较低频率的操作。
作为另一个例子,等待时间敏感型工作负载可能具有低的VCPU利用率。因此,CPU-DBS算法将导致选择一个低频率。然而,当VCPU正运行等待时间敏感型工作负载时,其必须能够快速响应新来的事件。因为低频率将增加等待时间,所以CPU-DBS算法并不适合。相反,在根据被剖析的指示推断出等待时间敏感型工作负载时,可以选择基于性能的调节算法,其将会确保高频率操作。
尽管如此,CPU-DBS算法仍可以具有许多应用。例如,如果检测到很少的虚拟化事件,则VCPU利用率可以是用于调节频率的合适的指示。
因此,如图3的示例性实施例所示,用于每个VBFVS实例136的剖析通道138通过收集来自各种虚拟化事件源的信息来剖析虚拟化事件,所述虚拟化事件源例如是虚拟设备模型146、虚拟机间通信148、虚拟中断控制器150、存储器相关的虚拟化事件源152等等。此外,剖析通道138接收来自调度器142的与VCPU利用率有关的信息,包括VCPU被分配的时间量、被占时间、阻塞时间等等。在VCPU 112是被调入的VCPU的时间量期间,不断地分析来自这些各种源的信息,使得VBFVS实例136能够基于从所述信息中辨别出的工作负载特性模式,动态地把自己绑定到特定的调节算法140a-c。如图3所示,可用的调节算法可以包括CPU-DBS算法140a、节能算法140b、基于性能的算法140c,以及许多其它算法。
基于VCPU的调节并不限于这里所描述的特定实施例。例如,在本发明的一个实施例中,可以通过简单地使用VCPU频率更改请求作为剖析信息,并且或者选择直通式(pass-through)调节算法来向VBFVS中心传送该请求,或者直接将该请求路由到VBFVS中心,来实现基于VCPU的调节。
实施例可以用软件代码(包括VMM 110和它的任何组件)来实现,并且可以被存储在存储介质中,所述存储介质上存储有指令,其能够被用来对系统进行编程以执行这些指令。存储介质可以包括、但并不限于任何类型的盘(包括软盘、光盘、固态驱动器、光盘只读存储器、可重写光盘以及磁光盘)、半导体器件(例如,只读存储器、随机存取存储器(诸如动态随机存取存储器、静态随机存取存储器)、可擦可编程只读存储器、闪速存储器、电可擦可编程只读存储器)、磁卡或光卡,或者适合存储电子指令的任何其它类型的介质。可以加载软件指令以便在处理器(例如,图1的PCPU 104)上执行。
尽管已经参照有限数目的实施例描述了本发明,但本领域的技术人员将会理解由此进行的很多修改和变型。所附权利要求旨在涵盖落入本发明的实质精神和范围之内的所有这样的修改和变型。
Claims (19)
1.一种用于为虚拟处理设备进行时钟频率调节的方法,包括:
在多个工作负载剖析通道中与分配给多个虚拟处理设备中的每个虚拟处理设备的基于虚拟的频率和电压调节实例相关联的相应一个工作负载剖析通道中,剖析由相应的虚拟处理设备执行的工作负载的特性,其中,将物理处理资源虚拟化为所述多个虚拟处理设备是由虚拟机监视器来管理的,所述虚拟机监视器给所述多个虚拟处理设备分配时间间隔以执行各自的工作负载;
将所剖析的特性提供给绑定到相应的基于虚拟的频率和电压调节实例的调节算法;并且
通过所绑定的调节算法,根据每个虚拟处理设备各自的被剖析的特性来确定每个虚拟处理设备的时钟频率。
2.根据权利要求1所述的方法,还包括:为虚拟处理设备选择所述调节算法来确定所述时钟频率,其中,基于该虚拟处理设备的工作负载的被剖析的特性来进行所述选择。
3.根据权利要求1所述的方法,其中,在虚拟处理设备正执行它的工作负载的时间间隔期间,不断地执行所述剖析。
4.根据权利要求2所述的方法,其中,在虚拟处理设备正执行它的工作负载的时间间隔期间,动态地执行对所述调节算法的选择。
5.根据权利要求4所述的方法,其中,基于与由所述虚拟处理设备执行的工作负载相关联的虚拟化事件来进行对所述调节算法的选择。
6.根据权利要求1所述的方法,其中,基于与由所述虚拟处理设备执行的工作负载相关联的虚拟化事件来进行所述剖析。
7.根据权利要求6所述的方法,其中,动态地执行所述剖析。
8.根据权利要求1所述的方法,其中,基于所述虚拟处理设备的利用率来进行所述剖析。
9.一种用于为虚拟处理器进行时钟频率调节的系统,包括:
处理器资源;以及
硬件实现的虚拟机监视器,用于对将所述处理器资源虚拟化为多个虚拟处理器进行管理,所述虚拟机监视器还用于给所述虚拟处理器分配时间间隔以执行各自的工作负载,所述虚拟机监视器还用于在多个工作负载剖析通道中与分配给相应的虚拟处理器的基于虚拟的频率和电压调节实例相关联的相应一个工作负载剖析通道中,剖析在相应的时间间隔期间执行的所述工作负载的特性,用于将所剖析的特性提供给绑定到相应的基于虚拟的频率和电压调节实例的调节算法,并且用于通过所绑定的调节算法来为每个虚拟处理器基于所剖析的特性来确定时钟频率。
10.根据权利要求9所述的系统,其中,所述虚拟机监视器用于在相应的虚拟处理器正执行所述工作负载的时间间隔期间,不断地剖析所述工作负载的特性。
11.根据权利要求10所述的系统,其中,所述工作负载的特性包括虚拟化事件。
12.根据权利要求11所述的系统,其中,所述工作负载的特性包括所述虚拟处理器的利用率。
13.根据权利要求9所述的系统,其中,所述虚拟机监视器还用于选择所述调节算法来确定所述时钟频率,其中所述虚拟机监视器用于根据所剖析的特性来选择所述调节算法。
14.根据权利要求13所述的系统,其中,所述虚拟机监视器用于在相应的虚拟处理器正执行所述工作负载的时间间隔期间,动态地选择所述调节算法。
15.一种用于为虚拟处理设备进行时钟频率调节的装置,包括:
用于在多个工作负载剖析通道中与分配给多个虚拟处理设备中的每个虚拟处理设备的基于虚拟的频率和电压调节实例相关联的相应一个工作负载剖析通道中,剖析由相应的虚拟处理设备执行的工作负载的特性的模块,其中,将物理处理资源虚拟化为所述多个虚拟处理设备是由虚拟机监视器来管理的,所述虚拟机监视器给所述多个虚拟处理设备分配时间间隔以执行各自的工作负载;
用于将所剖析的特性提供给绑定到相应的基于虚拟的频率和电压调节实例的调节算法的模块;以及
用于通过所绑定的调节算法,根据每个虚拟处理设备各自的被剖析的特性来确定每个虚拟处理设备的时钟频率的模块。
16.根据权利要求15所述的装置,还包括:用于为虚拟处理设备选择所述调节算法来确定所述时钟频率的模块,其中,基于该虚拟处理设备的工作负载的被剖析的特性来进行所述选择。
17.根据权利要求15所述的装置,其中,在虚拟处理设备正执行它的工作负载的时间间隔期间,不断地执行所述剖析。
18.根据权利要求15所述的装置,其中,基于与由所述虚拟处理设备执行的工作负载相关联的虚拟化事件来进行所述剖析。
19.根据权利要求18所述的装置,其中,动态地执行所述剖析。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/644,359 US8364997B2 (en) | 2009-12-22 | 2009-12-22 | Virtual-CPU based frequency and voltage scaling |
US12/644,359 | 2009-12-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102103516A CN102103516A (zh) | 2011-06-22 |
CN102103516B true CN102103516B (zh) | 2015-04-08 |
Family
ID=43778272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010601572.7A Active CN102103516B (zh) | 2009-12-22 | 2010-12-20 | 基于虚拟cpu的频率和电压调节 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8364997B2 (zh) |
EP (1) | EP2348410B1 (zh) |
JP (1) | JP5885920B2 (zh) |
CN (1) | CN102103516B (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8397097B2 (en) * | 2008-04-09 | 2013-03-12 | Nec Corporation | Computer system and operating method thereof |
EP2595056A4 (en) * | 2010-07-13 | 2013-08-28 | Fujitsu Ltd | INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING DEVICE CONTROL METHOD, AND PROGRAM |
JP5696603B2 (ja) * | 2011-06-29 | 2015-04-08 | 富士通株式会社 | 計算機システム、計算機システムの電力制御方法およびプログラム |
US8185758B2 (en) | 2011-06-30 | 2012-05-22 | Intel Corporation | Method and system for determining an energy-efficient operating point of a platform |
WO2012163050A1 (zh) * | 2011-11-14 | 2012-12-06 | 华为技术有限公司 | 一种降低芯片功耗的方法及设备 |
US8892919B2 (en) * | 2011-12-14 | 2014-11-18 | Ati Technologies Ulc | Method and apparatus for power management of a processor in a virtual environment |
US9513688B2 (en) | 2013-03-16 | 2016-12-06 | Intel Corporation | Measurement of performance scalability in a microprocessor |
US9778943B2 (en) * | 2013-05-28 | 2017-10-03 | Red Hat Israel, Ltd. | Timer based virtual processor scheduling and suspension on physical processor for use of physical processor by other processing |
KR102110812B1 (ko) * | 2013-05-30 | 2020-05-14 | 삼성전자 주식회사 | 멀티 코어 시스템 및 멀티 코어 시스템의 작업 스케줄링 방법 |
US9304573B2 (en) | 2013-06-21 | 2016-04-05 | Apple Inc. | Dynamic voltage and frequency management based on active processors |
US9195291B2 (en) | 2013-06-21 | 2015-11-24 | Apple Inc. | Digital power estimator to control processor power consumption |
US9195490B2 (en) * | 2013-07-09 | 2015-11-24 | Empire Technology Development Llc | Differential voltage and frequency scaling (DVFS) switch reduction |
US9262198B2 (en) * | 2013-08-26 | 2016-02-16 | Vmware, Inc. | CPU scheduler configured to support latency sensitive virtual machines |
CN103488522B (zh) * | 2013-09-22 | 2017-10-17 | 华为技术有限公司 | 一种管理虚拟机的设备的方法及设备 |
US10289437B2 (en) | 2014-01-07 | 2019-05-14 | Red Hat Israel, Ltd. | Idle processor management in virtualized systems via paravirtualization |
US9436263B2 (en) * | 2014-02-21 | 2016-09-06 | Qualcomm Incorporated | Systems and methods for power optimization using throughput feedback |
US10365936B2 (en) | 2014-02-27 | 2019-07-30 | Red Hat Israel, Ltd. | Idle processor management by guest in virtualized systems |
US9606605B2 (en) | 2014-03-07 | 2017-03-28 | Apple Inc. | Dynamic voltage margin recovery |
CN106415498B (zh) | 2014-06-24 | 2020-09-29 | 英特尔公司 | 虚拟机功率管理 |
KR102169692B1 (ko) | 2014-07-08 | 2020-10-26 | 삼성전자주식회사 | 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 동적 전력 관리 방법 |
CN104102327B (zh) * | 2014-07-28 | 2017-02-15 | 联想(北京)有限公司 | 一种工作处理器的控制电路和电子设备 |
WO2016144368A1 (en) * | 2015-03-12 | 2016-09-15 | Hewlett Packard Enterprise Development Lp | Frequency of a clock signal |
US10078457B2 (en) | 2016-01-13 | 2018-09-18 | International Business Machines Corporation | Managing a set of wear-leveling data using a set of bus traffic |
US9886324B2 (en) | 2016-01-13 | 2018-02-06 | International Business Machines Corporation | Managing asset placement using a set of wear leveling data |
US10095597B2 (en) * | 2016-01-13 | 2018-10-09 | International Business Machines Corporation | Managing a set of wear-leveling data using a set of thread events |
EP3338410A4 (en) * | 2016-01-18 | 2018-08-01 | Huawei Technologies Co., Ltd. | System and method for cloud workload provisioning |
US10678603B2 (en) * | 2016-09-01 | 2020-06-09 | Microsoft Technology Licensing, Llc | Resource oversubscription based on utilization patterns in computing systems |
US10948957B1 (en) | 2019-09-26 | 2021-03-16 | Apple Inc. | Adaptive on-chip digital power estimator |
CN113687909B (zh) * | 2021-07-28 | 2024-01-30 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 基于微内核的分时vcpu多核调度方法及系统 |
TWI813259B (zh) * | 2022-04-19 | 2023-08-21 | 凌通科技股份有限公司 | 在非揮發性隨機存取記憶體上做演算法綁定的方法與使用其之演算法電路 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070150893A1 (en) * | 2004-06-07 | 2007-06-28 | Grobman Steven L | Method, apparatus and system for enhanced CPU frequency governers |
CN101379453A (zh) * | 2006-03-07 | 2009-03-04 | 英特尔公司 | 使用动态工作负载特征来控制cpu频率和电压调节的方法和装置 |
CN101470634A (zh) * | 2007-12-24 | 2009-07-01 | 联想(北京)有限公司 | Cpu资源调度方法及虚拟机监视器、虚拟机系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7219241B2 (en) * | 2002-11-30 | 2007-05-15 | Intel Corporation | Method for managing virtual and actual performance states of logical processors in a multithreaded processor using system management mode |
US7711966B2 (en) * | 2004-08-31 | 2010-05-04 | Qualcomm Incorporated | Dynamic clock frequency adjustment based on processor load |
US7386739B2 (en) * | 2005-05-03 | 2008-06-10 | International Business Machines Corporation | Scheduling processor voltages and frequencies based on performance prediction and power constraints |
US7730340B2 (en) * | 2007-02-16 | 2010-06-01 | Intel Corporation | Method and apparatus for dynamic voltage and frequency scaling |
CN101354663A (zh) * | 2007-07-25 | 2009-01-28 | 联想(北京)有限公司 | 应用于虚拟机系统的真实cpu资源的调度方法及调度装置 |
US8370663B2 (en) * | 2008-02-11 | 2013-02-05 | Nvidia Corporation | Power management with dynamic frequency adjustments |
US8892916B2 (en) * | 2008-08-06 | 2014-11-18 | International Business Machines Corporation | Dynamic core pool management |
US20110153984A1 (en) * | 2009-12-21 | 2011-06-23 | Andrew Wolfe | Dynamic voltage change for multi-core processing |
-
2009
- 2009-12-22 US US12/644,359 patent/US8364997B2/en active Active
-
2010
- 2010-11-30 EP EP10252026.9A patent/EP2348410B1/en not_active Not-in-force
- 2010-12-20 CN CN201010601572.7A patent/CN102103516B/zh active Active
- 2010-12-21 JP JP2010284798A patent/JP5885920B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070150893A1 (en) * | 2004-06-07 | 2007-06-28 | Grobman Steven L | Method, apparatus and system for enhanced CPU frequency governers |
CN101379453A (zh) * | 2006-03-07 | 2009-03-04 | 英特尔公司 | 使用动态工作负载特征来控制cpu频率和电压调节的方法和装置 |
CN101470634A (zh) * | 2007-12-24 | 2009-07-01 | 联想(北京)有限公司 | Cpu资源调度方法及虚拟机监视器、虚拟机系统 |
Also Published As
Publication number | Publication date |
---|---|
US20110154321A1 (en) | 2011-06-23 |
US8364997B2 (en) | 2013-01-29 |
CN102103516A (zh) | 2011-06-22 |
JP2011134333A (ja) | 2011-07-07 |
EP2348410B1 (en) | 2018-06-20 |
EP2348410A2 (en) | 2011-07-27 |
EP2348410A3 (en) | 2013-07-10 |
JP5885920B2 (ja) | 2016-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102103516B (zh) | 基于虚拟cpu的频率和电压调节 | |
Sharma et al. | Failure-aware energy-efficient VM consolidation in cloud computing systems | |
Bui et al. | Energy efficiency for cloud computing system based on predictive optimization | |
US8402140B2 (en) | Methods and apparatus for coordinated energy management in virtualized data centers | |
Beloglazov et al. | A taxonomy and survey of energy-efficient data centers and cloud computing systems | |
EP2071458B1 (en) | Power control method for virtual machine and virtual computer system | |
CN109324875B (zh) | 一种基于强化学习的数据中心服务器功耗管理与优化方法 | |
Petrucci et al. | Optimized management of power and performance for virtualized heterogeneous server clusters | |
Hirofuchi et al. | Reactive consolidation of virtual machines enabled by postcopy live migration | |
KR101629155B1 (ko) | 전력-인식 스레드 스케줄링 및 프로세서들의 동적 사용 | |
US20200042338A1 (en) | System and method for memory resizing in a virtual computing environment | |
CN102662750A (zh) | 基于弹性虚拟机池的虚拟机资源优化控制方法及其系统 | |
Alvarruiz et al. | An energy manager for high performance computer clusters | |
CN101488098A (zh) | 基于虚拟计算技术的多核计算资源管理系统 | |
CN102508718A (zh) | 一种虚拟机负载均衡方法和装置 | |
US20160196157A1 (en) | Information processing system, management device, and method of controlling information processing system | |
Farahnakian et al. | Multi-agent based architecture for dynamic VM consolidation in cloud data centers | |
Daraghmeh et al. | A power management approach to reduce energy consumption for edge computing servers | |
Shaw et al. | A predictive anti-correlated virtual machine placement algorithm for green cloud computing | |
Berral et al. | Toward Energy‐Aware Scheduling Using Machine Learning | |
Leite et al. | Power‐aware server consolidation for federated clouds | |
Abdul-Rahman et al. | Toward a genetic algorithm based flexible approach for the management of virtualized application environments in cloud platforms | |
Wang et al. | On the design of decentralized control architectures for workload consolidation in large-scale server clusters | |
Tsai et al. | Prevent vm migration in virtualized clusters via deadline driven placement policy | |
Kenga et al. | Energy consumption in cloud computing environments |
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 |