发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种服务器功耗控制方法、***及设备,对利用率最低的CPU进行降低功耗操作,在不影响服务器性能的情况下,降低了功耗,实现了更加灵活的功率封顶方法,提高了电能的利用率。
本发明提供一种服务器功耗控制方法,其包括以下步骤:
当服务器的实际功耗超过功率封顶阈值时,计算实际功耗超出功率封顶阈值的比率,并根据所述比率生成降低功耗命令;
在服务器中查找利用率最低的中央处理器CPU并执行所述降低功耗命令,直到所述实际功耗低于所述功率封顶阈值。
在上述技术方案的基础上,所述比率p的计算公式为:
其中,P
r为所述实际功耗,P
w为所述功率封顶阈值;
将所述比率p划分为m段,m≥2,所述降低功耗命令包括m级,每级降低功耗命令对应所述比率的一个分段,且每级降低功耗命令所降低的功耗随分段值的增加而增大。
在上述技术方案的基础上,所述降低功耗命令M为:
其中,m1、m2、m3分别表示一级命令、二级命令和三级命令,p1,p2表示所述比率的分段值,m=3。
在上述技术方案的基础上,所述降低功耗操作包括降低CPU的工作频率。
在上述技术方案的基础上,当收到更新的所述功率封顶阈值时,使用更新的所述功率封顶阈值判断并执行降低功耗操作,直到实际功耗低于更新的所述功率封顶阈值。
本发明还提供一种服务器功率控制***,其包括:
设置模块,其用于接收服务器的功率封顶阈值;
监控模块,其用于实时监控服务器的实际功耗,当服务器的实际功耗超过功率封顶阈值时,计算实际功耗超出功率封顶阈值的比率,并根据所述比率生成降低功耗命令;
调整模块,其用于在服务器中查找利用率最低的中央处理器CPU并执行所述降低功耗命令,直到所述实际功耗低于所述功率封顶阈值。
在上述技术方案的基础上,所述比率p的计算公式为:
其中,P
r为所述实际功耗,P
w为所述功率封顶阈值;
将所述比率p划分为m段,m≥2,所述降低功耗命令包括m级,每级降低功耗命令对应所述比率的一个分段,且每级降低功耗命令所降低的功耗随分段值的增加而增大。
在上述技术方案的基础上,所述降低功耗命令M为:
其中,m1、m2、m3分别表示一级命令、二级命令和三级命令,p1,p2表示所述比率的分段值,m=3。
在上述技术方案的基础上,所述降低功耗操作包括降低CPU的工作频率。
本发明还提供一种服务器设备,其包括多个服务器,每个服务器均使用上述的服务器功耗控制方法对功率封顶阈值进行控制。
与现有技术相比,本发明的优点如下:
(1)对利用率最低的CPU进行降低功耗操作,在不影响服务器性能的情况下,降低了功耗,实现了更加灵活的功率封顶方法,提高了电能的利用率。
(2)计算实际功耗超出封顶阈值的比率,根据超出封顶阈值的严重程度,发送相应的封顶处理命令,并执行不同程度的CPU频率降低的操作,实现了功率封顶更加细致高效的调整,快速降低了功耗。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
本发明提供一种服务器功耗控制方法,其包括:
实时监控服务器的实际功耗,当服务器的实际功耗超过功率封顶阈值时,计算实际功耗超出功率封顶阈值的比率,并根据比率生成降低功耗命令。
在服务器中查找利用率最低的中央处理器CPU并执行所述降低功耗命令,直到所述实际功耗低于所述功率封顶阈值。
服务器设备包括多个服务器,功率封顶技术首先根据服务器空载和满负载情况下的功耗,获取空载时的功耗作为最小运行功耗值和满负载时的功耗作为最大运行功耗值,将所有服务器的最大运行功耗值求和即为服务器设备的最大运行功耗值,所有服务器的最小运行功耗值求和即为服务器设备的最小运行功耗值。每个服务器的功率封顶阈值可以相同,也可以根据实际性能和使用情况而不同。每个服务器的功率封顶阈值可以是静态配置的,也可以动态地配置,不作限定。
参见图1所示,本发明第一实施例提供一种服务器功耗控制方法,服务器中设有多个CPU,CPU1、CPU2,...,CPUn,n为正整数,服务器中还设有基板管理控制器BMC和基本输入输出***(Basic Input Output System,BIOS),本服务器功耗控制方法包括以下步骤:
S110设置服务器的功率封顶阈值。
S120 BMC实时监控服务器的实际功耗。
S130判断实际功耗是否超过功率封顶阈值,若是,进入步骤S140;若否,返回步骤S120。
S140 BMC向BIOS发送降低功耗操作的命令。
S150 BIOS在服务器中查找利用率最低的中央处理器CPU并执行降低功耗操作,返回步骤S120。
具体的,降低功耗操作包括降低CPU的工作频率。在步骤S150中,以采用降低CPU的工作频率的方法降低功耗操作为例,BIOS计算CPU,CPU1、CPU2,...,CPUn的利用率,找到第i个CPUi利用率最低,当CPUi的工作频率高于下限值时,降低CPUi的工作频率。降低CPU的工作频率主要通过调整处理器性能状态(Processor Performance States,P-State)工作状态,使用特定CPU的降频降压功能,降低CPU的功耗。
在另一种实施方式中,可先检查CPU的工作频率是否达到了下限值,如果达到下限值,则跳过该CPU,不对其进行检查CPU的利用率,不进行处理。
对利用率最低的CPU进行降低功耗操作,在不影响服务器性能的情况下,降低了功耗,实现了更加灵活的功率封顶方法,提高了电能的利用率。
参见图2所示,本发明第二实施例提供一种服务器功耗控制方法,服务器中设有多个CPU,包括CPU1、CPU2,...,CPUn,n为正整数,服务器中还设有基板管理控制器BMC和基本输入输出***(Basic Input Output System,BIOS),当收到更新的功率封顶阈值时,使用更新的功率封顶阈值判断并执行降低功耗操作,直到实际功耗低于更新的功率封顶阈值。
本服务器功耗控制方法包括以下步骤:
S210设置服务器的功率封顶阈值。
S220 BMC实时监控服务器的实际功耗。
S230判断实际功耗是否超过功率封顶阈值,若是,进入步骤S240;若否,返回步骤S220。
S240 BMC计算实际功耗超出功率封顶阈值的比率。
比率p的计算公式为:
其中,P
r为实际功耗,P
w为功率封顶阈值,将比率p划分为m段,m≥2。
S250根据该比率生成用于执行降低功耗操作的命令,并向BIOS发送。
降低功耗命令包括m级,每级降低功耗命令对应比率的一个分段,且每级降低功耗命令所降低的功耗随分段值的增加而增大。
其中,m1、m2、m3分别表示一级命令、二级命令和三级命令,p1,p2表示比率的分段值,0≤p1≤p2,例如,p1和p2的差值与p1可以相同,也可以不同。
具体的,降低功耗操作包括降低CPU的工作频率。以采用降低CPU的工作频率的方法降低功耗操作为例,当命令M为一级命令m1时,降低一次CPU的工作频率,当命令M为二级命令m2时,降低两次CPU的工作频率,当命令M为三级命令m3时,降低三次CPU的工作频率。
S260 BIOS在服务器中查找利用率最低的中央处理器CPU并执行降低功耗操作。
S270 BMC实时监控服务器的实际功耗。收到更新的功率封顶阈值Pt。
S280判断实际功耗是否超过更新的功率封顶阈值,若是,进入步骤S240;若否,进入步骤S290。
S290 BMC向BIOS发送停止执行降低功耗的通知。
在执行降低功耗(功率封顶)操作之后,当BMC获知服务器的实际功耗Pc小于当前更新的服务器功率封顶值Pt时,表明之前的功率封顶动作已经将该服务器的功耗控制在服务器功率封顶值以下,BMC向该服务器的BIOS发送封顶执行停止通知。
仍以采用降低CPU的工作频率的方法降低功耗操作为例,BIOS计算CPU,CPU1、CPU2,...,CPUn的利用率,找到第i个CPUi利用率最低,当CPUi的工作频率高于下限值时,降低CPUi的工作频率。降低CPU的工作频率主要通过调整处理器性能状态(ProcessorPerformance States,P-State)工作状态,使用特定CPU的降频降压功能,降低CPU的功耗。
在另一种实施方式中,可先检查CPU的工作频率是否达到了下限值,如果达到下限值,则跳过该CPU,不对其进行检查CPU的利用率,不进行处理。
在实际应用中,可以预先将CPU的最高工作频率和最低工作频率的范围Δf分为多个相等或者不等的区间,例如,将CPU的工作频率分为范围Δf的10%、20%,…,100%,每次降低CPU的工作频率时,降低到低一级的工作频率,如60%Δf降低到50%Δf。
计算实际功耗超出封顶阈值的比率,根据超出封顶阈值的严重程度,发送相应的封顶处理命令,并执行不同程度的CPU频率降低的操作,实现了功率封顶更加细致高效的调整,快速降低了功耗。
参见图3所示,本发明第三实施例提供一种服务器功率控制***,服务器中设有多个CPU,包括CPU1、CPU2,...,CPUn,n为正整数,服务器中还设有基板管理控制器BMC和基本输入输出***(Basic Input Output System,BIOS),本服务器功率控制***包括设置模块1、监控模块2和调整模块3。设置模块1和监控模块2均设于BMC中,调整模块3设于BIOS中。
设置模块1用于接收服务器的功率封顶阈值;监控模块2用于实时监控服务器的实际功耗,当服务器的实际功耗超过功率封顶阈值时,计算实际功耗超出功率封顶阈值的比率,并根据比率生成降低功耗命令。调整模块3用于在服务器中查找利用率最低的中央处理器CPU并执行降低功耗命令,直到实际功耗低于功率封顶阈值。
对利用率最低的CPU进行降低功耗操作,在不影响服务器性能的情况下,降低了功耗,实现了更加灵活的功率封顶方法,提高了电能的利用率。
本发明第四实施例提供一种服务器功率控制***,在本发明第三实施例的基础上,监控模块2用于计算实际功耗超出功率封顶阈值的比率,根据该比率生成用于执行降低功耗操作的命令。
比率p的计算公式为:
其中,P
r为实际功耗,P
w为功率封顶阈值,将比率p划分为m段,m≥2。
降低功耗命令包括m级,每级降低功耗命令对应比率的一个分段,且每级降低功耗命令所降低的功耗随分段值的增加而增大。
仍以采用降低CPU的工作频率的方法降低功耗操作为例,BIOS计算CPU,CPU1、CPU2,...,CPUn的利用率,找到第i个CPUi利用率最低,当CPUi的工作频率高于下限值时,降低CPUi的工作频率。
在另一种实施方式中,可先检查CPU的工作频率是否达到了下限值,如果达到下限值,则跳过该CPU,不对其进行检查CPU的利用率,不进行处理。
在实际应用中,可以预先将CPU的最高工作频率和最低工作频率的范围Δf分为多个相等或者不等的区间,例如,将CPU的工作频率分为范围Δf的10%、20%,…,100%,每次降低CPU的工作频率时,降低到低一级的工作频率,如60%Δf降低到50%Δf。
计算实际功耗超出封顶阈值的比率,根据超出封顶阈值的严重程度,发送相应的封顶处理命令,并执行不同程度的CPU频率降低的操作,实现了功率封顶更加细致高效的调整,快速降低了功耗。
本发明第五实施例提供一种服务器功率控制***,在本发明第四实施例的基础上,降低功耗命令包括m级,每级降低功耗命令对应比率的一个分段,且每级降低功耗命令所降低的功耗随分段值的增加而增大。
其中,m1、m2、m3分别表示一级命令、二级命令和三级命令,p1,p2表示比率的分段值,0≤p1≤p2,例如,p1和p2的差值与p1可以相同,也可以不同。
具体的,降低功耗操作包括降低CPU的工作频率。以采用降低CPU的工作频率的方法降低功耗操作为例,当命令M为一级命令m1时,降低一次CPU的工作频率,当命令M为二级命令m2时,降低两次CPU的工作频率,当命令M为三级命令m3时,降低三次CPU的工作频率。
设置模块1用于用户对服务器设备设置功率封顶阈值;监控模块2用于对服务器的总功耗进行监控,判断服务器设备当前的功耗是否超过设置单元设置的设备功率封顶门限,如果是,则计算实际功耗超出功率封顶阈值的比率,并根据实际功耗超出功率封顶阈值的比率,向调整模块3发送降低功耗命令,如果不是,则不对服务器进行功率封顶,并继续监控服务器的实际功耗;调整模块3用于接收监控模块2的命令,并计算各个CPU的利用率,比较各个CPU的利用率,找到利用率最低的CPU,并根据BIOS收到的降低功耗的命令,降低CPU工作频率,使服务器的功耗降低至功率封顶阈值以下。
本发明第六实施例还提供一种服务器设备,服务器设备包括多个服务器,每个服务器均使用上述实施例的服务器功耗控制方法对功率封顶阈值进行控制。
每个服务器的功率封顶阈值可以相同,也可以根据实际性能和使用情况而不同。每个服务器的功率封顶阈值可以是静态配置的,也可以动态地配置,不作限定。
根据实际性能和使用情况,动态地配置每个服务器的功率封顶阈值,结合上述实施例的服务器功耗控制方法对功率封顶阈值进行控制,在不影响服务器性能的情况下,降低了功耗,实现了更加灵活的功率封顶方法,提高了电能的利用率。
本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。