优化服务器/机架系统的启动时的峰值功耗的制作方法

文档序号:9731972阅读:579来源:国知局
优化服务器/机架系统的启动时的峰值功耗的制作方法
【技术领域】
[0001]本公开内容总体上涉及计算领域。更具体来说,实施例总体上涉及对服务器和/或机架系统的启动时的峰值功耗进行优化。
【背景技术】
[0002]当为机架系统的电源设计功率预算时,设计者考虑通常发生在服务器启动时的最大可能的功耗。最差的情况是当机架中所有安装的服务器同时上电或重新启动时。服务器的峰值功耗值只发生在启动过程期间的某些特定时刻,并且可能持续数十秒并且通常不会超过几分钟。如此,机架的电源必须能够足以服务于该峰值功率时刻,即使这种使用是不频繁的并持续相对短的时间。这提高了电源成本并使得很少使用的净空容量成为资源浪费。
【附图说明】
[0003]参照附图提供了【具体实施方式】,在附图中,附图标记最左边的(多个)数字标识了附图标记最先出现于其中的附图。在不同的附图中对相同的附图标记的使用指示相似或相同的项。
[0004]图1-2示出了根据一些实施例的显示两个服务器的功率性能的样本图。
[0005]图3A-3C示出了根据一些实施例的用于优化各种计算系统的启动时的峰值功耗的方法的流程图。
[0006]图4-6示出了计算系统的实施例的框图,所述计算系统可以用于实施本文中所讨论的一些实施例。
【具体实施方式】
[0007]在以下描述中,阐述了大量细节,以提供对各个实施例的透彻理解。然而,可以在没有这些具体细节的情况下实践各个实施例。在其它实例中,并没有详细描述公知的方法、程序、部件、以及电路,以免使具体实施例难以理解。此外,可以使用各种方式(例如,集成半导体电路(“硬件”)、组织到一个或多个程序中的计算机可读指令(“软件”)、或者硬件和软件的一些组合)来执行实施例的各个方面。出于本公开内容的目的,对“逻辑单元”的引用应当表示硬件、软件、固件(FM)、或者它们的一些组合。
[0008]—些实施例提供了用于优化服务器和/或机架系统的启动时的峰值功耗的技术。此外,本本文中参考“机架”系统所讨论的技术也可以应用于其它类型的服务器构造。同样,如上文所讨论的,当为机架系统的电源(也被称为PSU或电源单元)设计功率预算时,设计者考虑最大可能的功耗。这相应地增加了服务器拥有者必须要支付的电费和机架PSU的成本,并且使得很少使用的净空容量成为资源浪费。为了这个目的,实施例提供了用于在不损害每个服务器的启动性能的情况下降低机架的峰值功耗的方式。这将相应地允许使用较低容量且较便宜的机架PSU。此外,可以通过降低功耗来减少PSU和/或机架空间的成本(尤其当我们考虑在配备了成千上万台机架的现代数据中心中可以节省多少成本时)。
[0009]在一些实施例中,识别并记录/存储关于何时以及哪个B1S(基本输入输出系统)模块在每个服务器上引起多少功耗的信息。基于该信息,可以确定如何在所有的目标服务器之间进行协调,以调整每个服务器上的模块执行顺序,并因此在所有目标服务器相应的启动过程期间降低所有目标服务器的总体峰值功耗。例如,可以自动收集启动数据,并且使用信息来计算并提供结果以在没有人为干预的情况下优化目标服务器上的启动顺序。这种方法将是高度多产的,并且可以在不降低启动性能的情况下应用于具有任何硬件构造的任何规模的服务器上。
[0010]此外,必须要保持启动过程期间的某种初始化排序,例如,以保持操作正确性。例如,存储器控制器可能需要在存储器允许对存储器进行访问之前进行初始化。
[0011]如本文中所描述的,B1S模块指代在启动时间期间的执行顺序能够被配置(例如,经由B1S)的部件(例如,本文中参考各种计算系统(包括图4-6中的那些)所讨论的软件部件/逻辑单元)。此外,一些实施例可以使用UEFI(统一可扩展固件接口)来将硬件模块配置为引起不同的功耗水平。另外,可以热接近或热耦合到(多个)模块的一个或多个传感器(未示出)可以用于检测本文中所讨论的功耗和时间轴数据,以在启动过程期间检测功耗数据和时间轴数据。
[0012]此外,尽管利用服务器/机架系统讨论了一些实施例,但实施例并不限于这些大体积架构,并且可以应用于例如具有多处理器或其它部件的较小的系统,所述多处理器或其它部件在启动时间期间比在运行时间期间使用多得多的功率。
[0013]为了描述各个实施例的细节,假设了安装有两个服务器(图1-2中所示的服务器1和服务器2)的简化机架系统。图1示出了根据一些实施方式的显示在没有优化的情况下的两个服务器的功率性能与机架的功率性能相比的样本图。图1示出了在两个服务器同时启动时的功率性能,并且示出了个体功耗和总体功耗。
[0014]参考图1,A、B、以及C是服务器1上的B1S模块,而X、Y、以及Z是服务器2上的B1S模块。模块六、8、以及(:执行的开始时间和结束时间分别是{[0,10],[10,16],[16,25]}。模块八、B、以及C的功耗是{5,10,18}。模块乂、¥、2的开始/结束时间分别是{[0,7],[7,18],[18,26]},并且模块乂、¥、2的功耗是{15,8,17}。
[0015]每个服务器上的每个模块的开始/结束时间和功耗都可以由启动记录来确定。机架功耗则是服务器1和服务器2的功耗之和。因此,当同时对两个服务器进行上电时,机架的峰值功耗出现在[18,25],峰值为18+17 = 35。这是在执行服务器1上的模块C和服务器2上的模块Z时。
[0016]为了这个目的,实施例对每个服务器上的模块执行顺序进行优化。例如,在图1的情况下,如果我们将服务器2的模块执行顺序从X->Y->Z调整到X->Z->Y,则图1的图表改变为图2的图表,所述图2的图表示出了根据实施例的显示优化后的两个服务器的功率性能与机架的功率性能相比的样本图。
[0017]如在图2中可以看到的,当服务器1上的模块Β和服务器2上的模块Ζ正在执行时,机架峰值功率出现在[10,15],峰值从图1中的最初的执行顺序的35下降,现在为10+17 = 27。此外,在机架级,我们具有一些新的时间段,如[0,7]、[7,10]、[10,15]等等,这些时间段在本文中可以被称为“时间量子”,以和最初的模块执行时间段区分开。
[0018]图1-2的示例仅处理了简化的情况,然而更现实的场景可能包含具有数十个服务器并且每个服务器具有不同的硬件部件(提供具有各种持续时间和功耗的不同B1S模块)的机架。为了这个目的,本文剩下部分讨论了更普遍的方法来处理更普遍的情形。
[0019]图3A-3C示出了根据一些实施例的用于优化各种计算系统(例如服务器和/或机架系统)的启动时的峰值功耗的方法的流程图。参考图4-6所讨论的一个或多个部件(例如(多个)处理器、逻辑单元、和/或存储器)可以用于执行参考图3A-3C所讨论的操作中的一个或多个操作。
[0020]参考图3A,在初始系统安装之后或者在改变/替换服务器和/或一个或多个部件时,在操作302期间,为所涉及的(多个)服务器通电并存储(多个)启动记录(例如参考图1-2所讨论的信息)。在操作304,将(多个)启动记录发送到中央位置,所述中央位置可以是任何专用服务器或节点管理器逻辑单元(或者其它逻辑单元)。在操作306,执行将参考图3B进行进一步讨论的(多个)计算。
[0021]在操作308,针对每个所涉及的(多个)服务器来确定新的模块调度顺序(例如,基于对操作306的计算/确定)。在操作310,将操作308的调度顺序中的每个调度顺序发送回相对应的服务器(并且将调度顺序信息存储在存储单元中,该存储单元是相对应的服务器本地的或者是在相对应的服务器的启动过程期间能够以其它方式被相对应的服务器访问的(例如在闪速存储器或其它类型的非易失性存储器中))。在操作312,在操作310的(多个)月艮务器中的任何服务器下一次启动或重启时,将应用操作308的新的模块调度顺序。
[0022]参考图3B,在操作320,存储了所有涉及的服务器的每个B1S模块的开始/结束时间信息和功耗信息(例如参照图1-2所讨论的信息)。如本文中所讨论的,具有#_莫块的第X个服务器的开始/结束时间被表示为:{[hlx,tlx],[h2x,t2x]".[hNx,tNx]}。
[0023]在操作322,从所有的服务器中选取两个服务器A和B,其中,服务器A具有#J模块并且服务器B具有#K模块。在操作324,对于A和B,计算可以产生A和B的较低的峰值功耗的优化的执行顺序。所产生的新的时间轴Q具有所示的时间量子。在操作326,要确定是否完成了所有涉及到的服务器。
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1