方姣麗,左 克,黃 春,劉 杰,李勝?lài)?guó),盧 凱
(國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院,湖南 長(zhǎng)沙 410073)
在通往E級(jí)系統(tǒng)的道路上,可靠性(僅次于并行管理和能源效率)被視為三大挑戰(zhàn)之一。為保證系統(tǒng)的可靠性,已有許多容錯(cuò)技術(shù)被提出并應(yīng)用于系統(tǒng),主要有被動(dòng)容錯(cuò)與主動(dòng)容錯(cuò)2種機(jī)制。被動(dòng)容錯(cuò)主要是回滾恢復(fù)方法,通過(guò)定期保存程序執(zhí)行現(xiàn)場(chǎng)以及其他重要信息,并在系統(tǒng)發(fā)生故障時(shí)實(shí)施系統(tǒng)恢復(fù),保證程序能夠持續(xù)正確地運(yùn)行。而為避免系統(tǒng)發(fā)生失效,在故障及差錯(cuò)的潛伏期內(nèi)及時(shí)地發(fā)現(xiàn)故障、修復(fù)故障或者隔離故障,這就是主動(dòng)容錯(cuò)機(jī)制。相比于被動(dòng)容錯(cuò)的回滾恢復(fù)等方法,大量的研究集中在主動(dòng)容錯(cuò)的預(yù)測(cè)故障上,即預(yù)測(cè)故障的能力,這樣就可以在任何故障出現(xiàn)之前采取規(guī)避措施。這將允許在系統(tǒng)仍然正常運(yùn)行的情況下采用緩解機(jī)制,從而能夠更容易地推理全局應(yīng)用狀態(tài),并降低保存和隨后恢復(fù)數(shù)據(jù)的昂貴成本。
本文使用我國(guó)某大規(guī)模計(jì)算系統(tǒng)投產(chǎn)后的作業(yè)故障日志信息,對(duì)日志信息進(jìn)行分析處理,設(shè)計(jì)實(shí)現(xiàn)故障分析模型FD-LSTM(Fault Diagnosis-Long Short-Term Memory),主要工作有:(1)分析處理該大規(guī)模計(jì)算系統(tǒng)的日志信息,得到系統(tǒng)的故障時(shí)間分布特性和空間分布特性,并與國(guó)外系統(tǒng)的故障時(shí)空分布特性進(jìn)行了對(duì)比;(2)由于系統(tǒng)的故障類(lèi)型包括軟件故障、硬件故障、人為故障及不明原因的各種故障,采用K-Means方法對(duì)故障進(jìn)行聚類(lèi),并分析了每種故障類(lèi)型的特點(diǎn);(3)結(jié)合故障類(lèi)型、故障日志時(shí)間序列和系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)并實(shí)現(xiàn)了FD-LSTM模型;(4)通過(guò)實(shí)驗(yàn)論證了時(shí)間預(yù)測(cè)和空間預(yù)測(cè)的精度與故障聚類(lèi)類(lèi)型相關(guān),聚類(lèi)結(jié)果可以分為2類(lèi),一類(lèi)是與時(shí)間相關(guān)的故障,比如,由于熱和網(wǎng)絡(luò)的原因引起的故障,另一類(lèi)則是與時(shí)間無(wú)關(guān)的故障,比如純硬件故障的單結(jié)點(diǎn)內(nèi)存硬件故障。實(shí)驗(yàn)結(jié)果表明,與時(shí)間相關(guān)的故障類(lèi)型,基于LSTM進(jìn)行故障發(fā)生時(shí)間和故障結(jié)點(diǎn)位置的預(yù)測(cè)效果較好。故障發(fā)生時(shí)間預(yù)測(cè)的RMSE(Root Mean Square Error)可低至0.461,同時(shí),對(duì)故障發(fā)生的結(jié)點(diǎn)位置號(hào)cn進(jìn)行預(yù)測(cè),預(yù)測(cè)精度可達(dá)80.56%。
故障預(yù)測(cè)是一個(gè)被廣泛研究的領(lǐng)域。目前,已有眾多方法用來(lái)實(shí)現(xiàn)故障預(yù)測(cè),這些方法大致可以分為3類(lèi):(1)基于故障機(jī)理PoF(Physics-of-Failure)的方法,PoF是一種根據(jù)故障發(fā)生的內(nèi)在機(jī)制和根本原因進(jìn)行間接預(yù)測(cè)的方法;(2)數(shù)據(jù)驅(qū)動(dòng)DD(Data-Driven)的方法,DD是一種應(yīng)用統(tǒng)計(jì)學(xué)或者機(jī)器學(xué)習(xí)等技術(shù)手段對(duì)可靠性指標(biāo)進(jìn)行直接預(yù)測(cè)的方法;(3)融合的方法,這種方法是前2種方法的結(jié)合[1]。近年來(lái),數(shù)據(jù)驅(qū)動(dòng)的方法由于其便捷性和高效性等特點(diǎn),在實(shí)際可靠性預(yù)測(cè)中的應(yīng)用日漸廣泛。
故障時(shí)間序列是一個(gè)重要的可靠性指標(biāo),能夠展示故障的動(dòng)態(tài)演化過(guò)程,對(duì)系統(tǒng)故障的預(yù)測(cè)可以通過(guò)對(duì)故障時(shí)間序列的預(yù)測(cè)來(lái)實(shí)現(xiàn)。通過(guò)對(duì)故障預(yù)測(cè)領(lǐng)域?qū)嵺`狀況的全面調(diào)查可知,故障時(shí)間序列目前已經(jīng)可以被多種數(shù)據(jù)驅(qū)動(dòng)的方法預(yù)測(cè),可以用二維矩陣(如表1所示)來(lái)分析研究現(xiàn)狀[2],包括:(1)被預(yù)測(cè)的故障類(lèi)型;(2)所使用的預(yù)測(cè)方法。
Table 1 Failure prediction in high-performance computing systems (accuracy/recall value in %)表1 高性能計(jì)算系統(tǒng)中的故障預(yù)測(cè)(精度/召回值以%為單位)
說(shuō)明:
加了底紋的文字顯示了預(yù)測(cè)此類(lèi)故障的能力;
上標(biāo)A:不同數(shù)據(jù)集的結(jié)果;
上標(biāo)B:不同訓(xùn)練參數(shù)的結(jié)果;
上標(biāo)C:不同參數(shù)的結(jié)果差異很大;
上標(biāo)D:論文列出了幾種方法或設(shè)置;
上標(biāo)*:提供了許多結(jié)果,請(qǐng)見(jiàn)參考文獻(xiàn);
-:未給出數(shù)值結(jié)果。
表1中的水平維度對(duì)故障進(jìn)行分類(lèi),從而顯示出有哪些故障。SW/S代表軟件或系統(tǒng)故障,Node代表硬件故障,在這2種情況下,故障的根本原因都是不確定的(不是精確的)。精確的故障預(yù)測(cè)可以分為磁盤(pán)Disk、內(nèi)存和網(wǎng)絡(luò)故障預(yù)測(cè)。由于內(nèi)存和網(wǎng)絡(luò)故障沒(méi)有預(yù)測(cè)精度和召回值,故沒(méi)有列出,而GPU故障預(yù)測(cè)工作非常有限,也略去。水平維度的日志類(lèi)表示的是通過(guò)系統(tǒng)日志來(lái)預(yù)測(cè)即將發(fā)生的故障的方法。
表1所列的方法要么需要復(fù)雜的特征提取,要么無(wú)法捕獲長(zhǎng)期的依賴(lài)關(guān)系,難以適應(yīng)系統(tǒng)規(guī)模;同時(shí),這些方法沒(méi)有對(duì)故障的發(fā)生時(shí)間進(jìn)行有效預(yù)測(cè),并且也不是所有方法都給出了某一確定故障類(lèi)型的預(yù)測(cè)結(jié)果。最近 Coates 等人[24]證明,大規(guī)模的訓(xùn)練可以通過(guò)在HPC基礎(chǔ)架構(gòu)上的深度學(xué)習(xí)來(lái)完成,具有可接受的分類(lèi)性能和可伸縮的效率。
循環(huán)神經(jīng)網(wǎng)絡(luò)RNN(Recurrent Neural Network)對(duì)較長(zhǎng)時(shí)間序列的處理效果不理想,原因之一就是無(wú)法記住長(zhǎng)距離之前的信息,而LSTM 網(wǎng)絡(luò)通過(guò)引入一組存儲(chǔ)器單元,允許網(wǎng)絡(luò)學(xué)習(xí)何時(shí)忘記歷史信息以及何時(shí)用新信息更新存儲(chǔ)器單元,可以很好地處理時(shí)間敏感的數(shù)據(jù), 成功地解決了原始循環(huán)神經(jīng)網(wǎng)絡(luò)中存在的問(wèn)題。LSTM可以隨著時(shí)間的推移而忘記或重新學(xué)習(xí),使其成為了較其他 RNNs 如 Logit模型和多層感知機(jī)更好的選擇。最近有關(guān)利用日志數(shù)據(jù)對(duì)故障發(fā)生時(shí)間和故障位置進(jìn)行預(yù)測(cè)的研究成果有Das等人[25]完成的Desh。其研究表明可以使用0.5的閾值來(lái)推斷結(jié)點(diǎn)故障,即當(dāng)LSTM獲得MSE≤0.5時(shí),可以考慮使用預(yù)測(cè)結(jié)果來(lái)檢查故障。由于Desh和本文研究的日志數(shù)據(jù)記錄的故障數(shù)據(jù)來(lái)自于不同的HPC系統(tǒng),使用的日志數(shù)據(jù)格式與內(nèi)容也不相同,因此,本文利用日志數(shù)據(jù)進(jìn)行故障預(yù)測(cè),以區(qū)別于Desh,但本文將利用其研究結(jié)果的LSTM閾值來(lái)評(píng)估預(yù)測(cè)結(jié)果。
本文構(gòu)建的FD-LSTM預(yù)測(cè)模型的整體框架如圖1所示,包括輸入層、隱藏層、輸出層、網(wǎng)絡(luò)訓(xùn)練和網(wǎng)絡(luò)預(yù)測(cè)5個(gè)功能模塊。輸入層負(fù)責(zé)對(duì)原始故障時(shí)間序列進(jìn)行初步處理,包括劃分?jǐn)?shù)據(jù)集、標(biāo)準(zhǔn)化和數(shù)據(jù)分割,得到的新故障時(shí)間序列X1,X2,…,Xt滿(mǎn)足網(wǎng)絡(luò)輸入要求;隱藏層采用如圖2所示的 FD-LSTM 細(xì)胞搭建循環(huán)神經(jīng)網(wǎng)絡(luò);輸出層提供預(yù)測(cè)結(jié)果P1,P2,…,Pt;網(wǎng)絡(luò)訓(xùn)練計(jì)算模型輸出與理論輸出的損失,采用Adam 優(yōu)化算法;網(wǎng)絡(luò)預(yù)測(cè)采用迭代的方法逐點(diǎn)預(yù)測(cè),對(duì)預(yù)測(cè)結(jié)果反標(biāo)準(zhǔn)化,可以得到與測(cè)試集對(duì)應(yīng)的故障發(fā)生時(shí)間或結(jié)點(diǎn)位置。
Figure 1 Overall framework of the FD-LSTM prediction model圖1 FD-LSTM 預(yù)測(cè)模型的整體框架
在圖2所示的FD-LSTM隱藏層細(xì)胞結(jié)構(gòu)中,從細(xì)胞狀態(tài)ct-1到ct是細(xì)胞狀態(tài)的更新,細(xì)胞狀態(tài)類(lèi)似于傳送帶,直接在整個(gè)鏈上運(yùn)行,只有一些少量的線(xiàn)性交互,信息很容易在上面流轉(zhuǎn)而保持不變。LSTM 通過(guò)精心設(shè)計(jì)的稱(chēng)作為“門(mén)”的結(jié)構(gòu)來(lái)刪除或者增加信息到細(xì)胞狀態(tài)。門(mén)是一種讓信息選擇式通過(guò)的方法,包含一個(gè) Sigmoid 神經(jīng)網(wǎng)絡(luò)層和一個(gè)按位的乘法操作。f、i、o分別表示遺忘門(mén)、輸入門(mén)、輸出門(mén)。FD-LSTM網(wǎng)絡(luò)采用 BPTT (Backwards Propagation Through Time)算法進(jìn)行訓(xùn)練。下面給出FD-LSTM網(wǎng)絡(luò)的訓(xùn)練過(guò)程:
Figure 2 FD-LSTM hidden layer cell structure圖2 FD-LSTM隱藏層細(xì)胞結(jié)構(gòu)
(1)計(jì)算遺忘門(mén)的輸出值ft。FD-LSTM 的第1步是決定從單元狀態(tài)中丟棄什么信息,這是通過(guò)一個(gè)遺忘門(mén)實(shí)現(xiàn)的。遺忘門(mén)的輸入是ht-1和xt,輸出一個(gè)0~1的數(shù)值來(lái)決定單元狀態(tài)ct-1中丟棄多少信息,所以該門(mén)主要用于控制歷史信息的輸入,過(guò)濾掉沒(méi)用的信息。遺忘門(mén)的計(jì)算方法如式(1)所示:
ft=σ(Wf·[ht-1,xt]+bf)
(1)
其中,σ代表Sigmoid 激勵(lì)函數(shù),Wf代表遺忘門(mén)權(quán)值矩陣,bf代表偏置向量,xt代表當(dāng)前時(shí)刻的輸入數(shù)據(jù),ht-1代表FD-LSTM 單元前一時(shí)刻的輸出值。
(2)計(jì)算輸入門(mén)的值。包含2部分內(nèi)容:①輸入門(mén) Input Gate 的值,也就是決定哪些信息需要更新;②一個(gè) tanh 層生成的向量δ,也就是備選的用來(lái)更新的內(nèi)容。這2部分的計(jì)算如式(2)和式(3)所示:
it=σ(Wi·[ht-1,xt]+bi)
(2)
δt=tanh(Wc·[ht-1,xt]+bc)
(3)
其中,Wi是輸入門(mén)的權(quán)值矩陣,bi是當(dāng)前時(shí)刻的偏置向量,tanh 是雙曲正切激活函數(shù),Wc,bc分別是計(jì)算單元狀態(tài)的權(quán)值矩陣和偏置向量。
(3)更新舊的單元狀態(tài)。將向量ct-1更新為向量ct,讓舊的單元狀態(tài)和遺忘門(mén)的輸出ft按元素相乘,丟棄掉不需要的信息,然后加上it·δt組成的新的候選值向量,也就是決定添加多少新的信息到單元狀態(tài)。更新單元狀態(tài)的實(shí)質(zhì)就是丟棄舊信息,添加新信息。更新過(guò)程如式(4)所示:
ct=ft·ct-1+it·δt
(4)
(4)計(jì)算輸出門(mén)的值。輸出門(mén)使用 Sigmoid 激活函數(shù)確定最終輸出哪些信息。然后,單元狀態(tài)經(jīng)過(guò) tanh 激活函數(shù),由于 tanh 的輸出值在-1~1,所以輸出一個(gè)元素值為-1~1的向量,并將該向量和輸出門(mén)的輸出按元素相乘,最終確定要輸出的信息。計(jì)算方法如式(5)和式(6)所示:
ot=σ(Wo·[ht-1,xt]+bo)
(5)
ht=ot*tanh(ct)
(6)
其中,Wo為輸出門(mén)的權(quán)值矩陣,bo為當(dāng)前時(shí)刻的偏置向量,ht為t時(shí)刻FD-LSTM 單元的輸出,ot為輸出門(mén)的輸出。
(5)反向調(diào)整。
FD-LSTM 網(wǎng)絡(luò)模型參數(shù)反向調(diào)整使用的是最小化代價(jià)函數(shù)方法,能夠使輸出值盡可能逼近目標(biāo)值。假設(shè)RUL(t)為t時(shí)刻的RUL真實(shí)值,RULest(t)是t時(shí)刻的 RUL預(yù)測(cè)值。FD-LSTM 使用式(7)得到損失函數(shù):
J(t)=∑‖RUL(t)-RULest(t)‖2
(7)
對(duì)于FD-LSTM 梯度優(yōu)化問(wèn)題,常見(jiàn)的優(yōu)化算法有 AdaGrad、RMSprop、隨機(jī)梯度下降法 SGD(Stochastic Gradient Descent) 和適應(yīng)性動(dòng)量估計(jì)算法Adam(Adaptive moment estimation)等。本文選用Adam算法,該算法是一種有效的基于梯度的隨機(jī)優(yōu)化方法,融合了AdaGrad和RMSPro算法的優(yōu)勢(shì),能夠?qū)Σ煌瑓?shù)計(jì)算適應(yīng)性學(xué)習(xí)率并且占用較少的存儲(chǔ)資源。相比于其他隨機(jī)優(yōu)化方法,Adam算法在實(shí)際應(yīng)用中整體表現(xiàn)更優(yōu)[26]。
聚類(lèi)分析法是大數(shù)據(jù)挖掘的主要手段之一。系統(tǒng)的故障類(lèi)型包括軟件故障、硬件故障、人為故障以及不明原因的各種故障,可以使用K-Means對(duì)故障類(lèi)型進(jìn)行聚類(lèi)。在使用K-Means對(duì)故障進(jìn)行聚類(lèi)時(shí),K值的確定方法為手肘法,其核心指標(biāo)是誤差平方和SSE(Sum of the Squared Errors),其計(jì)算表達(dá)式為:
(8)
其中,Ci是第i個(gè)簇,p是Ci中的樣本點(diǎn),mi是Ci的質(zhì)心(Ci中所有樣本的均值),SSE是所有樣本的聚類(lèi)誤差,代表了聚類(lèi)效果的好壞。其核心思想是:隨著聚類(lèi)數(shù)K的增大,樣本劃分會(huì)更加精細(xì),每個(gè)簇的聚合程度會(huì)逐漸提高,那么誤差平方和SSE自然會(huì)逐漸變小。當(dāng)K小于真實(shí)聚類(lèi)數(shù)時(shí),由于K的增大會(huì)大幅增加每個(gè)簇的聚合程度,故SSE的下降幅度會(huì)很大;而當(dāng)K到達(dá)真實(shí)聚類(lèi)數(shù)時(shí),再增加K所得到的聚合程度會(huì)迅速變小,所以SSE的下降幅度會(huì)驟減;然后隨著K值的繼續(xù)增大而趨于平緩。也就是說(shuō)SSE和K的關(guān)系圖是一個(gè)手肘的形狀,而這個(gè)肘部對(duì)應(yīng)的K值就是數(shù)據(jù)的真實(shí)聚類(lèi)數(shù)。
對(duì)數(shù)據(jù)集進(jìn)行分析和預(yù)處理后,利用sklearn的預(yù)處理模塊對(duì)數(shù)據(jù)特征中的非數(shù)值特征進(jìn)行編碼,接著對(duì)所有特征進(jìn)行歸一化處理,然后轉(zhuǎn)化為有監(jiān)督學(xué)習(xí)問(wèn)題??紤]到上一故障的提前時(shí)間和故障數(shù)據(jù),本文將把監(jiān)督學(xué)習(xí)問(wèn)題作為預(yù)測(cè)當(dāng)前故障的提前時(shí)間(time-interval)。將聚類(lèi)后的故障數(shù)據(jù)集劃分為訓(xùn)練集和測(cè)試集。為了對(duì)模型進(jìn)行訓(xùn)練,利用數(shù)據(jù)集的前4/5進(jìn)行訓(xùn)練,剩下的1/5進(jìn)行評(píng)估。FD-LSTM模型中,隱藏層有50個(gè)神經(jīng)元,輸出層有1個(gè)神經(jīng)元(回歸問(wèn)題),輸入變量是一個(gè)時(shí)間步(t-1)的特征,損失函數(shù)采用MAE(Mean Absolute Error),模型采用50個(gè)epochs并且每個(gè)batch的大小為72。最后,在fit()函數(shù)中設(shè)置validation_data參數(shù),記錄訓(xùn)練集和測(cè)試集的損失,并在完成訓(xùn)練和測(cè)試后繪制損失圖。
本節(jié)將對(duì)某系統(tǒng)故障日志數(shù)據(jù)進(jìn)行分析處理,并得到該系統(tǒng)的故障時(shí)空分布特性。鑒于Mohammed等人[27]對(duì)國(guó)外的超大規(guī)模計(jì)算系統(tǒng)的組件故障分布進(jìn)行的研究,可以推斷兩者分布具有相似性,即不符合正態(tài)分布。
從某系統(tǒng)取得日志數(shù)據(jù)文件后,對(duì)部分?jǐn)?shù)據(jù)文件進(jìn)行分析處理,調(diào)整日志中故障排列順序,使數(shù)據(jù)按時(shí)間先后順序排列,由于故障發(fā)生時(shí)間不確定,同時(shí)也為了便于預(yù)測(cè)故障發(fā)生時(shí)間,按照數(shù)據(jù)集中時(shí)間先后順序計(jì)算相鄰故障發(fā)生的時(shí)間間隔(單位:s)并保存為time-interval列,排除間隔時(shí)間中的異常值后,此時(shí)數(shù)據(jù)集總共有1 048 574行。每個(gè)故障結(jié)點(diǎn)發(fā)生的故障統(tǒng)計(jì)數(shù)目如圖3所示,發(fā)生故障的結(jié)點(diǎn)數(shù)目較多,其中,管理結(jié)點(diǎn)(結(jié)點(diǎn)編號(hào)為mn3,在圖3橫坐標(biāo)的最后)的故障發(fā)生數(shù)目330 429,明顯高于其他所有結(jié)點(diǎn)的。
Figure 3 Statistics on the number of times of faulty node failure (including mn3 node)圖3 故障結(jié)點(diǎn)故障發(fā)生次數(shù)統(tǒng)計(jì)(含mn3結(jié)點(diǎn))
Figure 4 Distribution of system fault space圖4 系統(tǒng)故障空間分布
為了得到較好的預(yù)測(cè)結(jié)果,在對(duì)故障結(jié)點(diǎn)位置進(jìn)行預(yù)測(cè)的時(shí)候本文暫時(shí)不對(duì)管理結(jié)點(diǎn)進(jìn)行預(yù)測(cè),即除去數(shù)據(jù)集中管理結(jié)點(diǎn)的相關(guān)數(shù)據(jù),此時(shí)數(shù)據(jù)集總共有718 142行,為便于查看故障空間分布特征,統(tǒng)計(jì)該系統(tǒng)每個(gè)機(jī)柜的故障發(fā)生次數(shù),可以得到如圖4所示的故障空間分布。通過(guò)對(duì)故障日志數(shù)據(jù)的處理,可以驗(yàn)證故障的空間分布不服從正態(tài)分布,與Mohammed等人[27]結(jié)果(如圖4所示)相似。
圖5為故障提前時(shí)間分布特征,也并非正態(tài)分布。經(jīng)分析故障發(fā)生的間隔時(shí)間基本在0~20 s。計(jì)算各個(gè)數(shù)值變量之間的相關(guān)系數(shù),得到一個(gè)5*5矩陣,可用熱度圖可視化相關(guān)系數(shù)矩陣,如圖6所示。
Figure 5 Time distribution of fault圖5 故障發(fā)生時(shí)間分布
Figure 6 Heat chart of correlation of numerical variables圖6 數(shù)值變量相關(guān)關(guān)系熱度圖
采用手肘法得到如圖7所示的K與SSE關(guān)系圖。顯然,肘部對(duì)應(yīng)的K值為3(曲率最高),故對(duì)于這個(gè)數(shù)據(jù)集的聚類(lèi)而言,最佳聚類(lèi)數(shù)應(yīng)該選3,聚類(lèi)結(jié)果餅圖如圖8所示,由此可知,聚類(lèi)0占比58.28%,聚類(lèi)1占比22.90%,聚類(lèi)2占比18.82%。
Figure 7 K-SSE relationship diagram圖7 K-SSE關(guān)系圖
Figure 8 Pie chart of clustering results圖8 聚類(lèi)結(jié)果餅圖
聚類(lèi)結(jié)果與故障數(shù)據(jù)特征關(guān)系由圖9所示的雷達(dá)圖可知,聚類(lèi)0故障是最常見(jiàn)的故障,因此聚類(lèi)統(tǒng)計(jì)數(shù)目最多,最為頻發(fā),聚類(lèi)1故障在故障位置和故障校驗(yàn)碼上的特征最為明顯,相比于聚類(lèi)0的故障,聚類(lèi)1的故障發(fā)生頻率較低,因此可以判斷,聚類(lèi)1中嚴(yán)重程度較高的故障數(shù)高于聚類(lèi)0的,而聚類(lèi)2中嚴(yán)重程度較高的故障數(shù)最多,頻發(fā)度最低。
Figure 9 Cluster radar chart圖9 聚類(lèi)雷達(dá)圖
對(duì)故障數(shù)據(jù)及聚類(lèi)后故障類(lèi)別的故障優(yōu)先級(jí)進(jìn)行統(tǒng)計(jì),可以驗(yàn)證前述推斷,故障優(yōu)先級(jí)越高,故障嚴(yán)重程度越低。其統(tǒng)計(jì)圖如圖10所示,具體故障優(yōu)先級(jí)對(duì)應(yīng)數(shù)目如表2所示。本文在取得日志故障數(shù)據(jù)后,去除管理結(jié)點(diǎn)故障日志數(shù)據(jù)后有718 142條數(shù)據(jù),其中,故障優(yōu)先級(jí)為5和7的故障均為管理結(jié)點(diǎn)的故障優(yōu)先級(jí),因此,表2中無(wú)優(yōu)先級(jí)為5和7的故障。在進(jìn)行K-Means聚類(lèi)時(shí),數(shù)據(jù)預(yù)處理剔除了極少數(shù)異常數(shù)據(jù)。
Figure 10 Detailed fault priority ranking圖10 詳細(xì)故障優(yōu)先級(jí)分級(jí)
Table 2 Detailed fault priority ranking
HPC系統(tǒng)在硬件、軟件和應(yīng)用程序?qū)用嫔蠒?huì)發(fā)生各種各樣的故障,包括由于電源不良、網(wǎng)絡(luò)接口卡出現(xiàn)故障或無(wú)法解釋的重啟等結(jié)點(diǎn)故障,以及對(duì)并行文件系統(tǒng)的寫(xiě)入失敗故障,需要從并行文件系統(tǒng)重新啟動(dòng)的不常見(jiàn)硬件故障,工作停止了進(jìn)展但沒(méi)有失敗的工作掛起故障,以及由于浮點(diǎn)異?;蛴捎谒矐B(tài)處理器故障導(dǎo)致的內(nèi)存分段違規(guī)的作業(yè)失敗故障等等[27]。利用K-Means聚類(lèi)的故障分類(lèi)結(jié)果,分別對(duì)故障聚類(lèi)基于FD-LSTM進(jìn)行故障預(yù)測(cè),可以從模型預(yù)測(cè)結(jié)果判斷故障聚類(lèi)類(lèi)型是否與時(shí)間相關(guān)。
5.3.1 故障發(fā)生時(shí)間的預(yù)測(cè)
利用FD-LSTM模型,對(duì)K-Means聚類(lèi)的每個(gè)類(lèi)別進(jìn)行單獨(dú)的故障發(fā)生時(shí)間預(yù)測(cè)測(cè)試后繪制的損失圖如圖11所示。從訓(xùn)練與測(cè)試損失折線(xiàn)圖可以明顯看出,基于K-Means聚類(lèi)的FD-LSTM故障預(yù)測(cè)效果要優(yōu)于初始故障預(yù)測(cè)。
Figure 11 Chart of predicting training and test loss圖11 故障發(fā)生時(shí)間預(yù)測(cè)訓(xùn)練與測(cè)試損失圖
基于FD-LSTM對(duì)各個(gè)類(lèi)別進(jìn)行故障發(fā)生時(shí)間預(yù)測(cè)的RMSE如表3所示。
Table 3 RMSE based on FD-LSTM time prediction for each category表3 基于FD-LSTM的各類(lèi)別故障發(fā)生時(shí)間預(yù)測(cè)的RMSE
聚類(lèi)2類(lèi)故障發(fā)生時(shí)間實(shí)際預(yù)測(cè)結(jié)果最好,聚類(lèi)1的最差。由于某一故障發(fā)生后,受其影響結(jié)點(diǎn)編號(hào)(cn號(hào))很可能不是單一的,故而,在某一結(jié)點(diǎn)發(fā)生故障后,在幾乎沒(méi)有提前時(shí)間的情況下也很可能會(huì)相繼有幾個(gè)結(jié)點(diǎn)發(fā)生故障,因此實(shí)際很多故障發(fā)生時(shí)間極短,而預(yù)測(cè)得到的發(fā)生時(shí)間很多也極短。
5.3.2 故障結(jié)點(diǎn)位置預(yù)測(cè)
通過(guò)上述對(duì)故障提前時(shí)間的預(yù)測(cè)可知,故障聚類(lèi)類(lèi)別2的時(shí)間相關(guān)關(guān)系更加密切,因此對(duì)聚類(lèi)類(lèi)別進(jìn)行單獨(dú)的故障結(jié)點(diǎn)位置cn號(hào)預(yù)測(cè),預(yù)測(cè)測(cè)試后繪制損失圖如圖12a所示。為與之對(duì)比,再對(duì)聚類(lèi)類(lèi)別1進(jìn)行故障結(jié)點(diǎn)位置cn號(hào)預(yù)測(cè),從訓(xùn)練與測(cè)試損失折線(xiàn)圖可以看出,聚類(lèi)2擬合得更好。統(tǒng)計(jì)分析通過(guò)聚類(lèi)2對(duì)故障的發(fā)生結(jié)點(diǎn)位置進(jìn)行預(yù)測(cè)的結(jié)果,通過(guò)式(9)計(jì)算預(yù)測(cè)精度Precission:
Precission=TP/(TP+FP)
(9)
由于現(xiàn)在的分簇結(jié)構(gòu)一般是4個(gè)cn號(hào)位于一個(gè)簇內(nèi),而簇內(nèi)是共享內(nèi)存和網(wǎng)絡(luò)的,也就是說(shuō),簇內(nèi)任意一個(gè)結(jié)點(diǎn)發(fā)生故障,整個(gè)簇都需要更換。因此,TP包含正確預(yù)測(cè)的故障結(jié)點(diǎn)cn號(hào)及同簇結(jié)點(diǎn)cn號(hào)的數(shù)目。FD是錯(cuò)誤預(yù)測(cè)的故障數(shù)目計(jì)算得到的聚類(lèi)2的精度為80.56%。
Figure 12 Chart of node fault location prediction training and test loss圖12 結(jié)點(diǎn)故障位置預(yù)測(cè)訓(xùn)練與測(cè)試損失圖
研究人員一致認(rèn)為,故障預(yù)測(cè)即使不完美,精度有限,但還是有用的。假設(shè)50%的結(jié)點(diǎn)故障被正確預(yù)測(cè),而剩下的結(jié)點(diǎn)故障被錯(cuò)誤預(yù)測(cè)(假陽(yáng)性),那么就可以避免一半昂貴的檢查點(diǎn)/重新啟動(dòng),這需要通過(guò)更廉價(jià)的進(jìn)程遷移進(jìn)行全局協(xié)調(diào)[25]。
通過(guò)本文前述研究可以得知,系統(tǒng)故障的時(shí)空分布特性都不符合正態(tài)分布,故本文設(shè)計(jì)并實(shí)現(xiàn)了FD-LSTM,相比經(jīng)典LSTM,它更適用于基于故障日志時(shí)間序列的故障預(yù)測(cè)中。本文使用K-Means對(duì)故障類(lèi)型進(jìn)行聚類(lèi),聚類(lèi)結(jié)果可以分為兩大類(lèi):一類(lèi)為與時(shí)間相關(guān)的故障類(lèi)型,比如,由于熱和網(wǎng)絡(luò)的原因引起的故障;另一類(lèi)是與時(shí)間無(wú)關(guān)的故障類(lèi)型,比如純硬件故障的單結(jié)點(diǎn)內(nèi)存硬件故障。實(shí)驗(yàn)結(jié)果表明,與時(shí)間相關(guān)的故障類(lèi)型,基于FD-LSTM進(jìn)行故障發(fā)生時(shí)間和故障結(jié)點(diǎn)位置的預(yù)測(cè)效果較好。故障發(fā)生時(shí)間預(yù)測(cè)的RMSE可低達(dá)0.461。對(duì)故障發(fā)生的結(jié)點(diǎn)位置進(jìn)行預(yù)測(cè),預(yù)測(cè)精度可達(dá)80.56%。
本文對(duì)故障發(fā)生時(shí)間與發(fā)生位置的預(yù)測(cè)是相對(duì)獨(dú)立的,目前有利用LSTM和事物的時(shí)空關(guān)系進(jìn)行的研究[28],接下來(lái)可以考慮聯(lián)合故障時(shí)空信息對(duì)故障進(jìn)行預(yù)測(cè)。為了充分挖掘和利用數(shù)據(jù)信息,Wang等人[29]使用Bi-LSTM取得了很好的研究效果,因此未來(lái)的工作可以考慮使用雙向LSTM。大規(guī)模計(jì)算系統(tǒng)的故障日志數(shù)據(jù)收集難度較大,收集而來(lái)的故障日志數(shù)據(jù)需要進(jìn)行復(fù)雜的清洗處理,而故障隨時(shí)會(huì)產(chǎn)生,因此日志數(shù)據(jù)是在不斷生成的,目前也不能做到因果推理,在未來(lái)的工作中,還可以對(duì)日志進(jìn)行NLP分析,研究分析如何做到在線(xiàn)演化和因果推理,得到故障傳播模型等。