掌桥专利:专业的专利平台
掌桥专利
首页

CPU能耗管理方法、装置、存储介质及电子装置

文献发布时间:2024-04-18 20:01:55


CPU能耗管理方法、装置、存储介质及电子装置

技术领域

本发明涉及通信领域,具体而言,涉及一种CPU能耗管理方法及装置。

背景技术

随着国内西数东算的推广,同资源池承接业务种类不断增多,业务被混合部署到相同的计算资源上。在这种资源混合部署的场景中,需要既能满足业务实时性、稳定性的要求,又能够达到比较好的节能效果。

Intel系列的CPU本身具备能耗管理的能力,可根据CPU的负载情况动态调整某个CPU的能耗形态。其中,一个CPU中包括至少一个CPU核。以C态为例,CPU可以不同的能耗状态运行,比如,C态包括最高能耗态C0,中间节能态C1、C1E、C3,最高节能态C6。CPU运行在C0态时的能耗最大,CPU运行在C6态时的能耗最低,也就是最节能,CPU运行在中间几种状态,即中间节能态C1、C1E、C3时的能耗大于运行在C6时的能耗。

一般情况下,可根据CPU的使用率逐渐调整该CPU的能耗状态,CPU负载比较高即CPU的使用率较高时,将CPU逐渐调整至最高能耗状态,CPU负载较低即CPU的使用率较低时,将CPU逐渐调整至最高节能态,当CPU负载再次变高即CPU的使用率再次提高时,CPU由比较高的节能状态逐渐调整至最高能耗状态。比如,CPU的使用率较低时,CPU从最高能耗态C0调整为最高节能态C6,此时,该CPU的能耗状态变化顺序为C0->C1->C1E->C3->C6,即CPU的能耗逐渐降低;或者,CPU的使用率较高时,CPU从最高节能态C6调整为最高能耗态C0,此时,该CPU的能耗状态变化顺序为C6->C3->C1E->C1->C0,即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核直接调整至最高节能态;将所述第二目标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核的能耗状态的时延,并避免能耗的浪费。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的CPU能耗管理方法的云端服务器的硬件机构框图;

图2是根据本发明实施例的CPU能耗管理方法的网络架构的示意图;

图3是根据本发明实施例的CPU能耗管理方法的流程图;

图4是根据本发明可选实施例的CPU能耗管理流程图一;

图5是根据本发明可选实施例的CPU能耗管理流程图二;

图6是根据本发明可选实施例的CPU能耗管理流程图三;

图7是根据本发明可选实施例的CPU能耗管理流程图四;

图8是根据本发明实施例的CPU能耗管理装置的结构框图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

实施例1

本申请实施例一所提供的方法实施例可以在云端服务器或者类似的运算装置中执行。以运行在云端服务器上为例,图1是本发明实施例的一种CPU能耗管理方法的云端服务器的硬件结构框图。如图1所示,云端服务器10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述云端服务器还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述云端服务器的结构造成限定。例如,云端服务器10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的CPU能耗管理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至云端服务器10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括云端服务器10的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。

本申请实施例可以运行于图2所示的网络架构上,如图2所示,该网络架构包括:终端、云端、主机,其中,终端与云端通信连接,云端与主机通信连接。

终端通过用户界面获取用户指令,并将该用户指令发送给云端,云端响应于从终端接收到的用户指令,确定虚拟机状态,并针对当前虚拟机是否处于绑核场景,基于虚拟机状态或主机的CPU利用率,判断是否调整主机中的CPU的能耗状态,在确定调整主机中的CPU的能耗状态后,确定目标CPU核和对应的目标能耗状态,并将目标CPU核直接调整至目标能耗状态。

在本实施例中提供了一种运行于上述图2所示网络架构的CPU能耗管理方法,图3是根据本发明实施例的CPU能耗管理方法的流程图,如图3所示,该流程包括如下步骤:

步骤S302,基于虚拟机状态或主机的CPU利用率,判断是否调整主机中的CPU的能耗状态。

可选地,针对虚拟机是否绑核,基于虚拟机状态或主机的CPU利用率,判断是否调整主机中的CPU的能耗状态。

在一种可能的实现方式中,在虚拟机绑核场景下,基于虚拟机状态是否发生变化,判断是否调整主机中的CPU的能耗状态。

其中,该主机即为虚拟机所在的主机。另,虚拟机的状态是否发生变化可以是云端基于接收到的指令确定的。

具体地,在虚拟机绑核场景下,若虚拟机的状态发生变化,则确定调整虚拟机所在主机中的CPU的能耗状态,若虚拟机的状态未发生变化,则确定不调整虚拟机所在主机中的CPU的能耗状态。

其中,在确定虚拟机的状态是否发生变化的过程中,可基于接收到的指令的指令类型,来确定该虚拟机的状态是否发生变化。

示例性的,指令类型可以包括例如创建指令、上电指令、删除指令、下电指令和迁移指令等。

此时,若接收到的指令的指令类型为创建指令,则表示接收到的该指令用于创建某一虚拟机,可以确定该某一虚拟机的状态发生变化;若接收到的指令的指令类型为上电指令,则表示接收到的该指令用于上电某一虚拟机,可以确定该某一虚拟机的状态发生变化;若接收到的指令的指令类型为删除指令,则表示接收到的该指令用于删除某一虚拟机,可以确定该某一虚拟机的状态发生变化;若接收到的指令的指令类型为下电指令,则表示接收到的该指令用于下电某一虚拟机,可以确定该某一虚拟机的状态发生变化;若接收到的指令的指令类型为迁移指令,则表示接收到的该指令用于迁移某一虚拟机,该某一虚拟机的状态发生变化。

当然,接收到的指令中还包括虚拟机的标识,该指令用于对该虚拟机的标识对应的虚拟机进行操作,例如,用于创建该虚拟机的标识对应的虚拟机,用于对该虚拟机的标识对应的虚拟机上电,用于删除该虚拟机的标识对应的虚拟机,用对该虚拟机的标识对应的虚拟机下电,用于迁移该虚拟机的标识对应的虚拟机等。

也就是说,在接收到的指令的指令类型为例如创建指令、上电指令、删除指令、下电指令和迁移指令等时,确定该虚拟机的状态发生变化。当然,根据实际情况,也可以确定接收到的指令的指令类型为其他可以使虚拟机的状态发生变化的指令类型时,确定该虚拟机的状态发生变化。

在一种可能的实现方式中,在虚拟机非绑核场景下,基于主机的CPU利用率,来确定是否调整主机中的CPU的能耗状态。其中,该主机可以为存在虚拟机的任一主机。

具体地,若主机的CPU利用率高于第一利用率阈值或低于第二利用率阈值,则确定调整主机中的CPU的能耗状态;若主机的CPU利用率高于或等于第二利用率阈值,且低于或等于第一利用率阈值,则确定不调整所述主机中的CPU的能耗状态。

其中,第一利用率阈值高于第二利用率阈值。该第一利用率阈值与该第二利用率阈值可以是根据实际工况确定的。

具体地,定时监控主机的CPU利用率,也就是定时监控虚拟机占用主机中的CPU的利用率。

步骤S304,若是,则确定目标CPU核和目标能耗状态。

其中,目标CPU核为虚拟机所在主机的CPU核中的至少一个,另,目标CPU核与目标能耗状态之间存在对应关系。

可选地,针对虚拟机是否绑核,确定目标虚拟机。

在一种可能的实现方式中,在虚拟机绑核场景下,可根据虚拟机的状态变化,来确定相应的目标虚拟机。

具体地,目标CPU核包括第一目标CPU核,目标能耗状态包括第一目标能耗状态,且第一目标CPU核与第一目标能耗状态对应。此时,确定目标CPU核和目标能耗状态时,若虚拟机进入创建状态或上电状态,则获取创建虚拟机的主机或虚拟机所在主机为该虚拟机分配的CPU核,并将该创建虚拟机的主机或该虚拟机所在主机为虚拟机分配的CPU核,确定为第一目标CPU核,将第一目标CPU核对应的第一目标能耗状态确定为最高能耗态。随后,在步骤S306中,将第一目标CPU核直接调整至对应的第一目标能耗状态,即最高能耗态。

示例性的,如图4所示,用户界面获取到创建/上电虚拟机的指令后,将该指令转发给云端,并通过云端为虚拟机选择CPU核,并将为虚拟机选择的CPU核的能耗状态直接调整为最高能耗态,也即关闭为虚拟机选择的CPU核的其他能耗状态,使该CPU核仅能以最高能耗态工作。随后,主机的CPU中为虚拟机选择的CPU核工作在最高能耗态。

当然,示例性的,在图4所示的流程中,云端可以进一步被划分为控制节点和计算节点。其中,控制节点接收创建/上电虚拟机的指令,并确定相应的计算节点,即该创建/上电的虚拟机所在的主机对应的计算节点,将该指令转发给该相应的计算节点,以便于计算节点基于该指令为虚拟机选择CPU核,即将该虚拟机所在主机的CPU中的CPU核分配给创建/上电的虚拟机,并将该CPU核的能耗状态调整为最高能耗态,关闭该CPU核的其他能耗状态。

其中,在对已有虚拟机进行上电时,无需重新确定需要选择的CPU核,可直接选择之前为该虚拟机选择的CPU核。

或者,具体地,目标CPU核包括第一目标CPU核,目标能耗状态包括第一目标能耗状态,第一目标CPU核与第一目标能耗状态对应。此时,确定目标CPU核和目标能耗状态时,若虚拟机进入删除状态或下电状态,则获取虚拟机所在主机为虚拟机分配的CPU核,将虚拟机所在主机为虚拟机分配的CPU核,确定为第一目标CPU核,并将该第一目标CPU核对应的第一目标能耗状态确定为最高节能态。随后,在步骤S306中,将第一目标CPU核直接调整至对应的第一目标能耗状态,即最高节能态。

示例性的,如图5所示,用户界面获取到删除/下电虚拟机的指令后,将该指令转发给云端,并通过云端获取该删除/下电的虚拟机使用的CPU核,并该虚拟机使用的CPU核的能耗状态直接调整为最高节能态,也即关闭为虚拟机选择的CPU核的其他能耗状态,使该CPU核仅能以最高节能态工作。随后,主机的CPU中该删除/下电的虚拟机使用的CPU核,在该虚拟机删除/下电后工作在最高节能态,也即关闭为该虚拟机在删除/下电前所使用的CPU核的其他能耗状态,使该CPU核仅能以最高节能态工作。随后,该虚拟机在删除/下电后,主机的CPU中分配给该虚拟机的CPU核工作在最高节能态。

其中,在图5所示的流程中,云端可以进一步被划分为控制节点和计算节点。其中,控制节点接收删除/下电虚拟机的指令,并确定相应的计算节点,即该删除/下电的虚拟机所在的主机对应的计算节点,将该指令转发给该相应的计算节点,以便于该计算节点基于该指令获取该删除/下电的虚拟机所使用的CPU核,即将该虚拟机所使用的CPU核还给主机,并将该CPU核的能耗状态直接调整至最高节能态,将该CPU核的其他能耗状态关闭。

或者,具体地,目标CPU核包括第一目标CPU核和第二目标CPU核,目标能耗状态包括第一目标能耗状态和第二目标能耗状态,第一目标CPU核与第一目标能耗状态对应,第二目标CPU核与第二目标能耗状态对应。此时,确定目标CPU核和目标能耗状态时,若虚拟机进入迁移状态,则获取虚拟机迁移前所在主机中为虚拟机分配的CPU核,与虚拟机迁移后所在主机中为虚拟机分配的CPU核。随后,将虚拟机迁移前所在主机为虚拟机分配的CPU核,确定为第一目标CPU核,并将第一目标CPU核对应的第一目标能耗状态确定为最高节能态;将虚拟机迁移后所在主机为虚拟机分配的CPU核,确定为第二目标CPU核,并将第二目标CPU核对应的第二目标能耗状态确定为最高能耗态。最后,在步骤S306中,将第一目标CPU核直接调整至对应的第一目标能耗状态,即最高节能态,将第二目标CPU核直接调整至对应的第二目标能耗状态,即最高能耗态。

示例性的,如图6所示,用户界面获取到迁移虚拟机的指令后,将该指令转发给云端,并通过云端在源主机对虚拟机进行下电,并在目的主机对该虚拟机进行上电。云端在接收到迁移虚拟机的指令后,确定虚拟机迁移后在目的主机上使用的CPU核,将该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核对应的目标能耗状态确定为最高耗能态。随后,在步骤S306中,直接将目标CPU核的能耗状态调整为目标能耗状态即最高耗能态。

相应的,若主机的CPU利用率低于第二利用率阈值,则获取主机中虚拟机使用的CPU核,并将主机中虚拟机使用的CPU核中的任意一个或多个,确定为目标CPU核,将目标CPU核对应的目标能耗状态确定为最高节能态。

示例性的,如图7所示,在虚拟机非绑核场景下,对存在虚拟机的主机来说,若主机的CPU利用率高于第一利用率阈值,则选择主机中任一空闲的CPU核,直接将该CPU核的能耗状态调整至最高能耗态,即将该CPU核的其他能耗状态关闭,从而将该CPU分配给虚拟机。随后,继续定时监测主机的CPU利用率。若主机的CPU利用率低于或等于第一利用率阈值,且低于第二利用率阈值,则从主机中虚拟机使用的CPU核中选择一个CPU核,将该CPU核的能耗状态调整至最高节能态,即关闭该CPU核的其他能耗状态,从而将该CPU核还给主机。随后,继续定时监测主机的CPU利用率。若主机的CPU利用率低于或等于第一利用率阈值,且不低于第二利用率阈值,则不对主机中CPU核的能耗状态进行调整,直接继续定时监测主机的CPU利用率。可知,第二利用率阈值低于第一利用率阈值。

示例性的,图7所示的能耗管理流程可以是在云端的计算节点中实现的,该计算节点与主机之间具有对应关系。其中,上述第一利用率阈值和第二利用率阈值可以是在计算节点的服务启动前预先设置好的。

步骤S306,将目标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核,也可能是主机某NUMA上的所有CPU核),同时将分配给虚拟机的CPU核的最高能耗态打开,其余能耗状态全部关闭,使该CPU核运行在最高能耗态。随后,定时监控虚拟机占用的主机的CPU利用率,如果CPU利用率比较低,则减少给虚拟机分配的CPU核的数量,同时将释放的CPU核的最高节能态打开,其余能耗状态全部关闭;一定时间后,如果CPU利用率比较高,则增加给虚拟机分配的CPU核的数量,同时将分配到的CPU核的最高能耗态打开,其余能耗状态全部关闭。

这样的话,在对虚拟机的实时性要求不高的虚拟机非绑核场景下,可根据主机的CPU利用率动态调整给虚拟机分配的CPU核的数量,即调整CPU核的能耗状态,从而有效减少CPU核的能耗浪费,实现对CPU核的有效管理。

通过上述步骤,在基于虚拟机状态或主机的CPU利用率,确定调整主机中的CPU的能耗状态后,直接将目标CPU核调整至对应的目标能耗状态,不必逐级调整CPU核的能耗状态,从而解决现有技术中调整CPU的能耗状态时存在的滞后性问题,减少调整CPU核的能耗状态的时延,并避免能耗的浪费。

本申请可以应用于CT领域,满足CT领域中对CPU的性能的稳定性的要求。本申请还可以应用于IT领域,并在应用于某些对实时性要求不高的IT领域,可以直接将CPU核的能耗状态调整至最高能耗态或最高节能态,减少慢慢调整CPU核的能耗状态所造成的能耗的浪费。

另外,对于IT领域来说,虚拟机所承载的业务可能会比较少,此时仅需要少量CPU核即可满足虚拟机承载业务的需要,若为虚拟机分配较多CPU核,也可能会造成能耗的浪费。本申请在应用于IT领域时,可通过在CPU利用率低时,调整分配给虚拟机的CPU核的能耗状态为最高节能状态,可以有效减少能耗的浪费。

可选地,上述步骤的执行主体可以为云端等,但不限于此。

可选地,本申请可应用于云计算领域虚拟机管理模块(即上述计算节点)对CPU的能耗管控。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

在本实施例中还提供了一种CPU能耗管理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图8是根据本发明实施例的CPU能耗管理装置的结构框图,如图8所示,该装置包括判断模块801、确定模块802和调整模块803。

判断模块801,用于基于虚拟机状态或主机的CPU利用率,判断是否调整主机中的CPU的能耗状态。

确定模块802,用于若是,则确定目标CPU核和目标能耗状态,所述目标CPU核为虚拟机所在主机的CPU核中的至少一个;所述目标CPU核与所述目标能耗状态之间存在对应关系。

调整模块803,用于将所述目标CPU核直接调整至对应的目标能耗状态。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

S1,基于虚拟机状态或主机的CPU利用率,判断是否调整主机中的CPU的能耗状态。

S2,若是,则确定目标CPU核和目标能耗状态。其中,目标CPU核为虚拟机所在主机的CPU核中的至少一个,目标CPU核与目标能耗状态之间存在对应关系。

S3,将目标CPU核直接调整至对应的目标能耗状态。

可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。

本发明的实施例还提供了一种电子装置,包括存储器(例如图1的存储器104)和处理器(例如图1的处理器102),该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

可选地,上述电子装置还可以包括传输设备(例如图1所示的传输设备106)以及输入输出设备(例如图1所示的输入输出设备108),其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

S1,基于虚拟机状态或主机的CPU利用率,判断是否调整主机中的CPU的能耗状态。

S2,若是,则确定目标CPU核和目标能耗状态。其中,目标CPU核为虚拟机所在主机的CPU核中的至少一个,目标CPU核与目标能耗状态之间存在对应关系。

S3,将目标CPU核直接调整至对应的目标能耗状态。

可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术分类

06120116571217