基于长短期记忆网络(LSTM)的数据中心温度预测算法
2019-12-11徐一轩伍卫国王思敏
徐一轩,伍卫国,王思敏,胡 壮,崔 舜
(西安交通大学 电子与信息工程学院,陕西 西安 710049)
0 引 言
在数据中心长期运营成本中,其能耗成本所占比率为50%左右。而在所有的能耗成本中,制冷设备的能耗所占比率约为40%。随着对提高数据中心效率的需求的不断增加,降低能耗成本的需求迫在眉睫。目前数据中心常见的冷却系统是水冷和风冷,水冷系统在散热性能上优于风冷,但是存在着技术要求和安全性能上的不足,因此风冷仍旧是主要的数据中心冷却系统。文中的温度预测方法即是针对数据中心风冷系统。现代数据中心采用的节能方法包括动态调控机房空调(computer room air conditioner,CRAC)温度设定、改善风扇电机的转速[1-2]、均衡出口温度[3-5]等来提高制冷设备散热效率,以及使用虚拟机整合工作负载[6]提高服务器能耗效率。但是,由于这种积极的优化,数据中心运营的安全空间越来越小。这个问题会随着更大的整合和密度的增加而进一步恶化[7]。例如,流行的“刀片”系统在同样的体积中包含更多的计算,在几年内将热量密度提高了七倍。这个趋势要求数据中心的监控从被动到主动,通过温度预测,服务器可以及早预测潜在的过热事件,给操作员足够的时间做出反应。
文中介绍了目前数据中心温度预测的相关工作,讨论了长短期记忆网络在数据中心温度预测方面的优势,同时提出了一种联合建模框架,并通过实验进行了验证。
1 相关工作
目前,数据中心的温度预测算法主要分为两类。第一类是基于热力学的解决方案,使用基本的热力学定律和数据中心布局来推导数据中心内不同位置的物理热力学模型[8]。文献[9]将计算流体力学(CFD)模型进行抽象和简化,牺牲一定的精确度来提高速度,该模型用矩阵表示各机柜温度对服务器入口温度的影响系数,以此来预测温度。文献[10]基于简化的热力学规律、CPU温度、利用率和气流速度来仿真服务器的温度分布。文献[11]提出一种基于热力学的简化温度模型,模型参数通过机器学习得到。然而,基于热力学的温度预测模型依赖于气流动力学在具体机房的一些假设,模型固定且有针对性,不适用于推广到不同的数据中心环境。
第二类是以数据为驱动的解决方案,使用机器学习或数据挖掘的方法来建立预测模型。文献[12]提出了一种将云模型和RBF神经网络结合的新模型,用来预测数据中心温度。文献[13]采用人工神经网络来学习和预测静态工作量分配下的稳态温度分布,该方法依赖于稳态热模型,当服务器的负载动态变化时,它们不能很好地模拟温度演变。文献[14]集成了CFD建模、无线传感和实时数据驱动预测,模拟的温度分布和传感器测量值均用于训练实时预测算法,提出了线性预测模型。现有的数据为驱动的解决方案没有考虑到温度随时序渐变的特点,对于温度来说,温度增高或降低都是一个与时序有关的渐变过程,其变化趋势对于温度预测来说极为重要。即现有模型对于温度数据的时间序列相关性的处理能力存在不足,这一点导致在温度预测方面仍有缺陷。
针对以上两个问题,文中提出一种基于长短期记忆网络的实时温度预测模型。为了实现可扩展性,基于热量传导的局部性原理来建立模型,即服务器周围的温度主要受其邻近服务器的配置影响,而距离远的服务器则对其影响不大,把这种特性称为热局部性原理。由于这种热局部特性,可以在服务器之间分配建模任务:每台服务器通过使用自身数据以及邻近服务器数据和传感器测量值来学习和模拟自身周围的温度。每个服务器建立自己的预测模型,模型的复杂性不会因为数据中心规模的扩大而增加。因此,算法在理论上可扩展到大型数据中心。文中采用以数据为中心的建模方法,从实时传感器数据和工作负载信息中训练人工神经网络模型。即使在服务器的开/关状态,工作负载,服务器组,空调设备维护等配置发生变化的情况下,也能够进行实时预测。为了实现更准确的预测,文中考虑了温度的时间序列相关性,采用对时间序列处理能力强的长短期记忆网络来建立温度预测模型。
2 基于长短期记忆神经网络的温度预测方法
2.1 基于神经网络的温度预测方法
由于大规模数据中心通常包含数以万计的服务器,多个CRAC单元和风扇,复杂的热交互和网络效应(例如,工作负载调度算法可能对温度分布产生很大影响),导致高精度的温度预测比较困难。根据前人的相关工作[15],数据中心的温度预测可以分为条件温度预测和时序温度预测。
(1)条件温度预测。不从时序角度考虑,而考虑节点的状态和周围的环境等条件。文献[4]中描述了一种条件温度预测方法。将当前节点队列上最大能耗任务的能耗、所有任务的平均能耗和最近一段时间相邻节点温度的最大最小值作为神经网络的输入,输出是当前节点的峰值温度。用这样的数据训练出的神经网络能够预测一定条件下的服务器节点的峰值温度。这种方法能够预测数据中心的热点,针对热点问题,具有更高的准确性。
(2)时序温度预测。节点的温度以及运行数据都是随时间变化的。那么可以根据历史数据建立模型,预测一段时间以后节点的温度[16]。从数据中心的历史数据中提取数据,输入主要有当前节点负载、当前节点温度以及周围可能影响节点温度的因素,输出是一段时间以后的入口温度。这里的时间间隔为预测视野,即模型要预测多长时间之后的温度。使用大量的数据能够训练出神经网络预测模型。训练出的模型能够从时序上建立输入与输出之间的关系,据此能够根据当前数据中心的实时数据计算得到一段时间以后节点的入口温度。这种方法还能被实时调用,随着数据中心的运行,可以用新的数据对网络进行更新并实时预测。
2.2 时序温度预测与LSTM
对于一般的数据中心而言,其任务量都是随时间呈周期性变化,任务量的变化是导致温度变化的主要原因。另外,在封闭的机房环境内,热量的产生与散热都是一个渐变的过程,这是选择时序预测的一个重要原因。
循环神经网络模型(recurrent neural network,RNN)是处理时间序列数据比较好的选择,它用内部的隐含层节点状态来记忆任意长度的时序输入。近些年来,RNN在自然语言处理、语音识别等领域取得了瞩目的成就。而长短期记忆网络(long short-term memory,LSTM)预测模型是RNN的一个变型,对于处理时间序列上距离较远的节点比RNN表现好,RNN在处理时间序列上间隔较长的相关节点时存在梯度爆炸或梯度消失的问题。与BP神经网络相比,LSTM对处理与时间序列相关度高的数据有优势,BP神经网络在相同的输入的情况下,输出是固定的,与输入序列关联较小,这就导致BP网络在预测温度时对温度趋势不敏感。与RNN相比,LSTM在处理时间序列上距离较远的节点时有很大的优势。使用LSTM预测模型使得预测精度有了较大的提高。
3 联合建模框架
大型数据中心的空间规模大,且多采用分区间作业调度管理机制,采用统一建模方法作温度预测效果差。因此,文中提出了一种联合建模架构,依靠每台服务器来对自身的散热环境建模并进行预测。
联合建模体系结构利用了热量产生和传播的物理特性:热量局部扩散,遵循热流体动力学模型。尽管根据本地配置机架高度,服务器位置,服务器类型,开/关状态等,模型参数可能会有很大不同,但模型结构保持不变。联合架构还有一个优势就是模型学习和预测可以以分布式方式完成。每一台服务器使用自己的数据学习神经网络模型并进行预测,相互之间没有数据依赖,非常适合分布式计算。
影响服务器入口温度的因素有很多。首先是服务器自身的状态,包括服务器CPU利用率和CPU风扇转速,还有CRAC通风口处的空气流速和温度,此外,还有服务器入口附近各个点的温度。通常,一个点的温度主要受离其较近的热源的影响,而受距离远的热源的影响很小。所以,对于当前的服务器,假设其入口温度只受其邻近几个服务器的影响,忽略其他服务器的影响。在第5节,验证了邻近服务器温度对要建立预测模型的服务器入口温度的影响程度。确定了建立联合建模框架用当前服务器及其上下邻近的两个服务器入口温度。这符合物理学规律,同时简化了问题。服务器节点之间相互影响关系如图1所示。
图1 影响服务器节点入口温度的因素
综上所述,服务器n使用自己的入口和出口温度,其邻居(n-1和n+1)的入口和出口温度,CRAC通风口处的空气速度和温度,以及自己的CPU利用率和风扇转速来建立一个模型,计算一段时间以后自己的入口温度。
最终的联合建模框架如图2所示。每一个服务器节点使用实际运行数据训练自己的神经网络模型,最终得到整个数据中心的温度分布。
图2 联合建模框架
4 神经网络的构建
4.1 数据集生成
训练神经网络的第一步就是生成数据集。表1是需要用到的变量名称及相应的符号。
表1 变量名称与符号
收集数据中心温度监控数据和服务器实际运行参数,使用这些数据来生成数据集。每隔一段时间s收集一次数据,这些数据主要是影响服务器入口温度的因素,包括服务器入口和出口温度,其邻居(n-1和n+1)的入口和出口温度,CRAC通风口处的空气速度和温度,以及自己的CPU利用率和风扇转速。在时间点t,所有数据组成的向量用P(t)表示:
P(t)=(Tin,Tout,α,φ,T+1,in,T+1,out,T-1,in,T-1,out,vfan,Tfan)
LSTM网络输入层是三维数据[samples,time_steps,features]。其中samples表示训练样本数量;time_ steps表示时间步长,即每个数据与之前多少个时间序列的输入数据有关;features表示特征值,即向量P(t)。
使用最近的R个状态来预测K时间之后的服务器入口温度,即time_steps=R,预测视野K为时间间隔s的整数倍,设k=K/s。也就是说,要使用时间点t及其最近的R个状态,来预测时间点t+k的服务器入口温度。用fk表示要求解的模型,Tt+k,in表示t+k时刻服务器入口温度,预测行为可以表示为:
Tt+k,in=fk(P(t-R+1),P(t-R+2),…,P(t-1),P(t))
fk函数的输入输出对即构成了需要的数据集的输入和输出。所以,<(P(t-R+1),P(t-R+2),…,P(t-1),P(t)),Tt+k,in>构成一条网络输入输出数据对。
4.2 LSTM神经网络结构
LSTM是RNN一个的变形。RNN是处理时间序列相关数据的最有效的工具,相比于其他神经网络,RNN的输出层的结果不仅与当前输入有关而且与上一次隐含层结果有关,这就相当于对时间序列有了一定的记忆功能。LSTM的出现解决了长期记忆的问题,LSTM通过三个阀门作用在RNN的节点上来调节之前的网络记忆状态是否作用于当前网络的计算。图3是LSTM的结构示意,其中小圆圈表示加入的阀门。
图3 LSTM的结构示意
其中,Xn,Yn表示一次输入与输出,U、W、V表示权重,hn表示隐含层状态,hn不仅与Xn有关而且与前R个隐含层输出有关,若没有阀门控制则hn可表示为f(UXn+Wn-1Sn-1+Wn-2Sn-2+…+Wn-RSn-R),即实现了与前R个输入关联。但当R较大时,即当前输出与距离较远的输入有关联时,训练模型会随R增长呈指数增长。
三个门的作用为:遗忘门(forget gate)控制之前的隐含层状态hn-1有多少保留到当前时刻hn;输入门(input gate)控制当前时刻网络的输入Xn有多少保存到隐含层状态hn;输出门(output gate)控制隐含层状态hn有多少输出到当前时刻输出值Yn。
三个控制阀门组成了LSTM的基本单元,称为cell。图4是LSTM神经网络一个单元的基本结构,其中fn表示遗忘门,in表示输入门,on表示输出门,hn表示当前单元状态。
图4 LSTM神经网络cell的基本结构
遗忘门fn可表示为:fn=δ(Wf,xXn+Wf,yYn-1+bf)。
输入门in可表示为:in=δ(Wi,xXn+Wi,yYn-1+bi)。
输出门on表示为:on=δ(Wo,xXn+Wo,yYn-1+bo)。
当前单元输出:hn=hn-1fn+intanh(WcXn+
UcYn-1+bc)。
当前单元状态:yn=ontanh(hn)。
其中δ表示sigmoid函数,作用于三个门上,其输出为[0,1],每个值表示对应的部分信息是否应该通过。0值表示不允许信息通过,1值表示让所有信息通过。而tanh函数用在了状态和输出。W为权重,如Wf,x为遗忘门对应的上一时态输出信息的权重,b表示偏置。
在实现LSTM网络时,网络结构有以下重要参数需要设置:
Activation即激活函数,默认设置为'tanh'。Recurrent_activation为循环步施加的激活函数,采用默认函数设置'hard_sigmoid'。
Dropout在深度学习网络中控制神经元按照一定概率舍弃,可以防止过拟合,一般认为设置为0.5时效果较好,文中设置为0.2。
Timestep在文中设置为12,即每个数据与之前12个时间序列的输入数据相关联。
隐含层个数通常由经验参考方法设置,一般有两种参考值2N和log2N,N为输入层节点数。当隐含层节点数设置偏少时,网络的拟合效果会下降;设置偏多时,训练时间会延长,且易陷入局部极小点。文中最终设置隐含层节点数为10。
Batch_size表示一次训练的样本数目,该参数会影响到模型的优化程度和训练速度。一般来说,Batch_size值越大,训练速度越快,即结果误差收敛越快,但是模型的泛化能力会降低。文中设置Batch_size为128。
Epochs表示迭代次数,即指使用所有样本完整训练的次数,设置Loss Function(损失函数)为MAE(平均绝对误差)表示训练结果误差,当Loss函数在收敛时即停止训练。
Optimizer即优化器,设置优化器为Adam来计算更新步长。
最后计算预测数据与真实数据的均方根误差(RMSE)来衡量预测值和实际值之间的偏差。
5 实验结果与分析
首先搭建一个小的实验环境来实现该预测算法,并且与文献[11]中提出的数据中心温度预测算法ThermoCast以及文献[14]中提出的温度预测算法进行对比。然后用文献[14]中一个包含5个服务器机架和229台服务器的高性能计算机中心(HPCC)服务器机房的实验数据,实现该预测算法来验证算法的实际适用性。
在一个小的测试平台上进行实验。测试平台由15台服务器(型号:Dell PowerEdge 850)组成,放在一个机架上。机架放在一个小房间中,由泡沫板隔热。机架上方是一个排气口,用于将热空气排出房间。空调放置在房间外,空调和房间地板的进气口相连,将冷空气直接送到机架前面,这与流行的高架地板冷却设计的冷却气流一致。在每一个服务器的入口和出口处分别放置一个无线温度传感器(型号:TelosB Mote TPR2420CA)。在地板进风口放置一个温度传感器和气流速度传感器(型号:DegreeC F333)用来监测空调冷气风速和流速。
文中收集了测试数据中心25小时的运行数据,收集的数据时间间隔是5秒。使用其中21小时的数据训练模型,剩下的4小时数据进行测试。数据是在服务器负载动态变化的情况下收集的。
首先验证并确定建立联合建模框架需要当前服务器的邻近服务器的具体数量。以其中一台服务器为例。图5展示了建立联合预测框架时用到当前及其邻近服务器台数与预测结果的均方根误差(RMSE)值的对比。基于RMSE和建模时间的综合考量,确定建立联合建模框架使用当前服务器及其上下2个邻近服务器的温度及运行数据。
图5 选用台数对预测结果RMSE的影响
选取文献[11]中提出的数据中心温度预测算法ThermoCast作为对比。ThermoCast算法基于简化的热力学规律构建温度预测模型,然后使用机器学习获取模型参数,在动态负载下的预测效果不错。预测模型的参数设置为R=12,K=600 s,即预测10分钟后的温度分布。
图6和图7分别是服务器8和服务器13的入口温度预测结果(4个小时内的观测结果)。从图中可以很明显看到,对于这三个服务器,文中预测算法能够较为精确地预测服务器入口温度。文中预测算法的RMSE值为0.27 ℃,而ThermoCast算法的RMSE值约为0.33 ℃。所以,相较于ThermoCast算法,文中提出的预测算法准确性更高。
图6 服务器8入口温度的预测结果
图7 服务器13入口温度的预测结果
将文中提出的预测算法与文献[14]中提出的基于泰勒定理的线性数据中心温度预测模型进行比较。图8是文中预测算法在K=600 s和K=300 s时的服务器入口温度预测RMSE值。从图中可以看出,文中算法有很好的预测效果。实际上,当K=600 s和K=300 s,文中温度预测算法的RMSE值分别为0.27 ℃和0.23 ℃,而文献[14]的算法仅能保证RMSE低于0.5 °C。相比之下,文中算法的预测精确度有明显提升,且算法适应性较好,不会出现预测结果偏差较大的情形。
尝试用文献[14]在密歇根州立大学高性能计算机中心(HPCC)的服务器机房收集的实验数据来验证文中预测算法。文献[14]的实验数据来自35个温度传感器和4个气流速度传感器部署在五个服务器机架上的229台服务器。这些机架排列成两行,之间有冷通道,除了将地板冷却空气从地板砖吹入冷通道的高架地板冷却系统之外,还可以在每排机架之间安装两排行式空调冷却装置。其中16个传感器部署在一个机柜的前后监控服务器入口和出口温度,每5秒收集一次数据,用这16个传感器的数据来验证文中算法。取一周共计192小时的数据来训练模型,然后用一天24小时的数据作为测试集,预测视野为600 s。图9和图10分别是一个测量服务器入口温度的传感器(Sensors A)和一个测量服务器入口温度的传感器(Sensors B)在测试集上的预测结果。
图8 文中预测算法在两种预测视野下的服务器入口温度预测的均方根误差
图9 Sensors A预测结果
图10 Sensors B预测结果
其中Sensors A在测试集上的RMSE值为0.313 ℃,平均误差为0.253 ℃。Sensors B的RMSE值为0.326 ℃,平均误差为0.256 ℃。
6 结束语
文中主要介绍了基于长短期记忆网络(LSTM)的数据中心温度预测算法,结合了根据热量局部性原理提出的联合建模框架。该预测算法有很好的适用性和扩展性。在实际搭建的平台上进行了实验,由实验结果可得,该算法能够较为准确地预测服务器入口温度,并且用一个高性能计算机中心的服务器机房收集的实验数据对算法进行了验证。在接下来的工作中,需要补充一些数据中心特殊情况(如制冷系统失效)的实验数据,以使该预测模型对突发事件有预警功能。此外,在温度预测的机制上,将继续研究通过负载调度调控服务器入口温度和控制冷却系统来调控数据中心温度,实现绿色数据中心整体温度控制机制,达到节能的效果。