天天看點

基于機器學習的記憶體故障預測了解一下 | 雙11備戰

記憶體(DRAM)故障是常見的計算機硬體故障之一。在現在的大規模資料中心中,常常有記憶體故障導緻的當機事件出現。為了降低非預期的當機率,預測潛在的記憶體故障是重要手段之一。

本文通過對伺服器日志的分析,綜合伺服器的一些靜态資訊和狀态資訊,利用機器學習模型,進行伺服器記憶體故障進行預測。

特征選擇

(一)記憶體預測相關日志

伺服器記錄的和記憶體故障相關的特征可以分為三類,分别是伺服器狀态資訊,伺服器的日志記錄,以及伺服器的靜态資訊記錄。

狀态資訊

狀态資訊包括伺服器負載,CPU使用率,記憶體使用率,緩存使用率,磁盤使用率,流入流出流量,CPU溫度,記憶體溫度,記憶體功耗,總功耗等,可以反應出伺服器的整體運作狀态。狀态資訊都是時間序列資料,每分鐘都在變化。

日志資訊

日志資訊是系統運作過程中産生的與硬體狀況直接相關的日志,如mcelog 等,日志資訊主要來自帶内和帶外日志資訊。

靜态資訊

靜态資訊是指在預測任務的時間區間内保持不變的、或是表征伺服器和 記憶體屬性的特征。伺服器相關特征包括伺服器的廠商,部件Firmware資訊,上線時間、所在城市、所屬應用分組等,記憶體相關特征則包括記憶體的speed, manufacturer, type等。

(二)如何選取預測特征

為了篩選出對記憶體故障預測有幫助的特征,降低訓練資料的特征次元,我們使用了不同的方法進行了特征選擇。

T檢驗的方法

針對特征中的狀态序列資訊,我們采用T檢驗的方法來檢驗特征在記憶體故障發生前六天内的均值和正常伺服器在相同時間段内的均值有沒有顯著性差異。經過實驗,發現三個參數的差異性較為顯著,P值小于0.05。具體如表1所示。

是以,我們選擇狀态資訊中的,XXXX1、XXXX2、XXXX3 作為模型的輸入特征。

表1. 重要性較高的時序特征T檢驗結果

基于機器學習的記憶體故障預測了解一下 | 雙11備戰

系統日志選取

對于日志資訊,我們統計了發生記憶體故障的伺服器出現各不同日志内容的數量。為了讓預測具有意義(預測後還有時間做出反應),我們隻統計了記憶體故障發生5分鐘以前的日志。結果發現出現最多的是xxx log 相關的資訊。

是以,xxx log作為模型的輸入參數。

表2.記憶體故障機器中不同日志機器數量

基于機器學習的記憶體故障預測了解一下 | 雙11備戰

靜态資訊處理

針對靜态資訊,因為它們都是字元串,首先我們對這些特征各自進行編号。因為這些編号是人工引入的,而且是離散值,難以進行顯著性的統計。我們采用基于互資訊的特征選擇方法,來對不同特征進行排序。互資訊表達的是該特征與目标值的相關性程度。實驗表明記憶體的三個特性與記憶體故障的相關性較大。

是以選取XXX1、XXX2、XXX3 3個靜态資訊作為輸入。

表3. 靜态資訊相關性程度

XXX1 XXX2 XXX3
相關性系數 0.9 0.6 0.1

資料預處理

資料預處理包括滑窗處理,正負樣本平衡,和當機标簽移動。

滑窗針對的是高層資訊和日志這樣的時序序列。

雖然記憶體故障是主要硬體故障之一,但是對于資料中心的所有機器來說,發生故障的還是少數。是以存在正(記憶體故障)負(正常)樣本比例懸殊的問題。尤其當資料還是時序序列時,負樣本因為滑窗會增加很多倍,達到一比數萬的比例。如此懸殊的正負樣本比例,倘若不經任何處理,模型将難以訓練,模型會很容易把所有樣本都預測為負樣本。是以需要合适的算法,調整正負樣本的比例。

此外,因為機器的故障與機器的使用情況息息相關,存在在一段時間内有許多相關日志,但是一段時間後才發生記憶體故障的狀況,這可能是這一段時間恰好使用不頻繁或者未觸碰到故障位置造成的。為了不幹擾模型的判斷,此時需要将當機标簽向前移動到最近存在相關日志的那一段時間。

模型選擇

記憶體故障預測任務本質上是一個分類任務。模型在拿到相關的輸入特征後判斷該伺服器是否會發生記憶體記憶體故障導緻的當機。是以在模型的選擇和研究方面,我們首先選擇有監督的分類模型。

經過對比,我們最終使用了基于樹的內建模型,來進行預測。樹模型的優點包括:可以處理數字和資料的類别;可解釋性強,能夠得到判斷依據,還能輸出特征重要性排序;需要的資料量不大;泛化能力強,對正負樣本平衡性沒有過分敏感。相比于其他傳統機器學習模型,如K近鄰模型(KNN),支援向量機(SVM),決策樹等算法,擁有更強的拟合能力,能夠達到更好的實驗結果。

預測效果

以下是本文的預測模型跟業界預測效果的對比,相比目前業界水準,本文的預測模型recall 和 precision 提升至少10% 。

基于機器學習的記憶體故障預測了解一下 | 雙11備戰

繼續閱讀