徐一軒,伍衛(wèi)國,王思敏,胡 壯,崔 舜
(西安交通大學(xué) 電子與信息工程學(xué)院,陜西 西安 710049)
在數(shù)據(jù)中心長期運(yùn)營成本中,其能耗成本所占比率為50%左右。而在所有的能耗成本中,制冷設(shè)備的能耗所占比率約為40%。隨著對(duì)提高數(shù)據(jù)中心效率的需求的不斷增加,降低能耗成本的需求迫在眉睫。目前數(shù)據(jù)中心常見的冷卻系統(tǒng)是水冷和風(fēng)冷,水冷系統(tǒng)在散熱性能上優(yōu)于風(fēng)冷,但是存在著技術(shù)要求和安全性能上的不足,因此風(fēng)冷仍舊是主要的數(shù)據(jù)中心冷卻系統(tǒng)。文中的溫度預(yù)測(cè)方法即是針對(duì)數(shù)據(jù)中心風(fēng)冷系統(tǒng)?,F(xiàn)代數(shù)據(jù)中心采用的節(jié)能方法包括動(dòng)態(tài)調(diào)控機(jī)房空調(diào)(computer room air conditioner,CRAC)溫度設(shè)定、改善風(fēng)扇電機(jī)的轉(zhuǎn)速[1-2]、均衡出口溫度[3-5]等來提高制冷設(shè)備散熱效率,以及使用虛擬機(jī)整合工作負(fù)載[6]提高服務(wù)器能耗效率。但是,由于這種積極的優(yōu)化,數(shù)據(jù)中心運(yùn)營的安全空間越來越小。這個(gè)問題會(huì)隨著更大的整合和密度的增加而進(jìn)一步惡化[7]。例如,流行的“刀片”系統(tǒng)在同樣的體積中包含更多的計(jì)算,在幾年內(nèi)將熱量密度提高了七倍。這個(gè)趨勢(shì)要求數(shù)據(jù)中心的監(jiān)控從被動(dòng)到主動(dòng),通過溫度預(yù)測(cè),服務(wù)器可以及早預(yù)測(cè)潛在的過熱事件,給操作員足夠的時(shí)間做出反應(yīng)。
文中介紹了目前數(shù)據(jù)中心溫度預(yù)測(cè)的相關(guān)工作,討論了長短期記憶網(wǎng)絡(luò)在數(shù)據(jù)中心溫度預(yù)測(cè)方面的優(yōu)勢(shì),同時(shí)提出了一種聯(lián)合建??蚣埽⑼ㄟ^實(shí)驗(yàn)進(jìn)行了驗(yàn)證。
目前,數(shù)據(jù)中心的溫度預(yù)測(cè)算法主要分為兩類。第一類是基于熱力學(xué)的解決方案,使用基本的熱力學(xué)定律和數(shù)據(jù)中心布局來推導(dǎo)數(shù)據(jù)中心內(nèi)不同位置的物理熱力學(xué)模型[8]。文獻(xiàn)[9]將計(jì)算流體力學(xué)(CFD)模型進(jìn)行抽象和簡化,犧牲一定的精確度來提高速度,該模型用矩陣表示各機(jī)柜溫度對(duì)服務(wù)器入口溫度的影響系數(shù),以此來預(yù)測(cè)溫度。文獻(xiàn)[10]基于簡化的熱力學(xué)規(guī)律、CPU溫度、利用率和氣流速度來仿真服務(wù)器的溫度分布。文獻(xiàn)[11]提出一種基于熱力學(xué)的簡化溫度模型,模型參數(shù)通過機(jī)器學(xué)習(xí)得到。然而,基于熱力學(xué)的溫度預(yù)測(cè)模型依賴于氣流動(dòng)力學(xué)在具體機(jī)房的一些假設(shè),模型固定且有針對(duì)性,不適用于推廣到不同的數(shù)據(jù)中心環(huán)境。
第二類是以數(shù)據(jù)為驅(qū)動(dòng)的解決方案,使用機(jī)器學(xué)習(xí)或數(shù)據(jù)挖掘的方法來建立預(yù)測(cè)模型。文獻(xiàn)[12]提出了一種將云模型和RBF神經(jīng)網(wǎng)絡(luò)結(jié)合的新模型,用來預(yù)測(cè)數(shù)據(jù)中心溫度。文獻(xiàn)[13]采用人工神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)和預(yù)測(cè)靜態(tài)工作量分配下的穩(wěn)態(tài)溫度分布,該方法依賴于穩(wěn)態(tài)熱模型,當(dāng)服務(wù)器的負(fù)載動(dòng)態(tài)變化時(shí),它們不能很好地模擬溫度演變。文獻(xiàn)[14]集成了CFD建模、無線傳感和實(shí)時(shí)數(shù)據(jù)驅(qū)動(dòng)預(yù)測(cè),模擬的溫度分布和傳感器測(cè)量值均用于訓(xùn)練實(shí)時(shí)預(yù)測(cè)算法,提出了線性預(yù)測(cè)模型。現(xiàn)有的數(shù)據(jù)為驅(qū)動(dòng)的解決方案沒有考慮到溫度隨時(shí)序漸變的特點(diǎn),對(duì)于溫度來說,溫度增高或降低都是一個(gè)與時(shí)序有關(guān)的漸變過程,其變化趨勢(shì)對(duì)于溫度預(yù)測(cè)來說極為重要。即現(xiàn)有模型對(duì)于溫度數(shù)據(jù)的時(shí)間序列相關(guān)性的處理能力存在不足,這一點(diǎn)導(dǎo)致在溫度預(yù)測(cè)方面仍有缺陷。
針對(duì)以上兩個(gè)問題,文中提出一種基于長短期記憶網(wǎng)絡(luò)的實(shí)時(shí)溫度預(yù)測(cè)模型。為了實(shí)現(xiàn)可擴(kuò)展性,基于熱量傳導(dǎo)的局部性原理來建立模型,即服務(wù)器周圍的溫度主要受其鄰近服務(wù)器的配置影響,而距離遠(yuǎn)的服務(wù)器則對(duì)其影響不大,把這種特性稱為熱局部性原理。由于這種熱局部特性,可以在服務(wù)器之間分配建模任務(wù):每臺(tái)服務(wù)器通過使用自身數(shù)據(jù)以及鄰近服務(wù)器數(shù)據(jù)和傳感器測(cè)量值來學(xué)習(xí)和模擬自身周圍的溫度。每個(gè)服務(wù)器建立自己的預(yù)測(cè)模型,模型的復(fù)雜性不會(huì)因?yàn)閿?shù)據(jù)中心規(guī)模的擴(kuò)大而增加。因此,算法在理論上可擴(kuò)展到大型數(shù)據(jù)中心。文中采用以數(shù)據(jù)為中心的建模方法,從實(shí)時(shí)傳感器數(shù)據(jù)和工作負(fù)載信息中訓(xùn)練人工神經(jīng)網(wǎng)絡(luò)模型。即使在服務(wù)器的開/關(guān)狀態(tài),工作負(fù)載,服務(wù)器組,空調(diào)設(shè)備維護(hù)等配置發(fā)生變化的情況下,也能夠進(jìn)行實(shí)時(shí)預(yù)測(cè)。為了實(shí)現(xiàn)更準(zhǔn)確的預(yù)測(cè),文中考慮了溫度的時(shí)間序列相關(guān)性,采用對(duì)時(shí)間序列處理能力強(qiáng)的長短期記憶網(wǎng)絡(luò)來建立溫度預(yù)測(cè)模型。
由于大規(guī)模數(shù)據(jù)中心通常包含數(shù)以萬計(jì)的服務(wù)器,多個(gè)CRAC單元和風(fēng)扇,復(fù)雜的熱交互和網(wǎng)絡(luò)效應(yīng)(例如,工作負(fù)載調(diào)度算法可能對(duì)溫度分布產(chǎn)生很大影響),導(dǎo)致高精度的溫度預(yù)測(cè)比較困難。根據(jù)前人的相關(guān)工作[15],數(shù)據(jù)中心的溫度預(yù)測(cè)可以分為條件溫度預(yù)測(cè)和時(shí)序溫度預(yù)測(cè)。
(1)條件溫度預(yù)測(cè)。不從時(shí)序角度考慮,而考慮節(jié)點(diǎn)的狀態(tài)和周圍的環(huán)境等條件。文獻(xiàn)[4]中描述了一種條件溫度預(yù)測(cè)方法。將當(dāng)前節(jié)點(diǎn)隊(duì)列上最大能耗任務(wù)的能耗、所有任務(wù)的平均能耗和最近一段時(shí)間相鄰節(jié)點(diǎn)溫度的最大最小值作為神經(jīng)網(wǎng)絡(luò)的輸入,輸出是當(dāng)前節(jié)點(diǎn)的峰值溫度。用這樣的數(shù)據(jù)訓(xùn)練出的神經(jīng)網(wǎng)絡(luò)能夠預(yù)測(cè)一定條件下的服務(wù)器節(jié)點(diǎn)的峰值溫度。這種方法能夠預(yù)測(cè)數(shù)據(jù)中心的熱點(diǎn),針對(duì)熱點(diǎn)問題,具有更高的準(zhǔn)確性。
(2)時(shí)序溫度預(yù)測(cè)。節(jié)點(diǎn)的溫度以及運(yùn)行數(shù)據(jù)都是隨時(shí)間變化的。那么可以根據(jù)歷史數(shù)據(jù)建立模型,預(yù)測(cè)一段時(shí)間以后節(jié)點(diǎn)的溫度[16]。從數(shù)據(jù)中心的歷史數(shù)據(jù)中提取數(shù)據(jù),輸入主要有當(dāng)前節(jié)點(diǎn)負(fù)載、當(dāng)前節(jié)點(diǎn)溫度以及周圍可能影響節(jié)點(diǎn)溫度的因素,輸出是一段時(shí)間以后的入口溫度。這里的時(shí)間間隔為預(yù)測(cè)視野,即模型要預(yù)測(cè)多長時(shí)間之后的溫度。使用大量的數(shù)據(jù)能夠訓(xùn)練出神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型。訓(xùn)練出的模型能夠從時(shí)序上建立輸入與輸出之間的關(guān)系,據(jù)此能夠根據(jù)當(dāng)前數(shù)據(jù)中心的實(shí)時(shí)數(shù)據(jù)計(jì)算得到一段時(shí)間以后節(jié)點(diǎn)的入口溫度。這種方法還能被實(shí)時(shí)調(diào)用,隨著數(shù)據(jù)中心的運(yùn)行,可以用新的數(shù)據(jù)對(duì)網(wǎng)絡(luò)進(jìn)行更新并實(shí)時(shí)預(yù)測(cè)。
對(duì)于一般的數(shù)據(jù)中心而言,其任務(wù)量都是隨時(shí)間呈周期性變化,任務(wù)量的變化是導(dǎo)致溫度變化的主要原因。另外,在封閉的機(jī)房環(huán)境內(nèi),熱量的產(chǎn)生與散熱都是一個(gè)漸變的過程,這是選擇時(shí)序預(yù)測(cè)的一個(gè)重要原因。
循環(huán)神經(jīng)網(wǎng)絡(luò)模型(recurrent neural network,RNN)是處理時(shí)間序列數(shù)據(jù)比較好的選擇,它用內(nèi)部的隱含層節(jié)點(diǎn)狀態(tài)來記憶任意長度的時(shí)序輸入。近些年來,RNN在自然語言處理、語音識(shí)別等領(lǐng)域取得了矚目的成就。而長短期記憶網(wǎng)絡(luò)(long short-term memory,LSTM)預(yù)測(cè)模型是RNN的一個(gè)變型,對(duì)于處理時(shí)間序列上距離較遠(yuǎn)的節(jié)點(diǎn)比RNN表現(xiàn)好,RNN在處理時(shí)間序列上間隔較長的相關(guān)節(jié)點(diǎn)時(shí)存在梯度爆炸或梯度消失的問題。與BP神經(jīng)網(wǎng)絡(luò)相比,LSTM對(duì)處理與時(shí)間序列相關(guān)度高的數(shù)據(jù)有優(yōu)勢(shì),BP神經(jīng)網(wǎng)絡(luò)在相同的輸入的情況下,輸出是固定的,與輸入序列關(guān)聯(lián)較小,這就導(dǎo)致BP網(wǎng)絡(luò)在預(yù)測(cè)溫度時(shí)對(duì)溫度趨勢(shì)不敏感。與RNN相比,LSTM在處理時(shí)間序列上距離較遠(yuǎn)的節(jié)點(diǎn)時(shí)有很大的優(yōu)勢(shì)。使用LSTM預(yù)測(cè)模型使得預(yù)測(cè)精度有了較大的提高。
大型數(shù)據(jù)中心的空間規(guī)模大,且多采用分區(qū)間作業(yè)調(diào)度管理機(jī)制,采用統(tǒng)一建模方法作溫度預(yù)測(cè)效果差。因此,文中提出了一種聯(lián)合建模架構(gòu),依靠每臺(tái)服務(wù)器來對(duì)自身的散熱環(huán)境建模并進(jìn)行預(yù)測(cè)。
聯(lián)合建模體系結(jié)構(gòu)利用了熱量產(chǎn)生和傳播的物理特性:熱量局部擴(kuò)散,遵循熱流體動(dòng)力學(xué)模型。盡管根據(jù)本地配置機(jī)架高度,服務(wù)器位置,服務(wù)器類型,開/關(guān)狀態(tài)等,模型參數(shù)可能會(huì)有很大不同,但模型結(jié)構(gòu)保持不變。聯(lián)合架構(gòu)還有一個(gè)優(yōu)勢(shì)就是模型學(xué)習(xí)和預(yù)測(cè)可以以分布式方式完成。每一臺(tái)服務(wù)器使用自己的數(shù)據(jù)學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)模型并進(jìn)行預(yù)測(cè),相互之間沒有數(shù)據(jù)依賴,非常適合分布式計(jì)算。
影響服務(wù)器入口溫度的因素有很多。首先是服務(wù)器自身的狀態(tài),包括服務(wù)器CPU利用率和CPU風(fēng)扇轉(zhuǎn)速,還有CRAC通風(fēng)口處的空氣流速和溫度,此外,還有服務(wù)器入口附近各個(gè)點(diǎn)的溫度。通常,一個(gè)點(diǎn)的溫度主要受離其較近的熱源的影響,而受距離遠(yuǎn)的熱源的影響很小。所以,對(duì)于當(dāng)前的服務(wù)器,假設(shè)其入口溫度只受其鄰近幾個(gè)服務(wù)器的影響,忽略其他服務(wù)器的影響。在第5節(jié),驗(yàn)證了鄰近服務(wù)器溫度對(duì)要建立預(yù)測(cè)模型的服務(wù)器入口溫度的影響程度。確定了建立聯(lián)合建??蚣苡卯?dāng)前服務(wù)器及其上下鄰近的兩個(gè)服務(wù)器入口溫度。這符合物理學(xué)規(guī)律,同時(shí)簡化了問題。服務(wù)器節(jié)點(diǎn)之間相互影響關(guān)系如圖1所示。
圖1 影響服務(wù)器節(jié)點(diǎn)入口溫度的因素
綜上所述,服務(wù)器n使用自己的入口和出口溫度,其鄰居(n-1和n+1)的入口和出口溫度,CRAC通風(fēng)口處的空氣速度和溫度,以及自己的CPU利用率和風(fēng)扇轉(zhuǎn)速來建立一個(gè)模型,計(jì)算一段時(shí)間以后自己的入口溫度。
最終的聯(lián)合建??蚣苋鐖D2所示。每一個(gè)服務(wù)器節(jié)點(diǎn)使用實(shí)際運(yùn)行數(shù)據(jù)訓(xùn)練自己的神經(jīng)網(wǎng)絡(luò)模型,最終得到整個(gè)數(shù)據(jù)中心的溫度分布。
圖2 聯(lián)合建??蚣?/p>
訓(xùn)練神經(jīng)網(wǎng)絡(luò)的第一步就是生成數(shù)據(jù)集。表1是需要用到的變量名稱及相應(yīng)的符號(hào)。
表1 變量名稱與符號(hào)
收集數(shù)據(jù)中心溫度監(jiān)控?cái)?shù)據(jù)和服務(wù)器實(shí)際運(yùn)行參數(shù),使用這些數(shù)據(jù)來生成數(shù)據(jù)集。每隔一段時(shí)間s收集一次數(shù)據(jù),這些數(shù)據(jù)主要是影響服務(wù)器入口溫度的因素,包括服務(wù)器入口和出口溫度,其鄰居(n-1和n+1)的入口和出口溫度,CRAC通風(fēng)口處的空氣速度和溫度,以及自己的CPU利用率和風(fēng)扇轉(zhuǎn)速。在時(shí)間點(diǎn)t,所有數(shù)據(jù)組成的向量用P(t)表示:
P(t)=(Tin,Tout,α,φ,T+1,in,T+1,out,T-1,in,T-1,out,vfan,Tfan)
LSTM網(wǎng)絡(luò)輸入層是三維數(shù)據(jù)[samples,time_steps,features]。其中samples表示訓(xùn)練樣本數(shù)量;time_ steps表示時(shí)間步長,即每個(gè)數(shù)據(jù)與之前多少個(gè)時(shí)間序列的輸入數(shù)據(jù)有關(guān);features表示特征值,即向量P(t)。
使用最近的R個(gè)狀態(tài)來預(yù)測(cè)K時(shí)間之后的服務(wù)器入口溫度,即time_steps=R,預(yù)測(cè)視野K為時(shí)間間隔s的整數(shù)倍,設(shè)k=K/s。也就是說,要使用時(shí)間點(diǎn)t及其最近的R個(gè)狀態(tài),來預(yù)測(cè)時(shí)間點(diǎn)t+k的服務(wù)器入口溫度。用fk表示要求解的模型,Tt+k,in表示t+k時(shí)刻服務(wù)器入口溫度,預(yù)測(cè)行為可以表示為:
Tt+k,in=fk(P(t-R+1),P(t-R+2),…,P(t-1),P(t))
fk函數(shù)的輸入輸出對(duì)即構(gòu)成了需要的數(shù)據(jù)集的輸入和輸出。所以,<(P(t-R+1),P(t-R+2),…,P(t-1),P(t)),Tt+k,in>構(gòu)成一條網(wǎng)絡(luò)輸入輸出數(shù)據(jù)對(duì)。
LSTM是RNN一個(gè)的變形。RNN是處理時(shí)間序列相關(guān)數(shù)據(jù)的最有效的工具,相比于其他神經(jīng)網(wǎng)絡(luò),RNN的輸出層的結(jié)果不僅與當(dāng)前輸入有關(guān)而且與上一次隱含層結(jié)果有關(guān),這就相當(dāng)于對(duì)時(shí)間序列有了一定的記憶功能。LSTM的出現(xiàn)解決了長期記憶的問題,LSTM通過三個(gè)閥門作用在RNN的節(jié)點(diǎn)上來調(diào)節(jié)之前的網(wǎng)絡(luò)記憶狀態(tài)是否作用于當(dāng)前網(wǎng)絡(luò)的計(jì)算。圖3是LSTM的結(jié)構(gòu)示意,其中小圓圈表示加入的閥門。
圖3 LSTM的結(jié)構(gòu)示意
其中,Xn,Yn表示一次輸入與輸出,U、W、V表示權(quán)重,hn表示隱含層狀態(tài),hn不僅與Xn有關(guān)而且與前R個(gè)隱含層輸出有關(guān),若沒有閥門控制則hn可表示為f(UXn+Wn-1Sn-1+Wn-2Sn-2+…+Wn-RSn-R),即實(shí)現(xiàn)了與前R個(gè)輸入關(guān)聯(lián)。但當(dāng)R較大時(shí),即當(dāng)前輸出與距離較遠(yuǎn)的輸入有關(guān)聯(lián)時(shí),訓(xùn)練模型會(huì)隨R增長呈指數(shù)增長。
三個(gè)門的作用為:遺忘門(forget gate)控制之前的隱含層狀態(tài)hn-1有多少保留到當(dāng)前時(shí)刻hn;輸入門(input gate)控制當(dāng)前時(shí)刻網(wǎng)絡(luò)的輸入Xn有多少保存到隱含層狀態(tài)hn;輸出門(output gate)控制隱含層狀態(tài)hn有多少輸出到當(dāng)前時(shí)刻輸出值Yn。
三個(gè)控制閥門組成了LSTM的基本單元,稱為cell。圖4是LSTM神經(jīng)網(wǎng)絡(luò)一個(gè)單元的基本結(jié)構(gòu),其中fn表示遺忘門,in表示輸入門,on表示輸出門,hn表示當(dāng)前單元狀態(tài)。
圖4 LSTM神經(jīng)網(wǎng)絡(luò)cell的基本結(jié)構(gòu)
遺忘門fn可表示為:fn=δ(Wf,xXn+Wf,yYn-1+bf)。
輸入門in可表示為:in=δ(Wi,xXn+Wi,yYn-1+bi)。
輸出門on表示為:on=δ(Wo,xXn+Wo,yYn-1+bo)。
當(dāng)前單元輸出:hn=hn-1fn+intanh(WcXn+
UcYn-1+bc)。
當(dāng)前單元狀態(tài):yn=ontanh(hn)。
其中δ表示sigmoid函數(shù),作用于三個(gè)門上,其輸出為[0,1],每個(gè)值表示對(duì)應(yīng)的部分信息是否應(yīng)該通過。0值表示不允許信息通過,1值表示讓所有信息通過。而tanh函數(shù)用在了狀態(tài)和輸出。W為權(quán)重,如Wf,x為遺忘門對(duì)應(yīng)的上一時(shí)態(tài)輸出信息的權(quán)重,b表示偏置。
在實(shí)現(xiàn)LSTM網(wǎng)絡(luò)時(shí),網(wǎng)絡(luò)結(jié)構(gòu)有以下重要參數(shù)需要設(shè)置:
Activation即激活函數(shù),默認(rèn)設(shè)置為'tanh'。Recurrent_activation為循環(huán)步施加的激活函數(shù),采用默認(rèn)函數(shù)設(shè)置'hard_sigmoid'。
Dropout在深度學(xué)習(xí)網(wǎng)絡(luò)中控制神經(jīng)元按照一定概率舍棄,可以防止過擬合,一般認(rèn)為設(shè)置為0.5時(shí)效果較好,文中設(shè)置為0.2。
Timestep在文中設(shè)置為12,即每個(gè)數(shù)據(jù)與之前12個(gè)時(shí)間序列的輸入數(shù)據(jù)相關(guān)聯(lián)。
隱含層個(gè)數(shù)通常由經(jīng)驗(yàn)參考方法設(shè)置,一般有兩種參考值2N和log2N,N為輸入層節(jié)點(diǎn)數(shù)。當(dāng)隱含層節(jié)點(diǎn)數(shù)設(shè)置偏少時(shí),網(wǎng)絡(luò)的擬合效果會(huì)下降;設(shè)置偏多時(shí),訓(xùn)練時(shí)間會(huì)延長,且易陷入局部極小點(diǎn)。文中最終設(shè)置隱含層節(jié)點(diǎn)數(shù)為10。
Batch_size表示一次訓(xùn)練的樣本數(shù)目,該參數(shù)會(huì)影響到模型的優(yōu)化程度和訓(xùn)練速度。一般來說,Batch_size值越大,訓(xùn)練速度越快,即結(jié)果誤差收斂越快,但是模型的泛化能力會(huì)降低。文中設(shè)置Batch_size為128。
Epochs表示迭代次數(shù),即指使用所有樣本完整訓(xùn)練的次數(shù),設(shè)置Loss Function(損失函數(shù))為MAE(平均絕對(duì)誤差)表示訓(xùn)練結(jié)果誤差,當(dāng)Loss函數(shù)在收斂時(shí)即停止訓(xùn)練。
Optimizer即優(yōu)化器,設(shè)置優(yōu)化器為Adam來計(jì)算更新步長。
最后計(jì)算預(yù)測(cè)數(shù)據(jù)與真實(shí)數(shù)據(jù)的均方根誤差(RMSE)來衡量預(yù)測(cè)值和實(shí)際值之間的偏差。
首先搭建一個(gè)小的實(shí)驗(yàn)環(huán)境來實(shí)現(xiàn)該預(yù)測(cè)算法,并且與文獻(xiàn)[11]中提出的數(shù)據(jù)中心溫度預(yù)測(cè)算法ThermoCast以及文獻(xiàn)[14]中提出的溫度預(yù)測(cè)算法進(jìn)行對(duì)比。然后用文獻(xiàn)[14]中一個(gè)包含5個(gè)服務(wù)器機(jī)架和229臺(tái)服務(wù)器的高性能計(jì)算機(jī)中心(HPCC)服務(wù)器機(jī)房的實(shí)驗(yàn)數(shù)據(jù),實(shí)現(xiàn)該預(yù)測(cè)算法來驗(yàn)證算法的實(shí)際適用性。
在一個(gè)小的測(cè)試平臺(tái)上進(jìn)行實(shí)驗(yàn)。測(cè)試平臺(tái)由15臺(tái)服務(wù)器(型號(hào):Dell PowerEdge 850)組成,放在一個(gè)機(jī)架上。機(jī)架放在一個(gè)小房間中,由泡沫板隔熱。機(jī)架上方是一個(gè)排氣口,用于將熱空氣排出房間??照{(diào)放置在房間外,空調(diào)和房間地板的進(jìn)氣口相連,將冷空氣直接送到機(jī)架前面,這與流行的高架地板冷卻設(shè)計(jì)的冷卻氣流一致。在每一個(gè)服務(wù)器的入口和出口處分別放置一個(gè)無線溫度傳感器(型號(hào):TelosB Mote TPR2420CA)。在地板進(jìn)風(fēng)口放置一個(gè)溫度傳感器和氣流速度傳感器(型號(hào):DegreeC F333)用來監(jiān)測(cè)空調(diào)冷氣風(fēng)速和流速。
文中收集了測(cè)試數(shù)據(jù)中心25小時(shí)的運(yùn)行數(shù)據(jù),收集的數(shù)據(jù)時(shí)間間隔是5秒。使用其中21小時(shí)的數(shù)據(jù)訓(xùn)練模型,剩下的4小時(shí)數(shù)據(jù)進(jìn)行測(cè)試。數(shù)據(jù)是在服務(wù)器負(fù)載動(dòng)態(tài)變化的情況下收集的。
首先驗(yàn)證并確定建立聯(lián)合建??蚣苄枰?dāng)前服務(wù)器的鄰近服務(wù)器的具體數(shù)量。以其中一臺(tái)服務(wù)器為例。圖5展示了建立聯(lián)合預(yù)測(cè)框架時(shí)用到當(dāng)前及其鄰近服務(wù)器臺(tái)數(shù)與預(yù)測(cè)結(jié)果的均方根誤差(RMSE)值的對(duì)比?;赗MSE和建模時(shí)間的綜合考量,確定建立聯(lián)合建??蚣苁褂卯?dāng)前服務(wù)器及其上下2個(gè)鄰近服務(wù)器的溫度及運(yùn)行數(shù)據(jù)。
圖5 選用臺(tái)數(shù)對(duì)預(yù)測(cè)結(jié)果RMSE的影響
選取文獻(xiàn)[11]中提出的數(shù)據(jù)中心溫度預(yù)測(cè)算法ThermoCast作為對(duì)比。ThermoCast算法基于簡化的熱力學(xué)規(guī)律構(gòu)建溫度預(yù)測(cè)模型,然后使用機(jī)器學(xué)習(xí)獲取模型參數(shù),在動(dòng)態(tài)負(fù)載下的預(yù)測(cè)效果不錯(cuò)。預(yù)測(cè)模型的參數(shù)設(shè)置為R=12,K=600 s,即預(yù)測(cè)10分鐘后的溫度分布。
圖6和圖7分別是服務(wù)器8和服務(wù)器13的入口溫度預(yù)測(cè)結(jié)果(4個(gè)小時(shí)內(nèi)的觀測(cè)結(jié)果)。從圖中可以很明顯看到,對(duì)于這三個(gè)服務(wù)器,文中預(yù)測(cè)算法能夠較為精確地預(yù)測(cè)服務(wù)器入口溫度。文中預(yù)測(cè)算法的RMSE值為0.27 ℃,而ThermoCast算法的RMSE值約為0.33 ℃。所以,相較于ThermoCast算法,文中提出的預(yù)測(cè)算法準(zhǔn)確性更高。
圖6 服務(wù)器8入口溫度的預(yù)測(cè)結(jié)果
圖7 服務(wù)器13入口溫度的預(yù)測(cè)結(jié)果
將文中提出的預(yù)測(cè)算法與文獻(xiàn)[14]中提出的基于泰勒定理的線性數(shù)據(jù)中心溫度預(yù)測(cè)模型進(jìn)行比較。圖8是文中預(yù)測(cè)算法在K=600 s和K=300 s時(shí)的服務(wù)器入口溫度預(yù)測(cè)RMSE值。從圖中可以看出,文中算法有很好的預(yù)測(cè)效果。實(shí)際上,當(dāng)K=600 s和K=300 s,文中溫度預(yù)測(cè)算法的RMSE值分別為0.27 ℃和0.23 ℃,而文獻(xiàn)[14]的算法僅能保證RMSE低于0.5 °C。相比之下,文中算法的預(yù)測(cè)精確度有明顯提升,且算法適應(yīng)性較好,不會(huì)出現(xiàn)預(yù)測(cè)結(jié)果偏差較大的情形。
嘗試用文獻(xiàn)[14]在密歇根州立大學(xué)高性能計(jì)算機(jī)中心(HPCC)的服務(wù)器機(jī)房收集的實(shí)驗(yàn)數(shù)據(jù)來驗(yàn)證文中預(yù)測(cè)算法。文獻(xiàn)[14]的實(shí)驗(yàn)數(shù)據(jù)來自35個(gè)溫度傳感器和4個(gè)氣流速度傳感器部署在五個(gè)服務(wù)器機(jī)架上的229臺(tái)服務(wù)器。這些機(jī)架排列成兩行,之間有冷通道,除了將地板冷卻空氣從地板磚吹入冷通道的高架地板冷卻系統(tǒng)之外,還可以在每排機(jī)架之間安裝兩排行式空調(diào)冷卻裝置。其中16個(gè)傳感器部署在一個(gè)機(jī)柜的前后監(jiān)控服務(wù)器入口和出口溫度,每5秒收集一次數(shù)據(jù),用這16個(gè)傳感器的數(shù)據(jù)來驗(yàn)證文中算法。取一周共計(jì)192小時(shí)的數(shù)據(jù)來訓(xùn)練模型,然后用一天24小時(shí)的數(shù)據(jù)作為測(cè)試集,預(yù)測(cè)視野為600 s。圖9和圖10分別是一個(gè)測(cè)量服務(wù)器入口溫度的傳感器(Sensors A)和一個(gè)測(cè)量服務(wù)器入口溫度的傳感器(Sensors B)在測(cè)試集上的預(yù)測(cè)結(jié)果。
圖8 文中預(yù)測(cè)算法在兩種預(yù)測(cè)視野下的服務(wù)器入口溫度預(yù)測(cè)的均方根誤差
圖9 Sensors A預(yù)測(cè)結(jié)果
圖10 Sensors B預(yù)測(cè)結(jié)果
其中Sensors A在測(cè)試集上的RMSE值為0.313 ℃,平均誤差為0.253 ℃。Sensors B的RMSE值為0.326 ℃,平均誤差為0.256 ℃。
文中主要介紹了基于長短期記憶網(wǎng)絡(luò)(LSTM)的數(shù)據(jù)中心溫度預(yù)測(cè)算法,結(jié)合了根據(jù)熱量局部性原理提出的聯(lián)合建模框架。該預(yù)測(cè)算法有很好的適用性和擴(kuò)展性。在實(shí)際搭建的平臺(tái)上進(jìn)行了實(shí)驗(yàn),由實(shí)驗(yàn)結(jié)果可得,該算法能夠較為準(zhǔn)確地預(yù)測(cè)服務(wù)器入口溫度,并且用一個(gè)高性能計(jì)算機(jī)中心的服務(wù)器機(jī)房收集的實(shí)驗(yàn)數(shù)據(jù)對(duì)算法進(jìn)行了驗(yàn)證。在接下來的工作中,需要補(bǔ)充一些數(shù)據(jù)中心特殊情況(如制冷系統(tǒng)失效)的實(shí)驗(yàn)數(shù)據(jù),以使該預(yù)測(cè)模型對(duì)突發(fā)事件有預(yù)警功能。此外,在溫度預(yù)測(cè)的機(jī)制上,將繼續(xù)研究通過負(fù)載調(diào)度調(diào)控服務(wù)器入口溫度和控制冷卻系統(tǒng)來調(diào)控?cái)?shù)據(jù)中心溫度,實(shí)現(xiàn)綠色數(shù)據(jù)中心整體溫度控制機(jī)制,達(dá)到節(jié)能的效果。