一种服务器风扇调控方法及系统与流程

文档序号:18300599发布日期:2019-07-31 10:03阅读:297来源:国知局
一种服务器风扇调控方法及系统与流程

本申请涉及服务器散热技术领域,特别是涉及一种服务器风扇调控方法及系统。



背景技术:

随着大数据、云计算技术的不断发展,服务器产品广泛应用于各行各业。服务器运行中会产生大量的热量,如果散热不及时,会导致服务器温度过高,从而引起服务器宕机或者损坏服务器。尤其在重要通信场合的服务器,一旦引起宕机会带来巨大的损失。因此,如何对服务器风扇进行调控,从而实现服务器散热,是个重要问题。

目前对服务器风扇进行调控的方法,通常包括两种:第一种方法是对单个风扇进行多段线性控制,该方法主要是按照元件的不同温度,线性地对应不同的风扇转速,从而实现服务器散热。第二种方法是采用pid调控方式,具体地,根据元件的温度设置一个温度基准值作为风扇调控的基准,然后采用分别计算p、i、d三个参数,从而确定风扇的不同转速。

然而,目前对服务器风扇进行调控的方法中,第一种方法中服务器风扇转速与元件的温度之间为线性关系,风扇不能针对元件在某个合理合适的温度点对风扇转速进行动态调整,而一般会是在比元件安全温度低得多的温度点就开始对风扇进行加速,进而导致风扇转速过高和噪音偏高,尤其是低温阶段导致风扇转速过高的现象更加明显,因此第一种方法针对当前的元件温度,对风扇转速的调控不够稳定和精确。第二种方法中由于需要进行p、i、d三个参数的计算,使得进行调控时,达到风扇转速稳定所需要的时间较长,经常达到1小时左右;。在复杂的服务器系统中,由于从传感器温度读取温度到控制风扇转速需要一定时间,会导致风扇转速输出跟不上元件温度上升的速度,尤其是当服务器中高功率元件如300wcpu突然加压时,cpu温度上升较快,在短时间内就容易达到cpu的最大允许工作温度,但是风扇转速还是慢慢提速,从而导致元件长时间超出最大允许工作温度,因此,第二种方法针对风扇转速的调控也是不够稳定和精确。



技术实现要素:

本申请提供了一种服务器风扇调控方法及系统,以解决现有技术中针对当前的元件温度,对风扇转速的调控不够精确和稳定的问题。

为了解决上述技术问题,本申请实施例公开了如下技术方案:

一种服务器风扇调控方法,所述服务器中设置有多个温度传感器,每个所述温度传感器与服务器中一个待测元件相匹配,所述方法包括:

分别获取多个温度传感器的测试值;

根据任一温度传感器的测试值,计算所述任一温度传感器对应的风扇转速输出值;

比对多个温度传感器的风扇转速输出值,选取最大的风扇转速输出值作为服务器的最终风扇转速输出值。

可选地,所述根据任一温度传感器的测试值,计算所述任一温度传感器对应的风扇转速输出值,包括:

根据元件温度规范要求以及服务器系统散热测试结果,对所述任一温度传感器设定一温度调控点;

当|tn-ts|≤第一阈值时,风扇输出duty为fn,其中,ts为温度调控点,tn为当前时刻温度传感器的测试值,fn为当前时刻的风扇输出duty;

当tmax-tn≤第二阈值时,风扇输出duty为fmax,其中,tmax为温度传感器所监测元件的最大允许工作温度,fmax为风扇最大允许输出duty;

当|tn-ts|>第一阈值且tmax-tn>第二阈值时,根据当前时刻温度传感器的测试值tn与温度调控点的差值,分别设置相应的风扇输出duty,且所述差值越大风扇输出duty变化越大。

可选地,所述第一阈值为1,所述第二阈值为2。

可选地,所述当|tn-ts|>第一阈值且tmax-tn>第二阈值时,根据当前时刻温度传感器的测试值tn与温度调控点的差值,分别设置相应的风扇输出duty,且所述差值越大风扇输出duty变化越大,包括:

当1<tn-ts≤2时,风扇输出duty为fn+x%,且x值初始定义为5;

当-2≤tn-ts<-1时,风扇输出duty为fn-x%,且x值初始定义为5;

当2<tn-ts≤3时,风扇输出duty为fn+y%,且y值初始定义为8;

当-3≤tn-ts<-2时,风扇输出duty为fn-y%,且y值初始定义为8;

当3<tn-ts≤4时,风扇输出duty为fn+z%,且z值初始定义为10;

当-4≤tn-ts<-3时,风扇输出duty为fn-z%,且z值初始定义为10;

当4<tn-ts≤5时,风扇输出duty为fn+m%,且m值初始定义为15;

当-5≤tn-ts<-4时,风扇输出duty为fn-m%,且m值初始定义为15。

可选地,所述当|tn-ts|>第一阈值且tmax-tn>第二阈值时,根据当前时刻温度传感器的测试值tn与温度调控点的差值,分别设置相应的风扇输出duty,且所述差值越大风扇输出duty变化越大,还包括:

当tn-ts>5时,风扇输出duty为fn+n%,且n值初始定义为15;

当tn-ts<-5时,风扇输出duty为fn-n%,且n值初始定义为15。

一种服务器风扇调控系统,所述服务器中设置有多个温度传感器,每个所述温度传感器与服务器中一个待测元件相匹配,所述系统包括:

温度测试值获取模块,用于分别获取多个温度传感器的测试值;

第一风扇转速计算模块,用于根据任一温度传感器的测试值,计算所述任一温度传感器对应的风扇转速输出值;

第二风扇转速计算模块,用于比对多个温度传感器的风扇转速输出值,选取最大的风扇转速输出值作为服务器的最终风扇转速输出值。

可选地,所述第一风扇转速计算模块包括:

温度调控点设定单元,用于根据所述任一温度传感器的温度规范要求以及服务器系统散热测试结果,对所述任一温度传感器设定一温度调控点;

第一风扇输出duty计算单元,用于当|tn-ts|≤第一阈值时,使风扇输出duty为fn,其中,ts为温度调控点,tn为当前时刻温度传感器的测试值,fn为当前时刻的风扇输出duty;

第二风扇输出duty计算单元,用于当tmax-tn≤第二阈值时,使风扇输出duty为fmax,其中,tmax为温度传感器所监测元件的最大允许工作温度,fmax为风扇最大允许输出duty;

第三风扇输出duty计算单元,用于当|tn-ts|>第一阈值且tmax-tn>第二阈值时,根据当前时刻温度传感器的测试值tn与温度调控点的差值,分别设置相应的风扇输出duty,且所述差值越大风扇输出duty变化越大。

可选地,所述第一阈值为1,所述第二阈值为2。

可选地,所述第三风扇输出duty计算单元,包括:

第一风扇输出duty计算子单元,用于当1<tn-ts≤2时,使风扇输出duty为fn+x%,且x值初始定义为5,以及,当-2≤tn-ts<-1时,使风扇输出duty为fn-x%;

第二风扇输出duty计算子单元,用于当2<tn-ts≤3时,使风扇输出duty为fn+y%,且y值初始定义为8,以及,当-3≤tn-ts<-2时,使风扇输出duty为fn-y%;

第三风扇输出duty计算子单元,用于当3<tn-ts≤4时,使风扇输出duty为fn+z%,且z值初始定义为10,以及,当-4≤tn-ts<-3时,使风扇输出duty为fn-z%;

第四风扇输出duty计算子单元,用于当4<tn-ts≤5时,使风扇输出duty为fn+m%,且m值初始定义为15,以及,当-5≤tn-ts<-4时,使风扇输出duty为fn-m%。

可选地,所述第三风扇输出duty计算单元还包括:

第五风扇输出duty计算子单元,用于当tn-ts>5时,使风扇输出duty为fn+n%,且n值初始定义为1,以及,当tn-ts<-5时,使风扇输出duty为fn-n%,且n值初始定义为15。

本申请的实施例提供的技术方案可以包括以下有益效果:

本申请提供一种服务器风扇调控方法,该方法首先分别获取多个温度传感器的测试值,然后根据温度传感器的测试值,计算任一温度传感器对应的风扇转速输出值,最后,比对多个风扇转速输出值,选择最大的风扇转速输出值作为服务器的最终风扇转速输出值。本申请在服务器中设置有多个温度传感器,每个温度传感器与服务器中一个待测元件相匹配。针对每一个温度传感器根据当前的测试值,计算与温度传感器相匹配的元件的风扇转速输出值,最终比对多个风扇转速输出值,以最大值作为最终风扇转速输出值,从而确保对所有元件实现温度控制。

而且,本实施例中计算任一温度传感器对应的风扇转速输出值时,先根据元件温度spec和服务器系统散热测试结果设定一温度调控点,当前温度传感器的测试值与温度调控点的差值小于或等于第一阈值时,控制风扇输出duty为当前时刻的输出duty保持不变,也就是使风扇转速保持不变,这种方法能够使风扇转速快速稳定,并避免当前测试值的微小变化带来风扇转速的变化,有利于提高风扇转速调控的稳定性和准确性。当前温度传感器的测试值与元件最大允许工作温度的差值小于或等于第二阈值时,控制风扇输出其最大允许输出值fmax,这种在传感器测试值即将接近元件的最大允许工作温度时,采用风扇转速最大化的方法,能够确保元件温度不会超过元件的最大允许工作温度,从而避免元件温度超过spec而导致的元件性能不稳定等问题,有利于提高元件的稳定性和对风扇调控的精确性。本实施例中当温度传感器的测试值与温度调控点的差值大于第一阈值,且温度传感器的测试值与元件最大允许工作温度的差值大于第二阈值时,根据当前时刻温度传感器的测试值与温度调控点的差值,分别设置相应的风扇输出duty,且差值越大风扇输出duty变化越大,这种针对传感器的测试值与温度调控点的不同差值设定不同的风扇转速的方法,能够使元件温度得到风扇的及时冷却,有利于提高风扇转速的稳定性,以及对风扇转速调控的精确性。

本申请还提供一种服务器风扇调控系统,该系统主要包括:温度测试值获取模块、第一风扇转速计算模块和第二风扇转速计算模块。通过温度测试值获取模块获取到多个温度传感器的测试值,然后通过第一风扇转速计算模块根据测试值计算任一温度传感器的风扇转速输出值,最后利用第二风扇转速计算模块比对多个风扇转速输出值,选择最大的风扇转速输出值作为服务器的最终风扇转速输出值。本实施例第一风扇转速计算模块,又包括温度调控点设置单元、第一风扇输出duty计算单元、第二风扇输出duty计算单元以及第三风扇输出duty计算单元。第一风扇转速计算模块的设置,能够根据温度传感器的测试值与温度调控点的差值,以及温度传感器的测试值与元件最大允许工作温度的差值的关系,分别控制第一风扇输出duty计算单元、第二风扇输出duty计算单元和第三风扇输出duty计算单元进行相应计算,根据不同的测试值控制风扇输出相应的duty,有利于提高风扇转速调控的稳定性和精确性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例所提供的一种服务器风扇调控方法的流程示意图;

图2为本申请实施例中任一温度传感器在某时刻的测试值、温度调控点元件的最大允许工作温度之间的关系示意图;

图3为本申请实施例所提供的一种服务器风扇调控系统的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

为了更好地理解本申请,下面结合附图来详细解释本申请的实施方式。

实施例一

本实施例中的服务器中设置有多个温度传感器,且每个温度传感器与服务器中一个待测元件相匹配。参见图1,由图1可知,本实施例中服务器风扇调控方法主要包括如下步骤:

s1:分别获取多个温度传感器的测试值。

也就是获取当前多个待测元件的温度。

获取到多个温度传感器的测试值之后,执行步骤s2:根据任一温度传感器的测试值,计算任一温度传感器对应的风扇转速输出值。

针对多个传感器中每个温度传感器的测试值,计算该温度传感器所对应的风扇转速输出值。具体地,步骤s2包括如下过程:

s21:根据元件温度规范要求以及服务器系统散热测试结果,对任一温度传感器设定一温度调控点。

本实施例中根据传感器的测试值计算传感器所对应的风扇转速输出值时,首先对传感器设定一温度调控点。具体地,根据元件温度规范要求和服务器系统散热测试结果进行设定。元件温度规范要求即:元件温度spec,本实施例中服务器系统散热测试即:

thermalfancontroltest。

本实施例中温度调控点为一温度参数,可以根据不同的项目对其进行调整。以intelcpu为例,确定cpu的温度调控点ts时,首先选取datasheet里面定义的tcontrol温度,然后根据系统散热测试结果调整和修正温度调控点ts;其他元件的温度调控点一般按照最大允许工作温度减少10度,进行初步调试。

设定温度调控点之后,根据当前时刻温度传感器的测试值与温度调控点的差值,以及,当前时刻温度调控点与温度传感器所监测的元件的最大允许工作温度的差值的大小范围,分别执行以下步骤s22、s23或s24。

s22:当|tn-ts|≤第一阈值时,风扇输出duty为fn。其中,ts为温度调控点,tn为当前时刻温度传感器的测试值,fn为当前时刻的风扇输出duty。

也就是,当|tn-ts|≤第一阈值时,风扇输出duty为保持为当前时刻风扇的输出duty不变。其中,duty为风扇的占空比,是控制风扇转速大小的一个参数。第一阈值的大小可以根据服务器的实际应用需求进行修改,只要能够确保风扇保持当前的duty不变时,待测元件仍然能够及时得到风扇的散热即可。

通常第一阈值取值为1,即:当|tn-ts|≤1时,风扇输出duty保持当前时刻的duty不变,为fn。

本实施例通过步骤s22,当元件温度的变化小于等于第一阈值时,温度的微小变化不会影响风扇转速,从而能够提高风扇调控的稳定性。

s23:当tmax-tn≤第二阈值时,风扇输出duty为fmax。其中,tmax为温度传感器所监测元件的最大允许工作温度,fmax为风扇最大允许输出duty。

本实施例中第二阈值的大小,也是根据服务器的实际应用需要进行修改,需要与实际系统结合来确定。通常第二阈值取值为2,即:当tmax-tn≤2时,风扇输出duty为fmax。也就是当tmax-tn≤2时,采取风扇转速最大化策略。通过步骤s23,当元件温度较高时,能够使元件温度及时得到风扇的充分冷却,避免元件温度超过元件的tmax值或者较长时间超过元件spec,有利于保护元件本身,还能够避免元件温度超过spec所带来的一系列稳定性问题,因此,能够有效提高风扇转速调控的稳定性和精确性。

s24:当|tn-ts|>第一阈值且tmax-tn>第二阈值时,根据当前时刻温度传感器的测试值tn与温度调控点的差值,分别设置相应的风扇输出duty,且差值越大风扇输出duty变化越大。

具体地,当第一阈值取值为1,第二阈值取值为2时,步骤s24又包括如下过程:

s240:当1<tn-ts≤2时,风扇输出duty为fn+x%,且x值初始定义为5;

s241:当-2≤tn-ts<-1时,风扇输出duty为fn-x%,且x值初始定义为5;

s242:当2<tn-ts≤3时,风扇输出duty为fn+y%,且y值初始定义为8;

s243:当-3≤tn-ts<-2时,风扇输出duty为fn-y%,且y值初始定义为8;

s244:当3<tn-ts≤4时,风扇输出duty为fn+z%,且z值初始定义为10;

s245:当-4≤tn-ts<-3时,风扇输出duty为fn-z%,且z值初始定义为10;

s246:当4<tn-ts≤5时,风扇输出duty为fn+m%,且m值初始定义为15;

s247:当-5≤tn-ts<-4时,风扇输出duty为fn-m%,且m值初始定义为15。

进一步地,当第一阈值取值为1,第二阈值取值为2时,本实施例中步骤s24还包括如下过程:

s248:当tn-ts>5时,风扇输出duty为fn+n%,且n值初始定义为15;

s249:当tn-ts<-5时,风扇输出duty为fn-n%,且n值初始定义为15。

以上步骤s240-s249中,风扇输出duty中的偏差值,仅设定了初始定义值,根据该初始定义值控制风扇输出duty之后,需要根据该初始定义值进行服务器系统散热测试,具体的风扇输出duty偏差值可以根据服务器系统散热测试结果进行修正后最终确定,这样有利于进一步提高风扇调控稳定性和精确性。另外,为提高风扇调控的精确度,本实施例对于风扇duty输出值有相应的判断标准,本实施例中传感器的测试值和温度调控点之间的偏差,通常控制在5度以内。如果元件温度和温度调控点之间的偏差超过5度,说明风扇转速太快,会导致噪音较大且服务器给风扇供电的功耗过大,不利于能源充分利用。

本实施例通过步骤24,针对温度传感器的测试值与温度调控点的不同差值设定不同的风扇转速,能够使元件温度得到风扇的充分冷却,使元件温度稳定在设定的温度调控点附近,有利于提高风扇对元件散热的精确性;还能够使得风扇转速快速趋于稳定,有利于提高风扇调控的稳定性。

继续参见图1可知,计算得出任一温度传感器对应的风扇转速输出值之后,执行步骤s3:比对多个温度传感器的风扇转速输出值,选取最大的风扇转速输出值作为服务器的最终风扇转速输出值。

以多个传感器的风扇转速输出值中的最大值,作为服务器的最终风扇转速输出值,能够保所有元件在同一风扇转速下能满足温度要求。

本实施例中,任一温度传感器在某时刻的测试值、温度调控点元件的最大允许工作温度之间的关系示意图,可以参见图2。图2中tmax为元件的最大允许工作温度,该工作温度可以通过不同元件的规格书进行查询确定,该温度需要写到风扇控制器的寄存器内。tmax-2是温度传感器监测到元件温度到达这个温度点时,控制风扇进行最大转速运行。ts为该元件的温度调控点;ts+1表示比温度调控点高1度;ts-1表示比温度调控点低1度。由图2可知,如果某一tn时刻,传感器温度保持在ts+1度与ts-1度之间,那么下一tn+1时刻,风扇转速与前一时刻转速一样相同,保持不变;当某一时刻tn传感器监测到温度达到ts+1时,那么下一时刻tn+1,风扇转速需要按照步骤s240-s249的方法进行风扇转速提高控制;当某一时刻tn,传感器监测到温度小于ts-1时,那么下一tn+1时刻,风扇需要按照步骤s240-s249的方法进行风扇转速降低控制。

实施例二

在图1和图2所示实施例的基础之上参见图3,图3为本申请实施例所提供的一种服务器风扇调控系统的结构示意图。由图3可知,本实施例中的服务器风扇调控系统主要包括:温度测试值获取模块、第一风扇转速计算模块和第二风扇转速计算模块三部分。其中,温度测试值获取模块用于分别获取多个温度传感器的测试值;第一风扇转速计算模块,用于根据任一温度传感器的测试值,计算任一温度传感器对应的风扇转速输出值;第二风扇转速计算模块,用于比对多个温度传感器的风扇转速输出值,选取最大的风扇转速输出值作为服务器的最终风扇转速输出值。

其中,第一风扇转速计算模块又包括:温度调控点设定单元、第一风扇输出duty计算单元、第二风扇输出duty计算单元和第三风扇输出duty计算单元。温度调控点设定单元,用于根据任一温度传感器的温度规范要求以及服务器系统散热测试结果,对任一温度传感器设定一温度调控点;第一风扇输出duty计算单元,用于当|tn-ts|≤第一阈值时,使风扇输出duty为fn,ts为温度调控点,tn为当前时刻温度传感器的测试值,fn为当前时刻的风扇输出duty;第二风扇输出duty计算单元,用于当tmax-tn≤第二阈值时,使风扇输出duty为fmax,tmax为温度传感器所监测元件的最大允许工作温度,fmax为风扇最大允许输出duty;第三风扇输出duty计算单元,用于当|tn-ts|>第一阈值且tmax-tn>第二阈值时,根据当前时刻温度传感器的测试值tn与温度调控点的差值,分别设置相应的风扇输出duty,且差值越大风扇输出duty变化越大。

本实施例中第一风扇转速计算模块的设置,能够根据温度传感器的测试值与温度调控点之间的差值,以及,温度传感器的测试值与元件最大允许工作温度差值的关系,分别控制第一风扇输出duty计算单元、第二风扇输出duty计算单元和第三风扇输出duty计算单元进行相应计算,并根据不同的测试值控制风扇输出相应的duty,这种结构设计,有利于提高风扇转速调控的稳定性和精确性,相比于现有的pid控制,在元件温度接近其最大允许工作温度时,能够及时对元件进行散热,从而避免元件温度超过spec所导致的一系列系统不稳定现象。相比于现有的线性调控,能够更加精确地针对不同的测试值设定相应的风扇转速,而且能够将风扇转速快速稳定在温度调控点附件,有利于提高风扇转速调控的准确性和稳定性。

本实施例中第一阈值取值为1,第二阈值取值为2。

进一步地,当第一阈值取值为1,第二阈值取值为2时,第三风扇输出duty计算单元又包括:第一风扇输出duty计算子单元、第二风扇输出duty计算子单元、第三风扇输出duty计算子单元以及第四风扇输出duty计算子单元。

其中,第一风扇输出duty计算子单元,用于当1<tn-ts≤2时,使风扇输出duty为fn+x%,且x值初始定义为5,以及,当-2≤tn-ts<-1时,使风扇输出duty为fn-x%。第二风扇输出duty计算子单元,用于当2<tn-ts≤3时,使风扇输出duty为fn+y%,且y值初始定义为8,以及,当-3≤tn-ts<-2时,使风扇输出duty为fn-y%。第三风扇输出duty计算子单元,用于当3<tn-ts≤4时,使风扇输出duty为fn+z%,且z值初始定义为10,以及,当-4≤tn-ts<-3时,使风扇输出duty为fn-z%。第四风扇输出duty计算子单元,用于当4<tn-ts≤5时,使风扇输出duty为fn+m%,且m值初始定义为15,以及,当-5≤tn-ts<-4时,使风扇输出duty为fn-m%。

进一步地,本实施例中第三风扇输出duty计算单元还包括:第五风扇输出duty计算子单元,用于当tn-ts>5时,使风扇输出duty为fn+n%,且n值初始定义为1,以及,当tn-ts<-5时,使风扇输出duty为fn-n%,且n值初始定义为15。

该实施例中服务器风扇调控的方法和原理,在图1和图2所示的实施例中已经详细阐述,在此不再赘述。

以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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