本发明涉及cpu结温调控领域,具体涉及一种服务器cpu结温调控方法及装置。
背景技术:
随着技术发展,cpu对服务器的稳定性提出更高要求,尤其是cpu能承受的最高结温(即在规格要求结温范围正常工作)下稳定运行尤为重要。为了保证出厂的服务器cpu在最高结温下稳定运行,需控制cpu处于一定结温范围进行长时间的压力测试,并记录系统日志以分析定位问题。但当前测试方法均为手动调节风扇转速,控制cpu结温,这种方法有很大的局限性,温度不宜控制,无法抓取实时日志,不能控制多台设备测试,而且无法做到长期的压力测试。
技术实现要素:
为解决上述问题,本发明提供一种服务器cpu结温调控方法及装置,自动实现cpu结温调节,且对多核cpu温度一致性差时进行特殊处理,从而达到使cpu结温稳定在一定范围内进行长期压力测试的目的。
本发明的技术方案是:一种服务器cpu结温调控方法,服务器有多个cpu核;
该方法包括以下步骤:
cpu处理器获取各个cpu核的结温;
将所获取各个cpu核的结温与第一预设结温阈值进行比较;
根据比较情况直接发送调控风扇转速指令至sas控制器,或将所获取各个cpu核的结温与第二预设结温阈值进行比较;第二预设结温阈值的范围大于第一预设结温阈值的范围;
当与第二预设结温阈值进行比较时,根据比较结果发送调控风扇转速指令至sas控制器;
sas控制器根据调控风扇转速指令对风扇进行调速。
进一步地,cpu处理器通过读取cpu温度寄存器获取cpu结温。
进一步地,cpu处理器每隔预设时间获取一次cpu结温。
进一步地,第一预设结温阈值包括第一低结温阈值和第一高结温阈值;
将所获取各个cpu核的结温与第一预设结温阈值进行比较,根据比较情况直接发送调控风扇转速指令至sas控制器,具体包括:
将各个cpu核的结温分别与第一低结温阈值、第一高结温阈值比较;
若有cpu核的结温大于第一高结温阈值,且其余所有cpu核的结温均大于第一低结温阈值,则标记超温标志;
若有cpu核的结温小于第一低结温阈值,且其余所有cpu核的结温均小于第一高结温阈值,则标记低温标志;
当超温标志被标记时,发送调高风扇转速指令至sas控制器;当低温标志被标记时,发送调低风扇转速指令至sas控制器。
进一步地,第二预设结温阈值包括第二低结温阈值和第二高结温阈值,第二低结温阈值低于第一低结温阈值,第二高结温阈值高于第一高结温阈值;
将所获取各个cpu核的结温与第一预设结温阈值进行比较,根据比较情况将所获取各个cpu核的结温与第二预设结温阈值进行比较,当与第二预设结温阈值进行比较时,根据比较结果发送调控风扇转速指令至sas控制器,具体包括:
若有cpu核的结温大于第一高结温阈值,且有cpu核的结温小于第一低结温阈值,则将各个cpu核的结温分别与第二低结温阈值、第二高结温阈值比较;
若有cpu核的结温大于第二高结温阈值,且其余所有cpu核的结温均大于第二低结温阈值,则标记超温标志;
若有cpu核的结温小于第二低结温阈值,且其余所有cpu核的结温均小于第二高结温阈值,则标记低温标志。
当超温标志被标记时,发送调高风扇转速指令至sas控制器;当低温标志被标记时,发送调低风扇转速指令至sas控制器。
进一步地,该方法还包括:
若有cpu核的结温大于第二高结温阈值,且有cpu核的结温小于第二低结温阈值,则发送风扇转速调至最大指令至sas控制器,且记录日志,同时退出温度调控流程。
进一步地,还包括以下步骤:
在sas控制器端关闭cpu温度告警策略。
进一步地,sas控制器内配置有oses管理固件。
本发明的技术方案还包括一种服务器cpu结温调控装置,服务器有多个cpu核;
cpu处理器端包括,
cpu结温获取模块:获取各个cpu核的结温;
结温比较模块:将所获取各个cpu核的结温与第一预设结温阈值进行比较,根据比较情况触发调控风扇转速指令发送模块直接发送调控风扇转速指令至sas控制器,或将所获取各个cpu核的结温与第二预设结温阈值进行比较,根据该比较结果触发调控风扇转速指令发送模块发送调控风扇转速指令至sas控制器;第二预设结温阈值的范围大于第一预设结温阈值的范围;
调控风扇转速指令发送模块:根据比较结果发送调控风扇转速指令至sas控制器;
sas控制器端包括,
指令接收模块:接收调控风扇转速指令;
风扇调控模块:根据调控风扇转速指令调控风扇转速。
进一步地,第一预设结温阈值包括第一低结温阈值和第一高结温阈值,第二预设结温阈值包括第二低结温阈值和第二高结温阈值;其中,第二低结温阈值低于第一低结温阈值,第二高结温阈值高于第一高结温阈值;
结温比较模块将所获取各个cpu核的结温与第一预设结温阈值进行比较,根据比较情况触发调控风扇转速指令发送模块直接发送调控风扇转速指令至sas控制器,或将所获取各个cpu核的结温与第二预设结温阈值进行比较,根据该比较结果触发调控风扇转速指令发送模块发送调控风扇转速指令至sas控制器,具体为:
将各个cpu核的结温分别与第一低结温阈值、第一高结温阈值比较;
若有cpu核的结温大于第一高结温阈值,且其余所有cpu核的结温均大于第一低结温阈值,则标记超温标志;
若有cpu核的结温小于第一低结温阈值,且其余所有cpu核的结温均小于第一高结温阈值,则标记低温标志;
若有cpu核的结温大于第一高结温阈值,且有cpu核的结温小于第一低结温阈值,则将各个cpu核的结温分别与第二低结温阈值、第二高结温阈值比较;
若有cpu核的结温大于第二高结温阈值,且其余所有cpu核的结温均大于第二低结温阈值,则标记超温标志;
若有cpu核的结温小于第二低结温阈值,且其余所有cpu核的结温均小于第二高结温阈值,则标记低温标志;
当超温标志被标记时,发送调高风扇转速指令至sas控制器;当低温标志被标记时,发送调低风扇转速指令至sas控制器;
若有cpu核的结温大于第二高结温阈值,且有cpu核的结温小于第二低结温阈值,则发送风扇转速调至最大指令至sas控制器,且记录日志,同时退出温度调控流程。
本发明提供的一种服务器cpu结温调控方法及装置,由cpu处理器获取cpu结温,并将cpu结温与预设结温阈值进行比较,并对多cpu和温度一致性差情况进行阈值调整和异常识别处理,根据处理结果发送风扇调控指令到sas控制器,sas控制器根据调控指令控制风扇转速,实现cpu结温自动调控,使cpu处于一定结温范围内,以便进行cpu的高结温压力测试。
附图说明
图1是本发明具体实施例一方法流程示意图;
图2是本发明具体实施例一结构示意图;
图3是本发明具体实施例二结构示意图。
具体实施方式
下面结合附图并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。
以下对本发明涉及的英文名词进行解释:
sas控制器:serialattachedscsi,即串行scsi接口控制器;
pcie:peripheralcomponentinterconnectexpress,高速串行计算机扩展总线标准;
oses:sesienclosureservices,t10技术委员会制定的用于机箱管理的标准。
实施例一
如图1和2所示,本实施例提供一种服务器cpu结温调控方法,服务器有多个cpu核,该方法包括以下步骤:
s1,cpu处理器获取各个cpu核的结温;
s2,将所获取各个cpu核的结温与第一预设结温阈值进行比较;
s3,根据比较情况直接发送调控风扇转速指令至sas控制器,或将所获取各个cpu核的结温与第二预设结温阈值进行比较;第二预设结温阈值的范围大于第一预设结温阈值的范围;
s4,当与第二预设结温阈值进行比较时,根据比较结果发送调控风扇转速指令至sas控制器;
s5,sas控制器根据调控风扇转速指令对风扇进行调速。
该方法由cpu处理器根据需要获取各个cpu核的结温,将各个结温与预设结温阈值比较,并根据情况调整预设结温阈值,最终根据比较结果发送相应调控风扇转速指令至sas控制器,sas控制器根据相应指令调控风扇转速,从而使cpu处于一定范围范围内。
具体实施例时,cpu处理器通过读取cpu温度寄存器获取cpu结温,且可根据需要每隔预设时间获取一次cpu结温,比如每5分钟获取一次。
sas控制器为内部配置有oses管理固件的控制器,基于oses管理固件根据cpu结温对风扇调速。服务器有多个cpu核,具体实施时,需要将各个cpu核的结温分别与结温阈值比较,并考虑每个cpu核的温度一致性,对因cpu核一致性或cpu温度采集异常等导致一致性差的情况进行特殊处理,根据总体结果调节风扇转速。
需要说明的是,本实施例还在sas控制器端关闭cpu温度告警策略,避免系统进入告警服务而关机。
为进一步理解本方案,以下结合上述步骤,基于本发明原理,提供一具体实现方式,包括以下步骤:
s101,设置入参,并有效性判断;
入参及预设结温阈值,包括结温范围(t1-t2)、上下控选择(ctrl_num);其中t1为第一低结温阈值,t2为第一高结温阈值。
s102,oses环境配置;
通过执行命令pl_osescli-e1-p0xc0或者pl_osescli-e1-p0xc1(双控机器,这里是对上控或者下控的oses进行配置,根据入参ctrl_num进行配置)。
配置后输入密码,logoin成功后按下“ctrl c”结束当前oses进程。
s103,关闭oses温度告警策略;
由以下代码实现:
s104,先通过oses指令获取当前风扇转速(current_pwm)。
s105,获取当前cpu结温,由于是多核处理器,获取多核结温;
代码如下:
s107,将步骤s105中获取的多核温度分别与t1、t2比较,如果有cpu核的温度小于t1,且所有核温度小于t2,标记低温标志。
s108,将步骤s105中获取的多核温度分别与t1、t2比较,如果若干核温度大于t2,同时若干核温度小于t1,标记临界值调整标志,调整(t1,t2)的范围到(第二低结温阈值t1n=t1-tn,第二高结温阈值t2n=t2 tn),tn默认为5度(可配置),同时保证t2 tn<tjmax-tn(cpu电源关闭临界值可配置)。
s109,如果临界值调整标志置位,对新的临界值进行温度判断,如果有cpu核的温度大于t2n,且所有核温度大于t1n,标记超温标志。
s110,如果临界值调整标志置位,如果有cpu核的温度小于t1n,且所有核温度小于t2n,标记低温标志。
s111,如果临界值调整标志置位,仍旧出现若干核温度大于t2n,同时若干核温度小于t1n的情况,认为当前cpu温度采集或cpu异常,需要调整cpu风扇转速到最大,并记录日志,收集系统日志,并退出温度调控流程。
s108,如果超温标志置位,需要调高风扇速度:
需要说明的是,通过pwm调速。在当前风扇转速current_pwm基础上按照配置文件中默认设置的风扇转速上调步幅fan_pwm_step_up(默认为14)进行递增,即gfan_pwm=current_pwm fan_pwm_step_up,当gfan_pwm大于等于max_fan_pwm_default(默认为255)时,设置gfan_pwm=max_fan_pwm_default。
具体命令为:pl_osescli-e1-${ctrl_num}-o"/sre/writern_req_psu_pwm_manual_value${gfan_pwm}">>./log/cpu_temp_control_log.log。
s109,如果超温标志没置位,但低温标志置位,需要调低风扇速度;
在当前风扇转速current_pwm基础上按照配置文件中默认设置的风扇转速下调步幅fan_pwm_step_down(默认为7)进行递减,gfan_pwm=current_pwm-fan_pwm_step_up,当gfan_pwm小于等于min_fan_pwm_default(默认为65)时,设置gfan_pwm=min_fan_pwm_default。
s110,当超温标志和低温标志都未置位时,维持当前风扇转速。
该方法进行调温的目的是让cpu(所有核)处于设定温度范围内,当出现若干核温度大于t2,同时若干核温度小于t1情况,需要扩大温度范围;若仍出现若干核温度大于t2n,同时若干核温度小于t1n情况,说明当前温度采集或cpu有异常,无法进行进行压力测试,需要记录异常情况并收集系统日志供研发分析,并退出测试流程。
本具体实现方法中,每5s进行一次cpu结温检测及风扇调节,并输出检测温度和风扇调节日志。需要说明的是,每次检测或调节风扇后,清楚所标记标志(如超温标志、低温标志、临界值调整标志等),且临界值调整回(t1,t2),下一次检测依旧先以(t1,t2)判断。
实施例二
如图3所示,在实施例一基础上,本实施例提供一种服务器cpu结温调控装置,服务器有多个cpu核,该装置包括cpu处理器端的功能模块和sas控制器端功能模块。
cpu处理器端包括,
cpu结温获取模块101:获取各个cpu核的结温;
结温比较模块102:将所获取各个cpu核的结温与第一预设结温阈值进行比较,根据比较情况触发调控风扇转速指令发送模块103直接发送调控风扇转速指令至sas控制器,或将所获取各个cpu核的结温与第二预设结温阈值进行比较,根据该比较结果触发调控风扇转速指令发送模块103发送调控风扇转速指令至sas控制器;第二预设结温阈值的范围大于第一预设结温阈值的范围;
调控风扇转速指令发送模块103:根据比较结果发送调控风扇转速指令至sas控制器。
sas控制器端包括,
指令接收模块201:接收调控风扇转速指令;
风扇调控模块202:根据调控风扇转速指令调控风扇转速。
本实施例中,第一预设结温阈值包括第一低结温阈值和第一高结温阈值,第二预设结温阈值包括第二低结温阈值和第二高结温阈值;其中,第二低结温阈值低于第一低结温阈值,第二高结温阈值高于第一高结温阈值。
结温比较模块102将所获取各个cpu核的结温与第一预设结温阈值进行比较,根据比较情况触发调控风扇转速指令发送模块直接发送调控风扇转速指令至sas控制器,或将所获取各个cpu核的结温与第二预设结温阈值进行比较,根据该比较结果触发调控风扇转速指令发送模块发送调控风扇转速指令至sas控制器,具体为:
将各个cpu核的结温分别与第一低结温阈值、第一高结温阈值比较;
若有cpu核的结温大于第一高结温阈值,且其余所有cpu核的结温均大于第一低结温阈值,则标记超温标志;
若有cpu核的结温小于第一低结温阈值,且其余所有cpu核的结温均小于第一高结温阈值,则标记低温标志;
若有cpu核的结温大于第一高结温阈值,且有cpu核的结温小于第一低结温阈值,则将各个cpu核的结温分别与第二低结温阈值、第二高结温阈值比较;
若有cpu核的结温大于第二高结温阈值,且其余所有cpu核的结温均大于第二低结温阈值,则标记超温标志;
若有cpu核的结温小于第二低结温阈值,且其余所有cpu核的结温均小于第二高结温阈值,则标记低温标志;
当超温标志被标记时,发送调高风扇转速指令至sas控制器;当低温标志被标记时,发送调低风扇转速指令至sas控制器;
若有cpu核的结温大于第二高结温阈值,且有cpu核的结温小于第二低结温阈值,则发送风扇转速调至最大指令至sas控制器,且记录日志,同时退出温度调控流程。
以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。
1.一种服务器cpu结温调控方法,其特征在于,服务器有多个cpu核;
该方法包括以下步骤:
cpu处理器获取各个cpu核的结温;
将所获取各个cpu核的结温与第一预设结温阈值进行比较;
根据比较情况直接发送调控风扇转速指令至sas控制器,或将所获取各个cpu核的结温与第二预设结温阈值进行比较;第二预设结温阈值的范围大于第一预设结温阈值的范围;
当与第二预设结温阈值进行比较时,根据比较结果发送调控风扇转速指令至sas控制器;
sas控制器根据调控风扇转速指令对风扇进行调速。
2.根据权利要求1所述的服务器cpu结温调控方法,其特征在于,cpu处理器通过读取cpu温度寄存器获取cpu结温。
3.根据权利要求1或2所述的服务器cpu结温调控方法,其特征在于,cpu处理器每隔预设时间获取一次cpu结温。
4.根据权利要求1或2所述的服务器cpu结温调控方法,其特征在于,第一预设结温阈值包括第一低结温阈值和第一高结温阈值;
将所获取各个cpu核的结温与第一预设结温阈值进行比较,根据比较情况直接发送调控风扇转速指令至sas控制器,具体包括:
将各个cpu核的结温分别与第一低结温阈值、第一高结温阈值比较;
若有cpu核的结温大于第一高结温阈值,且其余所有cpu核的结温均大于第一低结温阈值,则标记超温标志;
若有cpu核的结温小于第一低结温阈值,且其余所有cpu核的结温均小于第一高结温阈值,则标记低温标志;
当超温标志被标记时,发送调高风扇转速指令至sas控制器;当低温标志被标记时,发送调低风扇转速指令至sas控制器。
5.根据权利要求4所述的服务器cpu结温调控方法,其特征在于,第二预设结温阈值包括第二低结温阈值和第二高结温阈值,第二低结温阈值低于第一低结温阈值,第二高结温阈值高于第一高结温阈值;
将所获取各个cpu核的结温与第一预设结温阈值进行比较,根据比较情况将所获取各个cpu核的结温与第二预设结温阈值进行比较,当与第二预设结温阈值进行比较时,根据比较结果发送调控风扇转速指令至sas控制器,具体包括:
若有cpu核的结温大于第一高结温阈值,且有cpu核的结温小于第一低结温阈值,则将各个cpu核的结温分别与第二低结温阈值、第二高结温阈值比较;
若有cpu核的结温大于第二高结温阈值,且其余所有cpu核的结温均大于第二低结温阈值,则标记超温标志;
若有cpu核的结温小于第二低结温阈值,且其余所有cpu核的结温均小于第二高结温阈值,则标记低温标志;
当超温标志被标记时,发送调高风扇转速指令至sas控制器;当低温标志被标记时,发送调低风扇转速指令至sas控制器。
6.根据权利要求5所述的服务器cpu结温调控方法,其特征在于,该方法还包括:
若有cpu核的结温大于第二高结温阈值,且有cpu核的结温小于第二低结温阈值,则发送风扇转速调至最大指令至sas控制器,且记录日志,同时退出温度调控流程。
7.根据权利要求1、2、5或6所述的服务器cpu结温调控方法,其特征在于,还包括以下步骤:
在sas控制器端关闭cpu温度告警策略。
8.根据权利要求1、2、5或6所述的服务器cpu结温调控方法,其特征在于,sas控制器内配置有oses管理固件。
9.一种服务器cpu结温调控装置,其特征在于,服务器有多个cpu核;
cpu处理器端包括,
cpu结温获取模块:获取各个cpu核的结温;
结温比较模块:将所获取各个cpu核的结温与第一预设结温阈值进行比较,根据比较情况触发调控风扇转速指令发送模块直接发送调控风扇转速指令至sas控制器,或将所获取各个cpu核的结温与第二预设结温阈值进行比较,根据该比较结果触发调控风扇转速指令发送模块发送调控风扇转速指令至sas控制器;第二预设结温阈值的范围大于第一预设结温阈值的范围;
调控风扇转速指令发送模块:根据比较结果发送调控风扇转速指令至sas控制器;
sas控制器端包括,
指令接收模块:接收调控风扇转速指令;
风扇调控模块:根据调控风扇转速指令调控风扇转速。
10.根据权利要求9所述的服务器cpu结温调控装置,其特征在于,第一预设结温阈值包括第一低结温阈值和第一高结温阈值,第二预设结温阈值包括第二低结温阈值和第二高结温阈值;其中,第二低结温阈值低于第一低结温阈值,第二高结温阈值高于第一高结温阈值;
结温比较模块将所获取各个cpu核的结温与第一预设结温阈值进行比较,根据比较情况触发调控风扇转速指令发送模块直接发送调控风扇转速指令至sas控制器,或将所获取各个cpu核的结温与第二预设结温阈值进行比较,根据该比较结果触发调控风扇转速指令发送模块发送调控风扇转速指令至sas控制器,具体为:
将各个cpu核的结温分别与第一低结温阈值、第一高结温阈值比较;
若有cpu核的结温大于第一高结温阈值,且其余所有cpu核的结温均大于第一低结温阈值,则标记超温标志;
若有cpu核的结温小于第一低结温阈值,且其余所有cpu核的结温均小于第一高结温阈值,则标记低温标志;
若有cpu核的结温大于第一高结温阈值,且有cpu核的结温小于第一低结温阈值,则将各个cpu核的结温分别与第二低结温阈值、第二高结温阈值比较;
若有cpu核的结温大于第二高结温阈值,且其余所有cpu核的结温均大于第二低结温阈值,则标记超温标志;
若有cpu核的结温小于第二低结温阈值,且其余所有cpu核的结温均小于第二高结温阈值,则标记低温标志;
当超温标志被标记时,发送调高风扇转速指令至sas控制器;当低温标志被标记时,发送调低风扇转速指令至sas控制器;
若有cpu核的结温大于第二高结温阈值,且有cpu核的结温小于第二低结温阈值,则发送风扇转速调至最大指令至sas控制器,且记录日志,同时退出温度调控流程。
技术总结