计算设备的自适应冷却的制作方法

文档序号:12071134阅读:244来源:国知局
计算设备的自适应冷却的制作方法与工艺

诸如数据中心、服务器场等大型服务器设施使用大量的电力来运行服务器和其他设备。这又导致设备生成大量的热量。因此,服务器设施经常使用各种冷却机构来控制服务器温度。



技术实现要素:

提供本发明内容以便以简化形式介绍将在以下具体实施方式中进一步描述的概念的选择。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。

本描述总体上涉及计算设备的热管理。一个示例是一种包括硬件处理单元和存储指令的硬件存储设备的系统。当指令由硬件处理单元执行时,指令可以引起硬件处理单元在各个时间测量与计算设备相关联的冷却状态。计算设备可以具有各种硬件资源,包括处理器、存储器设备和存储设备。指令还可以引起硬件处理单元在各个时间确定计算设备的硬件利用状态,硬件利用状态包括与处理器相关联的处理器利用状态、与存储器设备相关联的存储器利用状态、以及与存储设备相关联的存储利用状态。指令还可以引起硬件处理单元测量在冷却状态和硬件利用状态下的操作对计算设备的热影响,并且根据冷却状态和硬件利用状态对热影响进行建模。

另一个示例是一种包括硬件处理单元和存储指令的硬件存储设备的系统。当指令由硬件处理单元执行时,指令可以引起硬件处理单元确定与计算设备相关联的冷却状态。计算设备可以具有硬件资源,硬件资源包括处理器和另一硬件资源。指令还可以引起硬件处理单元确定计算设备的硬件利用状态,硬件利用状态包括处理器利用状态和与另一硬件资源相关联的另一硬件利用状态。指令还可以引起硬件处理单元估计在冷却状态和硬件利用状态下的操作对计算设备的热影响。

另一个示例包括一种可以由计算设备执行的方法或技术。该示例包括确定与具有硬件资源的计算设备相关联的冷却状态,硬件资源包括处理器以及存储器设备、存储设备或网络设备中的至少一项。该示例还包括标识用于计算设备的程序配置。程序配置包括与第二可执行程序同时地在计算设备上运行的第一可执行程序。该示例还包括确定程序配置的硬件利用特性。硬件利用特性包括程序配置的处理器利用特性和数据传送特性。数据传送特性可以反映由存储器设备、存储设备或网络设备进行的数据传送。该示例还包括估计当计算设备在冷却状态下时操作程序配置对计算设备的热影响。

附图说明

参考附图描述具体实施方式。在附图中,附图标记的最左边的数字标识附图标记首次出现的附图。在说明书和附图中的不同实例中使用相似的附图标记可以指示相似或相同的项目。

图1示出了与本概念的一些实现一致的示例计算设备。

图2示出了与本概念的一些实现一致的用于多个计算设备的示例壳体。

图3示出了与本概念的一些实现一致的示例服务器设施配置。

图4示出了与本概念的一些实现一致的示例环境。

图5、图7和图8示出了与本概念的一些实现一致的示例方法或技术。

图6、图9和图10示出了与本概念的一些实现一致的示例数据结构。

具体实施方式

概述

用于计算设备的冷却机构通常以反应性方式使用,例如,在激活给定冷却资源之前等待直到温度达到规定的值。此外,某些工作负荷配置可能比其他工作负荷倾向于生成更多的热量,并且哪些工作负荷配置将生成最多的热量不总是清楚的。因此,可能难以采取抢先措施以避免使计算设备或相关联的设备过热。

此外,从能量消耗的观点来看,以反应性方式使用冷却资源可能是相当低效的。例如,在一些情况下,能量消耗可能作为风扇速度的三次函数上升。当使用静态温度阈值以用于打开风扇时,风扇通常需要以相对高的速度运行以适应热密集型工作负荷的突发。因此,检测热密集工作负荷并且使用自适应热管理技术以在检测到热密集型工作负荷时以相对较慢的速度较早地打开风扇可能是有益的。这可以具有随时间使风扇速度平滑的效果,而不是具有高风扇速度的突发和伴随的高能量使用。这对于个体计算设备风扇以及冷却多个计算设备的风扇(例如在诸如服务器设施的建筑物中)都是如此。

另外,反应性冷却方法倾向于非常保守,以设定用于打开风扇或其它冷却资源的相对低的温度阈值。这是因为在当给定冷却资源被打开时与当冷却资源开始起作用时之间往往存在滞后。例如,服务器设施中的空气处理机可能需要几分钟来在给定服务器容器处将温度降低显著的量(例如,5摄氏度)。

由于上面讨论的低效率,相对于反应性方法,主动冷却方法可以显著降低能量消耗。然而,预期计算设备上或服务器设施中的热条件可能是困难的。这部分地是因为工作负荷需求可能难以预测,例如,服务器设施操作员或风扇控制器并不总是知道给定服务何时将经历高的需求。此外,不同工作负荷可以根据工作负荷的资源利用趋势生成不同量的热量。具体地,一些工作负荷(例如,程序的特定组合)可以以倾向于导致计算设备使用大量功率(例如,最大100瓦中的90瓦)以及因此生成大量热量的特定方式来使用给定计算设备上的资源。在相同计算设备上运行的其他工作负荷可能导致服务器使用更少的功率(例如,40瓦)并且因此生成相当少的热量。

鉴于上述内容,减轻在计算设备级别或聚合(例如,服务器设施)级别处的冷却低效的一种方式是以考虑特定处理器上的可执行程序之间的交互的方式来管理冷却资源。例如,一些实现可以基于各种因素(诸如在给定计算设备上运行的一个或多个可执行程序的资源利用)来估计当前或潜在程序配置的热影响。出于本文档的目的,术语“程序配置”指代在计算设备上同时地执行的一个或多个可执行程序的组。术语“可执行程序”指代可执行代码的实例,例如应用二进制代码、操作系统或管理程序二进制代码等。

一些实现可以考虑在单个处理器的不同核心上运行的可执行程序之间的交互,诸如可执行程序如何使用特定资源。例如,一些实现考虑不同程序配置如何倾向于不仅使用处理器核心和高速缓存,而且还使用存储器、存储装置和/或网络资源。当在给定计算设备上调度这些热密集型程序配置时,可以标识倾向于热密集型特定程序配置,并且可以采取主动热管理步骤。一些实现估计各种潜在程序配置的热影响,并且基于所选择的程序配置的所估计的热影响来选择用于执行的个体程序配置。

示例计算设备

图1示出了具有母板110的示例计算设备100,母板110具有处理器120、存储器设备130、网络控制器140和存储控制器150。计算设备还包括网络设备160、存储设备170和计算设备风扇180。处理器120包括核心121、122、123和124、高速缓存125和存储器控制器126。计算设备风扇可以冷却计算设备以解决通过使用核心、高速缓存、存储器和存储设备生成的热量。注意,图1是示例,并且所公开的实现可以被用于很多不同类型的计算设备(例如机架服务器、刀片服务器、塔式服务器、台式计算机、膝上型计算机、移动设备等)的热管理。

通常,核心121、122、123和/或124中的每个可以在任何给定时间运行单个可执行程序(例如,二进制程序)。不同可执行程序可以在各个时间被交换到个体核心上,包括操作系统程序和应用程序。当给定核心想要访问存储在特定存储器地址处的代码或数据时,核心可以首先尝试从高速缓存125获取该代码或数据。如果代码或数据不存在于高速缓存中,则核心可以激活存储器控制器126并且将代码或数据从存储器设备130获取到高速缓存中。代码或数据可以由核心通过存储器总线131而被获取。注意,代码和/或数据也可以被写入高速缓存以及被获取。

在一些情况下,代码或数据可以不存在于存储器设备130中,在这种情况下,处理器120可以激活存储控制器150以从存储设备170获取代码或数据。在这种情况下,代码或数据可以通过存储总线171从存储设备中被获取。在一些情况下,代码和/或数据被获取到存储器设备130和/或高速缓存125中。同样,代码和/或数据可以被写入存储设备以及从存储设备而被获取。

在其他情况下,可以经由网络设备160通过网络发送和/或获取代码和/或数据。在这种情况下,核心可以激活网络控制器140以使用网络总线141发送或获取代码和/或数据。

通常,高速缓存125、存储器设备130、网络设备160和存储设备170是计算设备100上的硬件资源的示例。由于这些硬件资源由个体核心激活,所以这些硬件资源内的电路和相关联的总线生成热量。例如,这些硬件资源中的每个可以具有当硬件资源被激活时消耗功率的特定数目的晶体管或其他电路部件。

如所提及的,图1仅示出了计算设备的一个示例。例如,计算设备的各种部件可以共享特定总线,例如,网络设备160和存储设备170可以共享总线(例如,外围部件互连总线)。在其它实现中,存储器控制器126可以位于母板110上而不是直接在处理器120上。作为另外的示例,背板架构可以被采用,并且为不同类型的硬件资源提供各种总线连接,以与处理器120、存储器130等通信。

热密集型工作负荷的实例

不同可执行程序倾向于不同地使用硬件资源。例如,一些可执行程序可能是相对处理器密集型的,但是可能不使用大量的存储器、存储装置或网络资源。另一方面,一些可执行程序可能是相对存储密集型的,但是不使用大量的处理器资源。此外,一些可执行程序可能倾向于与改变这些二进制程序如何使用硬件资源的其他可执行程序具有某些交互。出于本文档的目的,术语“硬件资源”包括可以由计算机处理器控制的各种类型的物理设备,物理设备包括存储器设备、存储设备、网络设备、图形卡等、以及用于与这些硬件资源通信的总线或其他电路。

为了说明不同可执行程序如何能够对给定计算设备导致不同热影响,考虑以下示例程序配置。在第一程序配置中,第一可执行程序可以与第二可执行程序共享计算设备上的处理器,并且生成大量的热量。在第二程序配置中,第一可执行程序可以与第三可执行程序共享处理器并且生成少得多的热量。

为了理解这可以如何发生,假定第一可执行程序是在核心121上执行的处理器密集型可执行程序,并且相当重度地使用高速缓存125,从而以密集型方式激活高速缓存电路。出于该示例的目的,假定第一可执行程序消耗平均30瓦的能量。现在,假定第二可执行程序在核心122上执行,并且不是高速缓存密集型的,但是非常重度地使用存储设备170,并且因此相当重度地激活存储设备170、存储控制器150和存储总线171中的电路,可能平均消耗20瓦。在该第一程序配置中由高速缓存电路和存储总线/设备电路输出的热量的组合为50瓦。

现在,假定第二可执行程序在核心122上用第三可执行程序替换,第三可执行程序是倾向于相当重度地使用高速缓存125的另一处理器密集型可执行程序。在这些情况下,当第三可执行程序在核心122上执行时,可以从高速缓存125中逐出针对第一可执行程序的代码和/或数据,从而导致针对第一可执行程序的高速缓存命中率较低。同样地,当第一可执行程序在核心121上执行时,可以从高速缓存125中逐出针对第三可执行程序的代码和/或数据,从而导致针对第三可执行程序的高速缓存命中率较低。因此,第一可执行程序和第三可执行程序都可能花费时间等待从存储器获取数据。这可能导致由两个可执行程序的组合功率实际上小于由第一可执行程序单独使用的功率(例如,为了示例,为25瓦)。

这里更广泛的一点是,针对单个硬件资源的冲突通常倾向于减少该硬件资源的利用,因为一个可执行程序在等待其他可执行程序停止使用该资源时进入等待状态。另一方面,当工作负荷运行在可执行程序重度地使用的资源方面倾向于有点互斥的可执行程序时,硬件资源的利用倾向于较高。因此,运行具有互斥的资源需求的可执行程序的工作负荷倾向于比运行具有资源冲突的可执行程序的工作负荷生成更多的热量。

所公开的实现通常利用工作负荷的预期热影响来抢先地解决热密集型工作负荷。一般而言,采用两种缓解策略。首先,所公开的实现检测何时在计算设备上调度或执行热密集型工作负荷,以及在达到高温之前抢先配置冷却资源。第二,可以采用调度策略,使得在时间上(例如,延迟)和/或空间上(例如,移动到较冷的位置)调节热密集型工作负荷,以平滑对服务器设施内的冷却资源的需求。

示例计算设备容器

如图1所示的计算设备100可以安装在如图2所示的容器200中。示出了具有三个计算设备100(1)、100(2)和100(3)以及容器风扇201的容器200,容器风扇201可以用于冷却容器200中的计算设备。在本讨论中,具有后缀的指示符(诸如“(1)”)的使用旨在指代设备、设备部件或模块的具体实例。相反,没有后缀的指示符的使用旨在是通用的。注意,容器200可以是适于容纳多个计算设备的各种类型,例如,服务器机架、机架外壳等。

一般而言,每个单独的计算设备100可以如图1所示被配置。因此,计算设备100(1)、计算设备100(2)和计算设备100(3)可以具有其自己的单独的母板110、处理器120、存储器设备130、网络控制器140、存储控制器150、网络设备160、存储设备170和计算设备风扇180。注意,由容器100内的个体计算设备生成的热量可以对容器中的其他计算设备具有相应影响。例如,不管计算设备100(2)和100(1)上运行的工作负荷如何,来自于计算设备100(3)的热量可以导致计算设备100(2)和100(1)经历热波动。

示例服务器设施

在一些情况下,多个容器可以安装在服务器设施300中,如图3所示。服务器设施300被示出为具有空气处理机310和空气处理机320。空气处理机可以位于服务器设施的顶部上,在服务器设施的一侧或多侧上等。另外,空气处理机可以在服务器设施的内部和/或外部。

服务器设施300可以具有多个容器200(1)、200(2)、200(3)、200(4)、200(5)、200(6)、200(7)、200(8)、200(9)、200(10)、200(11)和200(12)。容器200(1-6)在图3中示出为通过屏障330(例如壁)与容器200(7-12)分离。一般而言,屏障330可以是以下任何结构:该结构充分地影响气流,使得由空气处理机310产生的大多数气流冷却容器200(1-6),并且由空气处理机320产生的大多数气流冷却容器200(7-12)。屏障330不需要完全阻挡这些容器组之间的气流。另外,注意,所公开的实现包括使用被配置成容纳分立的电气部件(例如,具有可变热密度)的各种容器,分立的电气部件包括刀片服务器系统、塔式服务器系统或其他配置。

服务器设施300还可以在屏障330的一侧上具有气流引导器331、332、333和334,并且在屏障330的另一侧上具有气流引导器335、336、337和338。这些气流引导器的功能是在服务器设施中引导气流。如图3所示,气流引导器331、332、333和334示出为充分打开的配置,其中气流可以自由地通过所有容器200(1-6)。空气处理机310和/或320可以提供恒定的或变化的压力差,当这些容器在完全利用下运行时,该压力差足以冷却所有容器200(1-6)。然而,维持这样的压力差可以使用大量的功率。相比之下,气流引导器335、336、337和338被示出为部分关闭的配置,其限制了到容器200(7-12)的气流量。这可以允许空气处理机320在使用相对较少功率的同时维持与空气处理机310相似的压力差。然而,对于容器200(7-12)的减少的气流可能不足以在完全利用下冷却这些服务器机架。

另外,注意,本文中的附图示出了可以根据服务器设施的具体布局来调节的通用配置的气流引导器。例如,一些服务器设施可以使用在服务器机架下方的气流用于冷却目的。另外,空气处理机可以以各种配置被提供,该配置具有和/或不具有主动冷却能力(例如,空气调节)。更一般地,出于本文档的目的,术语“空气处理机”指代可以在建筑物内移动空气的任何机构,包括没有主动冷却能力的风扇、空调或其他冷却机构。另外,注意,其他实现可以利用其他气体或液体用于冷却目的,例如水。在这样的实现中,可以以与本文中关于空气处理机、计算设备风扇和/或容器风扇所讨论的类似的方式来使用液体处理机构(例如,泵、阀)。更一般地,所公开的实现包括可以用于通过将流体泵送到空间中来排放热量的任何机构。因此,液体或其它冷却机构还可以用于冷却个体计算设备(例如,除了或替换计算设备风扇180)或冷却计算设备容器(例如,除了或替换容器风扇201)。

还要注意,术语“引导器”在本文中在一般意义上用于指代可以改变气体或液体的流动特性的任何设备。例如,可以通过打开/关闭百叶窗、打开/关闭翻板阀(flaps)、阻尼器装置等来偏转气流。类似地,在使用水来冷却服务器的情况下,可以使用水偏转技术,例如阀或其它机构。

示例网络场景

图4中示出了其中可以执行所公开的技术的一个具体环境,图4示出了包括经由网络420连接到客户端设备430和服务器设施300(1)、300(2)和/或300(3)的冷却管理系统410的示例环境400。服务器设施300(1)、(2)和/或(3)可以如图3所示被配置,但是每个服务器设施不需要是相同的,并且实际上可以根据具体实现而完全不同。

冷却管理系统410可以包括建模模块413和控制模块414。一般而言,建模模块可以对计算设备上的各种工作负荷的热影响进行建模。控制模块414可以提供冷却管理功能,诸如控制每个个体服务器设施内的冷却资源,诸如个体计算设备风扇180、容器风扇201、空气处理机310和320以及气流引导器331-338。在另外的实现中,控制模块可以执行服务器设施300(1)-(3)中的任何一个内的个体可执行程序的调度。出于以下示例的目的,假定可执行程序可以被移动到例如在单个容器内的不同计算设备,到给定服务器设施内的不同容器,或者从一个服务器设施中的计算设备到另一服务器设施中的计算设备。客户端设备430可以请求由云服务执行某些处理,并且云服务可以使用在服务器设施300(1)-(3)中的任一个中的任何计算设备上运行的作业来执行处理。出于本文档的目的,术语“作业”包括至少一个可执行程序(例如,应用程序)的执行。

注意,图4中将冷却管理系统410示出为位于服务器设施300(1)-(3)外部。在另外的实现中,冷却管理系统可以与任何或所有服务器设施并置(collate)。例如,在一些情况下,服务器设施300(1)可以具有位于其中的冷却管理系统,并且冷却管理系统可以在服务器设施300(1)内本地执行热管理,并且还可以发送执行服务器设施300(2)和300(3)的远程热管理的指令。在其他情况下,每个服务器设施可以具有在该特定服务器设施处执行热管理的冷却管理系统的相应本地实例。还如下面更多地讨论的,冷却管理系统可以实现为专用电路,例如控制个体空气处理机、容器风扇、计算设备风扇等的微控制器。

此外,注意,冷却管理系统可以包括用于执行建模模块413和控制模块414的各种处理资源411和存储器/存储资源412。冷却管理系统的这些部件在下面在标题为“设备实现”的部分中更加详细地讨论。

基于硬件状态的热建模方法

一些实现可以将工作负荷的热影响建模为冷却状态和硬件利用状态的函数。图5示出了可以由冷却管理系统410的建模模块413或其他系统执行的热影响建模方法500。

框502可以在各个时间测量与计算设备相关联的冷却状态。例如,冷却状态可以表示计算设备处的当前温度、计算设备风扇速度、容器风扇速度、空气处理机速度等。

框504可以确定与计算设备的各种硬件资源相关联的硬件利用状态。例如,硬件利用状态可以包括处理器利用状态、存储器利用状态、存储利用状态和/或网络利用状态。

框506可以测量冷却状态和硬件利用状态下对计算设备的热影响。例如,可以随时间测量计算设备上的温度变化。

框508可以将对计算设备的热影响建模为冷却状态和硬件利用状态的函数。在一些情况下,导出可以用于预测各种工作负荷的未来的热影响的数学函数,如下面更多地讨论的。

如上所述,在框504处确定的硬件利用状态可以描述各种类型的硬件资源的使用。例如,处理器利用状态可以表示当前高速缓存命中率、指令执行速率者或描述其上的处理器或个体核心的活动的其他度量。更一般地,术语“处理器利用状态”可以指代描述相对强度的任何值,由给定工作负荷在任何给定时间以该相对强度激活处理器电路(例如,个体核心电路、高速缓存电路等)。

如上所述,硬件利用状态的另一示例是存储器传送状态,其可以表示反映指令和/或数据从存储器130(例如从处理器120,从存储设备150,从网络设备160等)被读取或被传送到存储器130的速率的当前存储器总线传送速率。更一般地,术语“存储器利用状态”可以指代描述相对强度的任何值,由给定工作负荷在任何给定时间以该相对强度激活存储芯片电路和/或存储器总线电路。注意,在这种情况下,与实际存储器传送速率相比,对在任何给定时间分配的存储器的量可能不太感兴趣,因为传送倾向于引起额外的热量生成,而仅保留现有数据/指令而不修改的存储器刷新周期可以生成相对少的热量。此外,高的存储器传送速率倾向于引起比低的存储器传送速率更多的热量生成。另外,注意,一些实现可以监视存储器访问模式,并且可以使用顺序访问模式(与随机相反)作为代理来标识高的存储器传送速率。可以通过读取由给定可执行程序访问的存储器地址来标识顺序存储器读取模式。

如上所述,硬件利用状态的另一示例是存储利用状态,其可以表示当前存储总线传送速率,以当前存储总线传送速率将指令和/或数据从存储设备170读取到存储器130中、从存储器传送到存储设备中等。更一般地,术语“存储利用状态”可以指代描述相对强度的任何值,由给定工作负荷在任何给定时间以该相对强度激活存储设备电路和/或存储总线电路。如上面关于存储器所讨论的,与实际存储传送速率相比,对由给定可执行程序使用的存储空间的量可能不太感兴趣,因为相对于仅仅在存储设备上维持存储的数据,存储传送(如存储器传送)倾向于引起额外的热量生成。此外,高的存储传送速率倾向于引起比低的存储传送速率更多的热量生成。

如上所述,硬件利用状态的另一示例是网络利用状态,其可以表示当前网络总线传送速率,通过网络设备160以当前网络总线传送速率接收和/或发送数据。更一般地,术语“网络利用状态”可以指代描述相对强度的任何值,由给定工作负荷在任何给定时间以该相对强度激活网络设备电路和/或网络总线电路。如上面关于存储器和存储装置所讨论的,高的网络传送速率倾向于引起比低的网络传送速率更多的热量生成。

另外,注意,出于说明的目的,本文中所讨论的示例指代单个高速缓存、存储器设备、存储设备和网络设备。所公开的技术可以用于具有多个高速缓存(例如,L1和L2)、多个存储器设备、多个存储设备(包括RAID配置、磁驱动器、固态驱动器等)和多个网络设备的计算设备的热管理。

示例温度数据

图6示出了可以用于如上文关于方法500所讨论地建模热影响的示例温度数据600。温度数据600用测试编号栏601示出,测试编号栏601示出了四个示例温度测试实例。然而,注意,图6是示例,并且可以进行更多的测试实例以获得用于对热影响建模的温度数据。

温度数据600还包括空气处理机速度栏602、容器风扇速度栏603、计算设备风扇速度栏604、T0温度栏605、处理器利用状态栏606、存储器利用状态栏607、存储利用状态栏608、网络利用状态栏609、T1温度栏610和T5温度栏611。这些栏中的每栏表示可以在用于对热影响建模的方法500中采用的数据类型。在一些情况下,温度数据600用于导出温度函数,如本文进一步讨论的。

空气处理机速度、容器风扇速度、计算设备风扇速度和/或时间T0处的温度是可以用作在方法500的框502处的冷却状态的示例类型的数据。处理器利用状态、存储器利用状态、存储利用状态和/或网络利用状态是在方法500的框504处使用的示例类型的硬件利用状态。在图6中,处理器利用状态606被示出为百分比,例如高速缓存命中百分比或百分比指令执行速率(例如,相对于最大指令执行速率)。存储器利用状态607被示出为表示当前存储器传送速率与存储器总线的峰值传送速率之间的比率的存储器传送速率百分比。存储利用状态608被示出为表示当前存储传送速率与存储总线的峰值传送速率之间的比率的存储传送速率百分比。网络利用状态609被示出为表示当前网络传送速率与网络总线的峰值传送速率之间的比率的网络传送速率百分比。

T1温度610和T5温度611可以分别表示在T0之后的1和5个时间单位(例如,毫秒、秒、分钟等)处在个体计算设备处经历的实际温度。因此,T1和T5示出了在给定冷却状态和硬件资源利用状态的情况下相对于T0温度如何变化。注意,图6所示的值可以是瞬时值,例如在单个时刻得到的——针对栏602-609的T0、针对栏610的T1和针对栏611的T5。在另外的实现中,采用平滑和/或平均技术,使得个体值表示一段时间内的相应状态,例如,针对每栏的平均值的滑动窗口。

通常,所公开的实现可以学习热影响函数,该热影响函数作为诸如在栏602-609中所示的变量的函数输出热影响的一些测量(例如,以度为单位的预测温度、以焦耳或BTU为单位的预测热量生成等)。在一些情况下,使用回归算法来学习热影响函数,回归算法例如学习针对个体栏602-609的值的系数的线性或非线性回归。另外的实现可以使用神经网络、贝叶斯技术或其他机器学习变体来学习热影响函数。

作为硬件利用的函数的热影响

一些实现可以基于计算设备的硬件利用状态来估计对给定计算设备的热影响。在一些情况下,可以使用可以如上所讨论的学习的热影响函数来执行估计。图7示出了可以由冷却管理系统410的控制模块414执行的热影响估计和控制方法700。

框702可以确定与计算设备相关联的冷却状态。例如,冷却状态可以反映针对温度和冷却资源两者的当前或最近值,例如,上面关于温度数据600的栏602、603、604和605讨论的类型的数据。

框704可以确定个体服务器的一个或多个硬件利用状态。如上所讨论的,示例硬件利用状态在温度数据600的栏606、607、608和609中示出。

框706可以基于冷却状态和硬件利用状态来估计操作计算设备的热影响。例如,一些实现可以基于诸如当前冷却状态、处理器利用状态、存储器利用状态、存储利用状态和/或网络利用状态的因素来确定预期的未来温度。如上所述,一些实现可以使用从诸如温度数据600(图6)的训练数据生成的模型来估计预期的未来温度。在一些情况下,提供模型作为可以用于计算未来不同时间(例如1秒、5秒等)的预期的未来温度的函数。

方法700的框708可以基于所估计的热影响来调节冷却资源或工作负荷。例如,在一些情况下,可以基于所估计的热影响来打开或关闭个体计算设备风扇,或者可以调节风扇的速度。在其他情况下,聚合多个计算设备的所估计的热影响,并且基于聚合的热影响来打开或关闭诸如容器风扇或空气处理机的共享冷却资源,或者调节速度。在另外的情况下,可以调节气流偏转器以将额外的空气引导至个体计算设备或容器或者减少被引导至个体计算设备或容器的空气量。

基于硬件利用的冷却调节的示例

在一些实现中,基于预期温度来执行对特定冷却资源的调节。例如,假定针对每个计算设备的温度必须维持在45摄氏度以下以防止设备损坏。还假定在个体计算设备处的当前温度为35度,使得温度可以增加至多10度。现在,假定方法700估计在T5,在给定当前硬件利用状态和冷却状态的情况下,温度将增加到46度。

在这一点上,冷却管理系统410可以引起一个或多个冷却资源增加输出。例如,如果计算设备在具有不处于热过载风险的各种其它计算设备的容器中,则冷却管理系统可以增加本地计算设备风扇的速度,而不是增加将空气引导至该容器的空气处理机或者容器风扇的速度。另一方面,如果容器中的计算设备中的若干计算设备处于热过载风险(例如,T5处的估计温度超过45度)下,则冷却管理系统可以代替地增加容器风扇的速度。如果由给定空气处理机服务的多个容器各自具有处于热过载风险的计算设备,则冷却管理系统可以代替地增加该空气处理机的速度。如果彼此靠近的一个或多个给定容器没有热过载风险(例如,图3中的容器200(5)和(6)),但是另一组具有热过载风险(例如,容器200(1-4)),则可以调节气流引导器以解决这种风险,例如通过在保持气流引导器331和332打开的同时关闭气流引导器333和334。

其他实现可以根据所估计的热影响来协调多个冷却资源。例如,可以在逐容器以及逐房间的基础上确定和聚合服务器设施中的针对每个计算设备的热影响。可以应用优化算法来标识计算设备风扇速度、容器风扇速度、空气处理机风扇速度和/或空气引导器配置的特定集合,使得以集成方式控制服务器设施的冷却资源。

此外,注意,硬件利用可以在任何给定工作负荷中波动。因此,临时高的硬件利用状态不一定意味着应当增加冷却输出。在一些实现中,热影响函数用于计算缓冲能力,例如,在需要额外的冷却资源以避免热过载之前的估计时间量。另外的实现可以采用安全边际(margin)(例如5秒),并且每当估计的到热过载的时间降至安全边际以下时开始增加冷却资源输出(例如,风扇速度)。取决于冷却资源用于冷却特定计算设备的时间有多长,另外的实现可以使用不同安全边际,例如,空气处理机可以使用几分钟的安全边际,容器风扇可以使用30秒的安全边际,以及个体计算设备风扇可以使用5秒的安全边际。

此外,注意,一些实现可以不计算明确的热影响。相反,冷却管理系统410可以具有标识特定硬件利用状态并且被映射到相应冷却资源配置的规则。例如,第一规则可以规定,如果高速缓存命中率超过70%,存储器传送是最大吞吐量的至少60%,存储传送是最大吞吐量的至少50%,并且网络传送是最大吞吐量的至少40%,则本地计算设备风扇速度提高10%。在一些情况下,规则还可以具有温度参数,例如,如果当计算设备处于35度时遇到上述硬件利用状态,则风扇速度增加10%,但是如果当计算设备处于40度时遇到这些硬件利用状态,则风扇速度增加50%。在这样的实现中,冷却管理系统可以被实现为个体计算设备上的本地风扇控制器(例如,微控制器)。

此外,如上所述,一些实现可以考虑随时间的波动的硬件利用。因此,可以修改上面引入的规则,使得硬件利用阈值是平均值,例如,对于过去的一分钟。因此,在这种情况下,如果针对高速缓存命中率的过去的一分钟的移动平均值超过70%,过去的一分钟的针对存储器传送速率的移动平均值超过60%,过去的一分钟的针对存储传送速率的移动平均值超过50%,并且过去的一分钟的针对网络传送速率的移动平均值超过40%,则可以基于这些硬件利用平均值和当前温度来选择给定风扇速度。

还可以在针对多个计算设备的聚合基础上定义规则。例如,可以为给定容器、服务器设施房间等中的每个计算设备确定平均高速缓存命中率、存储器传送速率、存储传送速率和网络传送速率。如果针对这些值的平均值满足某些阈值,则可以采用类似的技术。在这种情况下,规则可以规定,当针对容器中的计算设备的平均温度为35度时,容器风扇速度增加10%,并且当针对容器中的计算设备的平均温度为40度时,容器风扇速度增加50%。类似地,当针对由空气处理机(例如,在特定房间中)冷却的计算设备的平均温度为35度时,空气处理机风扇速度可以增加10%,而当平均温度为40度时,空气处理机风扇速度可以增加50%。注意,用于聚合计算设备的平均值也可以是在一段时间(例如,最后一分钟、最后10秒等)上的移动平均值。

基于硬件利用的工作负荷调节的示例

解决工作负荷的热影响的另一方式是通过在个体计算设备上调度工作负荷。例如,假定给定计算设备对于处理器、存储器、存储装置和网络具有90%的当前利用状态,并且处于相对高的温度。一个或多个可执行程序可以从该计算设备移动到具有较低温度和/或针对硬件资源中的一个或多个具有较低利用状态的另一计算设备。

在一些情况下,移动工作负荷可以考虑各种候选计算设备处的局部冷却条件。例如,一些实现可以评估不同容器、房间或服务器设施处的局部温度,以标识具有足以处理高利用工作负荷的热缓冲能力的位置。作为具体示例,假定容器200(1)中的个体计算设备对于处理器、存储器传送、存储传送和网络传送具有非常高的利用,并且处于相对高的温度。此外,假定容器200(5)和200(6)处于相对低的温度。一个或多个可执行程序可以从容器200(1)移动到容器200(5)或(6),并且这足以防止热过载和/或降低用于冷却目的的能量消耗,即使在容器200(5)或(6)中也看到针对被移动的可执行程序的高的利用状态。另外,注意,另外的实现可以考虑容器中的给定计算设备的高度。通常,容器中的较高的计算设备受到容器中的较低的计算设备生成的热量的影响,因此一些实现可以在将这一点考虑在内的情况下来移动或调度可执行程序。

作为程序配置的函数的热影响

方法700可以用于估计热影响,而不考虑哪些可执行程序在给定计算设备上运行。换言之,不管哪些可执行程序正在运行,上述冷却状态值和硬件利用值可以提供足够的信息来导出对计算设备的期望的热影响。然而,另外的实现可以将热影响视为程序配置的函数。总体思想是,特定可执行程序可以具有特定资源利用特性,并且因此可以预期在某些情况下生成一定量的热量。此外,在单个计算设备上一起运行的不同可执行程序可能倾向于以可预测的方式交互,使得可以在给定该知识的情况下预测一起运行某些程序的热影响。图8示出了可以由冷却管理系统410或其他系统执行以计算作为给定服务器上的程序调度的函数的热量生成的方法800。

方法800的框802可以确定个体计算设备的冷却状态,如上面关于方法500的框502所讨论的。

方法800的框804可以标识个体计算设备上的程序配置。如本文中所使用的,术语“程序配置”指代用于在特定计算设备上同时运行的可执行程序的特定组合。可以针对当前(例如,实际运行的)程序配置以及针对预期程序配置(例如,用于调度目的)来估计给定程序配置的热影响。

方法800的框806可以确定程序配置的硬件利用特性。例如,如本文中其它地方所讨论的,硬件利用特性可以反映针对个体可执行程序的处理器使用特性、存储器传送速率特性、存储传送速率特性和/或网络传送速率特性。在一些实现中,针对个体可执行程序单独地确定这些特性。在其他实现中,考虑各种可执行程序之间的交互以确定当在相同处理器上执行时可执行程序的不同组合如何呈现出不同资源利用趋势。

方法800的框808可以估计在给定冷却状态的情况下在程序配置中操作计算设备的热影响。例如,如下面更详细地讨论的,给定程序配置可以被映射到预期的硬件利用状态,预期的硬件利用状态继而可以被用于确定所估计的热影响。在其他实现中,热影响可以作为程序配置的函数而被直接建模和估计,而不将程序配置明确地映射到预期的硬件利用状态。

方法800的框810可以基于所估计的热影响来调节冷却资源或工作负荷。为了调节工作负荷,可以在计算设备上调度不同程序配置。为了调节冷却资源,可以基于所估计的热影响来打开或关闭个体计算设备风扇,或者调节风扇的速度。在其他情况下,聚合多个计算设备的所估计的热影响,并且基于聚合的热影响来打开或关闭诸如机架风扇或空气处理机的共享冷却资源,或者调节速度。在另外的情况下,可以调节气流偏转器以将额外的空气引导至个体计算设备或容器或者减少被引导至个体计算设备或容器的空气量。

示例程序表征数据

在一些实现中,个体可执行程序根据其硬件利用特性来表征。图9示出了表征个体可执行程序的示例程序表征数据900。在一些实现中,如下面更详细地讨论的,个体程序表征用于估计执行个体程序的热影响。

程序表征数据900包括程序ID栏901、处理器利用状态栏902、存储器利用状态栏903、存储利用状态栏904、网络利用状态栏905、以及程序表征栏906。程序ID栏901标识特定可执行程序。通常,栏902-905可以类似于温度数据600的栏606-609,但是可以表示长期平均而不是瞬时或平滑测量。例如,处理器利用状态栏902可以表示当执行相应程序时的长期平均高速缓存命中率或指令执行速率。类似地,存储器利用状态栏903可以表示当执行栏901中的相应程序时的长期平均存储器传送速率百分比,存储利用状态904可以表示当执行栏901中的相应程序时的长期平均存储传送速率百分比,并且网络利用状态905可以表示当执行栏901中的相应程序时的长期平均网络传送速率百分比。程序表征栏906示出了针对每个个体可执行程序的表征,例如,标识在栏901中标识的相应可执行程序倾向于大量使用的特定资源。

在图9中,可执行程序1和5被表征为处理器密集型程序,因为这些可执行程序倾向于呈现出对处理器和/或高速缓存电路的密集使用。例如,可执行程序1和5可以是高性能计算应用,诸如流体动力学计算、涉及大型矩阵乘法的雷达导航计算等。可执行程序2和6被表征为存储器密集型程序,因为这些程序倾向于呈现出对存储器和/或存储器总线电路的密集使用。例如,可执行程序2和6可以是在图形卡(未示出)与存储器之间使用大的存储器传送的图形密集型程序。可执行程序3和7被表征为存储密集型程序,因为这些程序倾向于呈现出对存储设备和存储总线电路的密集使用。例如,可执行程序3和7可以是高性能数据库应用,其执行大量存储记录以维持事务一致性。可执行程序4和8被表征为网络密集型程序,因为这些程序倾向于呈现出对网络设备和网络总线电路的密集使用。例如,可执行程序4和8可以是通过网络设备发送和/或接收大量流媒体数据的流媒体(视频、音频等)应用。

注意,出于说明某些发明构思的目的,有意地简化了图9所示的表征。某些可执行程序可能倾向于密集地使用多个资源,例如,可以呈现出高的网络传送速率和存储传送速率等。此外,可执行程序可以根据它们正在处理的数据或其他因素来在各种时间在它们如何倾向于使用资源时进行波动。

因为可执行程序在它们如何使用资源时可以呈现出波动,所以上面讨论的相应资源利用特性可以反映给定应用的资源利用趋势。例如,一些实现可以使用概率方法来表征存储器、存储装置和/或网络设备的处理器利用或数据传送速率。其他实现可以对个体程序的资源使用进行排名或加权,并且根据它们相对于其他程序倾向于最密集地使用哪些资源来表征这些程序。更一般地,如本文中所使用的术语“利用特性”指代描述给定程序或程序配置的资源使用的大范围的定量和/或定性测量。

示例程序配置数据

如上所述,一些实现可以单独考虑个体可执行程序,并且基于个体可执行程序的特性来估计不同应用配置的热特性。然而,如前所述,有时可执行程序在单独运行时呈现出某些资源使用模式,但是在与另一可执行程序相同的处理器上执行时改变其资源使用模式。图10示出了表征程序配置(例如,可执行程序的不同组合)的示例性程序配置数据1000。在一些实现中,如下面更详细地讨论的,个体程序配置用于预测热影响。

程序配置数据1000包括配置栏1001、程序ID栏1002、1003、1004和1005、处理器利用状态栏1006、存储器利用状态栏1007、存储利用状态栏1008以及网络利用状态栏1009。配置栏使用字母指定来指代在给定计算设备上运行的可执行程序的特定组合,例如在处理器的不同核心上。因此,配置A可以包括在核心121上执行的可执行程序1、在核心122上的可执行程序2、在核心123上的可执行程序3和在核心124上的可执行程序4。同样,配置B具有在核心121上的可执行程序1、在核心122上的可执行程序5、在核心123上的可执行程序3、在核心124上的可执行程序4等。

栏1006-1009表示与图9的栏902-905类似的数据,例如,针对各种硬件资源的长期平均利用状态。然而,注意,程序配置数据1000示出了当相应程序在相同计算设备上彼此组合运行时测量的这些状态,并且因此可以考虑可以在个体程序之间发生的某些交互。

如图10所示,配置A具有以下的长期平均:89%的处理器利用(例如,高速缓存命中率)、91%的存储器利用(例如,存储器总线速率)、93%的存储利用(例如,存储总线速率)、89%的网络利用(例如,网络总线速率)。因此,配置A可以被认为对于每个硬件资源呈现出高的资源利用,并且可以预期呈现出高的热量生成特性。返回参考图9,注意,配置A使用四个可执行程序,这四个可执行程序在它们如何使用硬件资源方面往往是互斥的,例如,可执行程序1倾向于是处理器密集型的,可执行程序2倾向于是存储器带宽密集型的,可执行程序3倾向于是存储带宽密集的,并且可执行程序4倾向于是网络带宽密集的。

现在,考虑配置B,其包括可执行程序1(处理器密集型的)、可执行程序5(处理器密集型的)、可执行程序3(存储带宽密集型的)和可执行程序4(网络带宽密集型的)。此配置呈现出相对高的存储利用和网络利用,但是相对适度的处理器和存储器利用。直观地,相对适度的存储器利用可以是不具有对于存储器总线特别地带宽密集的任何可执行程序的配置的函数。然而,该配置具有两个可执行程序(1和5),这两个可执行程序通常是处理器密集型的,但是在该配置中的处理器利用相对适度,可能比单独运行时的可执行程序更少。如前所述,这可能由针对共享资源(在这种情况下是高速缓存)的竞争引起。由于可执行程序1和5都需要周期性地等待高速缓存,以便在它们相应核心上运行,所以将这两个可执行程序一起运行的净效果是降低的高速缓存利用和/或降低的指令执行速率。

类似地,配置C示出了由于处理器密集型可执行程序1和网络密集型可执行程序4而导致的高的处理器和网络利用。在该配置中的存储利用相对适度,因为四个可执行程序中没有一个是特别地存储带宽密集型的。此外,因为可执行程序2和6两者都是存储器带宽密集型的,所以这两个可执行程序倾向于竞争对存储器总线的控制,并且因此与当可执行程序2或6单独操作时相比,整体效果是更低的存储器带宽使用。

类似的推理适用于配置D,配置D由于处理器密集型的可执行程序1和存储器带宽密集型的可执行程序2而显示出高的处理器和存储器利用。在该配置中的网络带宽利用相对适度,因为四个可执行程序中没有一个是特别地网络密集型的。此外,因为可执行程序3和7两者都是存储带宽密集型的,所以这两个可执行程序倾向于竞争对存储总线的控制,并且因此与当可执行程序3或7单独操作时相比,整体效果是更低的存储带宽使用。

类似的推理适用于配置E,配置E由于存储器带宽密集型的可执行程序2和存储带宽密集型的可执行程序3而显示出高的存储器和存储利用。在该配置中的处理器利用相对适度,因为四个可执行程序中没有一个是特别地处理器密集型的。此外,因为可执行程序4和8都是网络带宽密集型的,所以这两个可执行程序倾向于竞争对网络总线的控制,并且因此与当可执行程序4或8单独操作时相比,整体效果是更低的网络带宽使用。

更一般地,程序配置数据1000可以用于表征不同应用配置的硬件利用趋势或模式。配置A可以被表征为针对处理器、存储器、存储装置和网络资源具有高的资源利用趋势。配置B可以被表征为针对存储和网络具有高的资源利用趋势,但是针对处理器和存储器具有适度或低的资源利用趋势。配置C可以被表征为针对处理器和网络具有高的资源利用趋势,但是针对存储器和存储装置具有适度或低的资源利用趋势。配置D可以被表征为针对处理器和存储器具有高的资源利用趋势,但是对于存储装置和网络具有适度或低的资源利用趋势。配置E可以被表征为针对存储器和存储装置具有高的资源利用趋势,但是针对处理器和网络具有适度或低的资源利用趋势。

在一些情况下,长期平均硬件利用值可以用于计算针对每个配置的预期热影响。例如,长期值可以用在如上面关于方法500所讨论的函数或其他热模型中。更一般地,倾向于呈现出互斥的资源利用的程序配置可以被表征为热密集型配置,并且倾向于呈现出对资源的相互竞争的程序配置可以被表征为不太热密集型的配置。通常,更积极的冷却策略可以用于更加热密集型的配置。

此外,注意,图10所示的程序配置数据1000是引入上面讨论的概念的示例。在实践中,程序配置可以呈现出很多不同资源利用模式。例如,返回参考配置C,其包括存储器带宽密集型的两个可执行程序——程序2和6。如上所述,这些可执行程序可能倾向于竞争对存储器总线的控制,导致比当可执行程序2或6单独操作时更低的存储器带宽使用。然而,如果程序配置C在不同计算设备上运行,则这可以改变。

例如,假定配置C被移动到具有快得多的存储器总线的另一计算设备。在这种情况下,可执行程序2和6可以在该计算设备上呈现出低得多的存储器总线利用,例如可能每个35%。因此,对于这两个程序的资源冲突的可能性被较快的总线减少,并且配置C可以在具有较快的存储器总线的计算设备上平均65%的存储器总线利用。

然而,如果与程序2和6两者一起调度具有密集型存储器总线利用的第三可执行程序,即使具有较快的存储器总线,由于三个存储器总线密集型应用之间的资源冲突,净存储器总线利用也可能减少。例如,在所有三个程序同时运行的情况下,存储器总线利用可能为50%。更一般地,当密集地使用该资源的两个程序被调度为同时运行时,给定资源的总体利用不一定会减少。相反,可能存在“临界点”,其中调度密集地使用该特定资源的另一程序导致资源的利用减少而不是增加。因此,在具有快的存储器总线的计算设备上运行多个同时的存储器总线密集型程序可能倾向于增加热量生成直到达到该临界点,并且此后,随着另外的存储器密集型程序被添加,热量生成可能倾向于减少。这也可以是本文中所讨论的其他资源的情况,并且因此一些实现可以相应地估计各种程序配置的热影响。

基于程序配置的冷却调节的示例

通常,可以基于作为程序配置的函数而被估计的热影响来采用本文中其它地方描述的任何冷却资源调节。例如,特定程序配置可以具有相关联的风扇速度或风扇阈值。作为一个具体示例,程序配置A可以具有用于运行个体计算设备风扇的相关联的规则。当给定计算设备正在配置A中运行时,计算设备风扇可以在30度处以全速的25%打开,在35度处增加到50%,并且在38度处增加到100%。相比之下,针对配置B的另一规则可以规定设备风扇在35度处为25%,在38度处为50%,并且在40度处为100%。这里的一般想法是,配置B预期比配置A生成更少的热量,因此设置相应阈值和风扇速率,使得风扇针对配置B被不太积极地使用。

如前所讨论的,冷却资源还可以针对例如在个体容器、房间或服务器设施中的计算设备组进行协调。例如,一种方法可以基于容器中的多个计算设备的配置来控制容器风扇。如果容器中的每个计算设备正在运行配置A,则可以使用积极的容器风扇方法,例如,当容器中的平均温度为30度处,以全速的25%打开容器风扇,在35度处以全速的50%打开容器风扇,在38度处以全速的100%打开容器风扇。如果每个计算设备正在运行配置B,则可以使用不太积极的方法,例如,在35度处以25%打开容器风扇,在38度处以50%打开容器风扇,在40度处以100%打开容器风扇。在混合配置正在给定容器中运行的情况下,可以定义中间规则,例如,具有配置A中的2个计算设备和配置B中的两个计算设备的容器可以在33度处以全速的25%打开容器风扇,在37度处以全速的50%打开容器风扇,在39度处以全速的100%打开容器风扇。一些实现可以在特定温度处规定的风扇速度之间进行插值,以确定用于未规定温度的风扇速度。

该逻辑可以类似地扩展到服务器设施的房间、服务器设施中的位置或整个服务器设施。在运行相对热密集型的应用配置的服务器设施中的位置(例如,主要运行配置A的房间)可以相对于在不太密集的配置(例如,主要运行配置B的另一房间)中的另一位置接收额外的冷却资源。即使当两个位置中的温度相同时,也可以是这种情况,因为配置A通常预期生成更多的热量。

还应当注意,用于打开各种冷却资源的阈值可以不如对于反应性方法的情况那样保守。例如,在反应性方法中,一旦在任何个体计算设备处的温度达到35度,则空气处理机风扇可以以100%打开。该35度阈值可以基于最坏情况,该最坏情况考虑该计算设备上的非常高的资源利用以及其他附近计算设备(例如,在相同或附近的容器中)的高的热量生成。所公开的实现可以允许空气处理机以较低速度和/或较高温度被打开。这是因为所公开的实现能够通过各种程序配置来估计未来的热量生成,并且因此不一定假定针对每个计算设备的最坏情况。

基于程序配置的工作负荷调节的示例

一些实现可以考虑在不同计算设备上调度可执行程序时应用的热特性。例如,假定需要在计算设备上调度程序3(存储密集型),并且两个不同计算设备具有空闲调度时隙(例如,空闲核心)。此外,假定两个计算设备已经处于相对高的温度。如果第一计算设备已经运行处理器密集型、存储器密集型程序和网络密集型程序,而没有运行存储密集型程序,则程序3可能在第一计算设备上很大程度上不受禁止地运行,并且通过具有对存储设备的不受限制的访问生成大量热量。另一方面,如果第二计算设备已经运行存储密集型程序,则程序1可能在该计算设备上竞争存储总线,并且导致第二计算设备生成较少的热量。

解决这种情况的一种方式是在第二计算设备上调度程序3,使得生成较少的热量。然而,注意,这样做通常意味着第二计算设备上的存储设备将看到较低的利用。通常,服务器设施操作员不希望以低利用运行他们的计算设备。相反,他们希望有效地使用他们的冷却资源,同时以高利用运行他们的计算设备。因此,一些实现可以在第一计算设备上调度程序3。因为程序3可能需要一些时间来开始运行和形成热量,所以另外的实现可以在程序3甚至被调度运行之前预冷却第一计算设备。

从另一个角度看,一些实现可以旨在在给定计算设备上调度相互兼容的程序。出于本文档的目的,术语“相互兼容”意味着倾向于使用不相交的资源集合的一组程序。例如,配置A表示相互兼容的配置,因为配置A中的每个程序倾向于大量使用不同资源,并且因此配置A中的计算设备倾向于针对其上的每个硬件资源具有高的资源利用。

现在,考虑运行应用2、3和4的计算设备。一些实现可以优选地调度该计算设备上的应用1或5,而不是应用6、7和8,因为应用1和5不太可能与现有应用2、3和4竞争资源。然而,因为该调度方法的可能结果是增加的热量利用,一些实现可以甚至在应用1和5在其上被调度之前,向该计算设备分配额外的冷却资源。例如,一些实现可以在预期程序1或5开始与计算设备上的应用2、3和4一起执行时开始预冷却计算设备。

作为另一示例,一些实现可以优选地在运行程序1、3和4的计算设备上调度程序2或6。同样,一些实现可以优选地在运行程序1、2和4的计算设备上调度程序3或7。类似地,一些实现可以优选地在运行程序1、2和3的计算设备上调度程序4或8。在每种情况下,冷却管理系统410可以在预期运行热密集型工作负荷的情况下预冷计算设备。

通常,可以使用本文中所讨论的任何冷却资源执行预冷却。例如,可以通过打开或增加本地计算设备风扇、容纳计算设备的容器的容器风扇和/或冷却多个容器的空气处理机来预冷却个体计算设备,多个容器包括容纳个体计算设备的容器。如前所述,流体泵或阀以及各种类型的流引导器、百叶窗和通风口也可以用于预冷计算设备。

冷却资源和程序配置的联合优化

上述讨论主要独立地处理冷却资源和程序调度。然而,另外的实现可以考虑采用冷却资源调节以及调度两者的热管理策略的各种组合。例如,一些实现可以考虑各种潜在的调度和冷却配置并且评估预期热影响。

作为具体示例,假定服务器设施想要在不同计算设备上运行相等数目的配置A和配置B的实例,并且将计算设备温度限制到不超过40度。冷却管理系统410可以评估各种替代布置方案。例如,一些方案可以在每个容器上运行配置A和B,在相同房间内跨不同容器分离配置A和B,或者甚至分离服务器设施,使得给定房间中的所有容器仅运行一个配置。冷却管理系统还可以评估与计算设备风扇速度、容器风扇速度、空气处理机速度和偏转器配置的各种组合相关联的能量消耗。在一些情况下,可以采用优化算法来实现程序调度和冷却资源配置的最佳或接近最佳组合。

更一般地,通过聚集个体计算设备上的个体程序配置的预期热影响,可以获得服务器设施的总体透视图。由于每个个体冷却资源可以是单独可控的,并且调度机制允许在不同计算设备上运行不同配置,因此可以评估大范围的可能的工作布置和冷却资源配置。

设备实现

返回参考图4,所示的环境400包括若干部件。在这种情况下,出于解释的目的,部件被表征为冷却管理系统410、客户端设备430以及服务器设施300(1)、300(2)和300(3)。在该示例中,冷却管理系统可以表现为服务器计算设备、桌面、平板、膝上型设备等。通常,只要设备具有一些计算硬件,则该设备就可以用作根据所公开的实现的冷却管理系统。当然,可以不示出所有的设备实现,并且从上面和下面的描述中,其他设备实现对于本领域技术人员应该是清楚的。

如本文中所使用的术语“设备”、“计算机”、“计算设备”、“客户端设备”和/或“服务器设施”可以表示具有一定量的硬件处理能力(例如,处理资源411)和/或硬件存储/存储器能力(例如存储器/存储资源412)的任何类型的设备。处理能力可以由可以执行计算机可读指令以提供功能的一个或多个处理器(例如,硬件处理单元/核心)提供。计算机可读指令和/或数据可以存储在存储装置或存储器上。

存储装置/存储器可以在设备内部或外部。除了其他以外,存储装置可以包括易失性或非易失性存储器、硬盘驱动器、闪存设备和/或光存储设备(例如,CD,DVD等)中的任何一个或多个。如本文中所使用的,术语“计算机可读介质”可以包括信号。相比之下,术语“计算机可读存储介质”不包括信号。计算机可读存储介质包括“计算机可读存储设备”。除了其他以外,计算机可读存储设备的示例包括易失性存储介质(诸如RAM)以及非易失性存储介质(诸如硬盘驱动器、光盘和闪存等)。

在一些情况下,设备配置有通用处理器和存储装置/存储器。在其他情况下,设备可以包括片上系统(SOC)类型设计。在SOC设计实现中,由设备提供的功能可以集成在单个SOC或多个耦合的SOC上。一个或多个相关联的处理器可以被配置为与共享资源(诸如存储器、存储装置等)和/或一个或多个专用资源(例如被配置为执行某些特定功能的硬件块)协调。因此,如本文中所使用的术语“处理器”还可以指代适用于在常规计算架构以及SOC设计中实现的中央处理单元(CPU)、图形处理单元(GPU)、控制器、微控制器、处理器核心或其他类型的处理设备。

在一些配置中,建模模块413和/或控制模块414可以在设备的制造期间作为硬件、固件或软件安装,或者由准备将设备销售给终端用户的中介来安装。在其他情况下,终端用户可以稍后安装这些模块,例如通过下载可执行代码并且在相应设备上安装可执行代码。

还要注意,设备通常可以具有输入和/或输出功能。例如,计算设备可以具有各种输入机构,诸如键盘、鼠标、触摸板、语音识别等。设备还可以具有各种输出机构,诸如打印机、监视器等。

还要注意,本文中所描述的设备可以以独立或协作方式工作以实现所描述的技术。例如,本文中所讨论的方法可以在单个计算设备上执行和/或分布在通过一个或多个网络420通信的多个计算设备上。不受限制地,一个或多个网络420可以包括一个或多个局域网(LAN)、广域网(WAN)、因特网等。

在一些情况下,冷却管理系统410通过向个体冷却资源和/或计算设备发送指令来操作。例如,冷却管理系统可以是远程定位的计算机,其向每个服务器设施发送冷却指令以调节空气处理机、气流引导器、容器风扇、计算设备风扇、泵、阀、通风口、百叶窗等。还向个体计算设备发送调度指令以调节工作负荷,如本文中其它地方所讨论的。

在其他情况下,冷却管理系统410本地设置在每个服务器设施中,例如,服务器设施300(1)中的一个冷却管理系统,服务器设施300(2)中的另一冷却管理系统,以及服务器设施300(3)中的另一冷却管理系统。在一些情况下,冷却管理系统在如图3所示的容器之一中的个体计算设备上执行,但在其他情况下位于服务器设施中的其他位置,例如在控制室中。

还如上所述,冷却管理系统410可以被提供作为微控制器或其他专用控制电路(例如,FPGA、ASIC)。在一些情况下,冷却管理系统可以位于个体计算设备的母板或背板上,并且仅控制其上的本地计算设备风扇。在其他情况下,冷却管理系统可以被提供作为多个计算设备的容器中的专用控制电路,并且从这些计算设备接收冷却状态数据。在这种情况下,冷却管理系统可以控制本地容器风扇,并且在一些情况下,控制针对控制容器中的计算设备的计算设备风扇。类似地,冷却管理系统可以被提供作为针对服务器设施的个体房间、针对整个服务器设施或根据服务器设施的具体布局的其他配置的专用控制电路。

另外的示例

本文中所讨论的各种示例可以包括具有硬件处理单元和存储指令的硬件存储设备的第一系统示例。当由硬件处理单元执行时,第一系统示例的指令可以引起硬件处理单元在各个时间测量与计算设备相关联的冷却状态。计算设备可以具有硬件资源,该硬件资源包括处理器、存储器设备和存储设备。指令还可以引起硬件处理单元在各个时间确定计算设备的硬件利用状态。硬件利用状态可以包括与处理器相关联的处理器利用状态、与存储器设备相关联的存储器利用状态、以及与存储设备相关联的存储利用状态。指令还可以引起硬件处理单元测量在冷却状态和硬件利用状态下的操作对计算设备的热影响。指令还可以引起硬件处理单元根据冷却状态和硬件利用状态来建模热影响。在第二系统示例中,第一系统示例的硬件利用状态包括与计算设备的网络设备相关联的网络利用状态。在第三系统示例中,第一或第二系统示例的指令引起硬件处理单元通过以下方式来建模热影响:采用回归算法确定针对处理器利用状态的第一系数、针对存储器利用状态的第二系数、针对存储利用状态的第三系数、以及针对网络利用状态的第四系数。

本文中所讨论的各种示例还可以包括具有硬件处理单元和存储指令的硬件存储设备的第一附加系统示例。第一附加系统示例的指令可以引起硬件处理单元确定与计算设备相关联的冷却状态。计算设备可以具有硬件资源,该硬件资源包括处理器和另一硬件资源。指令还可以引起硬件处理单元确定计算设备的硬件利用状态。硬件利用状态可以包括处理器利用状态和与另一硬件资源相关联的另一硬件利用状态。指令还可以引起硬件处理单元估计在冷却状态和硬件利用状态下的操作对计算设备的热影响。在第二附加系统示例中,第一附加系统示例的指令可以引起硬件处理单元基于所估计的热影响来调节冷却资源。在第三附加系统示例中,第二附加系统示例的冷却资源是本地计算设备风扇。在第四附加系统示例中,第一至第三附加系统示例可以被实现为个体计算设备上的专用冷却控制电路或被实现为单独的计算设备。在第五附加系统示例中,第一至第四附加系统示例的另一硬件资源包括存储器设备,并且另一硬件使用状态反映用于在处理器与存储器设备之间通信的存储器总线上的传送速率。在第六附加系统示例中,第一至第五附加系统示例的另一硬件资源包括存储设备,并且另一硬件使用状态反映用于在处理器与存储设备之间通信的存储总线上的传送速率。在第七附加系统示例中,第一至第六附加系统示例的另一硬件资源包括网络设备,并且另一硬件利用状态反映用于在处理器与网络设备之间通信的网络总线上的传送速率。

本文中所讨论的各种示例还可以包括第一方法示例,其包括确定与计算设备相关联的冷却状态。计算设备可以具有硬件资源,该硬件资源包括处理器以及存储器设备、存储设备或网络设备中的至少一项。第一方法示例还可以包括标识针对计算设备的程序配置。程序配置可以包括与第二可执行程序同时地在计算设备上运行的第一可执行程序。第一方法示例还可以包括确定程序配置的硬件利用特性。硬件利用特性可以包括程序配置的处理器利用特性和数据传送特性。数据传送特性可以反映存储器设备、存储设备或网络设备的数据传送。第一方法示例还可以包括估计当计算设备处于冷却状态时在计算设备上操作程序配置的热影响。在第二方法示例中,第一方法示例的处理器包括第一核心和第二核心,并且程序配置包括在第一核心上运行的第一可执行程序和在第二核心上运行的第二可执行程序。在第三方法示例中,确定第一或第二方法示例的程序配置的硬件利用特性包括在处理器上一起执行第一可执行程序和第二可执行程序,并且基于当第一可执行程序和第二可执行程序都在处理器上运行时的处理器的平均处理器利用状态来确定处理器利用特性。在第四方法示例中,确定第一至第三方法示例的程序配置的硬件利用特性包括在处理器上一起执行第一可执行程序和第二可执行程序,并且基于当第一可执行程序和第二可执行程序都在处理器上运行时的平均存储器利用状态来确定数据传送特性。在第五方法示例中,确定第一至第四方法示例的程序配置的硬件利用特性包括在处理器上一起执行第一可执行程序和第二可执行程序,并且基于当第一可执行程序和第二可执行程序都在处理器上运行时的平均存储利用状态来确定数据传送特性。在第六方法示例中,确定第一至第五方法示例的程序配置的硬件利用特性包括在处理器上一起执行第一可执行程序和第二可执行程序,并且基于当第一可执行程序和第二可执行程序都在处理器上运行时的平均网络利用状态来确定数据传送特性。在第七方法示例中,第一至第六方法示例包括在计算设备上执行程序配置之前,基于所估计的热影响来调节冷却资源。在第八方法示例中,第一至第七方法示例的冷却资源包括个体计算设备风扇、容器风扇或空气处理机风扇。在第九方法示例中,第一至第八方法示例的冷却资源包括引导流体以冷却计算设备的泵或阀。在第十方法示例中,第一至第九方法示例包括通过选择在计算设备上运行的另一程序配置来调节计算设备上的工作负荷。可以基于另一程序配置的另一估计的热影响来选择另一程序配置。

结论

尽管以结构特征和/或方法动作专用的语言描述了主题,但是应当理解,所附权利要求中定义的主题不一定限于上述具体特征或动作。相反,上述具体特征和动作被公开作为实现权利要求的示例形式,并且本领域技术人员将认识到的其他特征和动作旨在落入权利要求的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1