劉文軍,張杰
(四川大學(xué)計算機學(xué)院,成都 610065)
一種基于BP神經(jīng)網(wǎng)絡(luò)的狀態(tài)評估模型
劉文軍,張杰
(四川大學(xué)計算機學(xué)院,成都 610065)
在體系結(jié)構(gòu)復(fù)雜、計算規(guī)模較大的集群中,內(nèi)部計算節(jié)點容易出現(xiàn)故障,主動冗余技術(shù)是保障系統(tǒng)可靠運行的常用方式。提出在主動冗余技術(shù)中構(gòu)建一種基于BP神經(jīng)網(wǎng)絡(luò)的狀態(tài)評估模型,該模型根據(jù)計算節(jié)點的歷史和當(dāng)前運行狀態(tài)對系統(tǒng)進行評估,給出其運行健康狀況。實驗表明,該模型能夠兼顧不同運行特征之間的非線性關(guān)系,提高狀態(tài)評估的準(zhǔn)確率,減少誤報率。
計算節(jié)點;主動冗余;BP神經(jīng)網(wǎng)絡(luò);狀態(tài)評估
進入云計算時代,許多任務(wù)或服務(wù)需要服務(wù)器聯(lián)合工作才能完成,因此各互聯(lián)網(wǎng)企業(yè)部署了大規(guī)模不同用途的集群,而隨著服務(wù)器集群的體系結(jié)構(gòu)日趨復(fù)雜、計算規(guī)模不斷擴大,集群內(nèi)部出現(xiàn)故障的可能性遠高于單一服務(wù)節(jié)點,出現(xiàn)故障也已成為常態(tài)[1]。2002年,Google分析了其部署在不同地域的幾十個站點的一年內(nèi)運行數(shù)據(jù),指出每年節(jié)點故障率為2-3%,即每36小時,就有一個節(jié)點發(fā)生故障[2]。
主動冗余策略,是公認的保證系統(tǒng)高可用的一種方式。實施該策略,可及時對集群內(nèi)故障節(jié)點進行隔離,將業(yè)務(wù)轉(zhuǎn)移到正常節(jié)點進行處理[3-5]。在主動冗余策略中,如何判斷集群內(nèi)計算節(jié)點的工作狀態(tài)是否正常,是非常重要的,它直接關(guān)系到主動冗余策略的有效性。狀態(tài)評估,指的是基于狀態(tài)監(jiān)視過程中獲取到的大量的設(shè)備歷史運行數(shù)據(jù)以及當(dāng)前的設(shè)備狀態(tài)信息,借助于科學(xué)的狀態(tài)評估模型對其進行分析,從而進一步對信息設(shè)備當(dāng)前的健康狀況做出判斷[6]。準(zhǔn)確、高效的狀態(tài)評估模型能夠提高主動冗余策略的有效性,保證集群的穩(wěn)定運行。因此,本文針對服務(wù)器集群信息設(shè)備領(lǐng)域的狀態(tài)評估進行了研究,提出了一種基于BP神經(jīng)網(wǎng)絡(luò)的信息設(shè)備狀態(tài)評估模型,并進行了實驗對比分析,結(jié)果表明該模型能夠提高狀態(tài)評估的準(zhǔn)確率。
信息設(shè)備運行過程中,可獲取大量的運行特征數(shù)據(jù)并加以分析,以便對設(shè)備健康狀況做出評估。這些運行特征數(shù)據(jù)之間并不是孤立的,其取值的變化是設(shè)備中不同模塊相互作用的結(jié)果,這些運行特征的取值反映了設(shè)備當(dāng)前的健康狀況。表征設(shè)備狀態(tài)的運行特征集合的選擇尤為重要,因為合理的設(shè)備狀態(tài)特征集合才能構(gòu)建出具有較高準(zhǔn)確率的評估模型。首先根據(jù)運維經(jīng)驗,把設(shè)備健康狀況相關(guān)的運行特征劃分為六個類別:Generic、CPU、Memory、Network Interfaces、Filesystems、OS。其次,對這些運行特征的獲取方法有兩種:一、從相應(yīng)的性能監(jiān)視系統(tǒng)(Performance Monitoring System,PMS)的監(jiān)控數(shù)據(jù)記錄中進行提取;二、直接通過C庫函數(shù)popen執(zhí)行相應(yīng)的shell命令來完成Linux主機設(shè)備的運行特征信息獲取[7]。不同類別的部分關(guān)鍵設(shè)備狀態(tài)特征集合整理如表1所示。
通用狀態(tài)信息類特征可以通過shell命令“uname -o-s-p”進行獲取。
處理器狀態(tài)信息類特征中,前四項可以通過shell命令“top|head-n 3|tail-n 1|awk'{print$2,$4,$14, $16}'”獲取,其他特征可以通過虛擬文件系統(tǒng)/proc/ loadavg獲取。
虛擬存儲器狀態(tài)信息類特征中,前三項可以通過shell命令“top|head-n 5|tail-n 2|cut-d':'-f2| awk'{print$2,$4}'”進行獲取,其余特征可以通過shell命令“sar-W 1 1|tail-n 1|cut-d':'-f2”進行獲取。
網(wǎng)絡(luò)接口狀態(tài)信息類特征中,網(wǎng)絡(luò)接口的數(shù)量可以通過shell命令“ifconfig|grep flags|wc-l”進行獲取,記為${n}。前六項可以通過shell命令“sar-n DEV 1 1|tail-n${n}|cut-d':'-f2”進行獲取,其余特征可以通過shell命令“sar-n EDEV 1 1|tail-n${n}|cutd':'-f2”進行獲取。
文件系統(tǒng)狀態(tài)信息類特征可以通過shell命令“sar -d-p 1 1|grep Average|cut-d':'-f2”進行獲取。
操作系統(tǒng)狀態(tài)信息類特征可以通過shell命令“top |head-n 2”進行獲取。
對信息設(shè)備進行狀態(tài)評估,最根本的工作是建立一個用于狀態(tài)評估的數(shù)學(xué)模型,通過該模型對表征設(shè)備狀態(tài)的特征集合進行計算,根據(jù)模型的輸出結(jié)果來判斷、評估設(shè)備的健康狀態(tài)。劉賢杰、沈瀟軍、唐遠等人先后對基于評估規(guī)則的狀態(tài)評估模型進行了研究[8-0],該類型的算法雖然取得了一定的評估效果,但是存在評估規(guī)則固定、沒能考慮各項特征的相互關(guān)系等問題??紤]到不同類別下的運行特征之間具有非線性關(guān)系,以及BP神經(jīng)網(wǎng)絡(luò)恰能以任意精度逼近非線性函數(shù),所以本文提出了一種基于BP神經(jīng)網(wǎng)絡(luò)的狀態(tài)評估模型對信息設(shè)備進行狀態(tài)評估。
圖1 基于BP神經(jīng)網(wǎng)絡(luò)的狀態(tài)評估模型
本文提出的基于BP神經(jīng)網(wǎng)絡(luò)的狀態(tài)評估模型,如圖1所示。這些設(shè)備的眾多運行特征將被看作特征屬性,雖然數(shù)據(jù)集中的運行特征都是基于實際運維經(jīng)驗精心選擇的,但是其中的某些特征仍然可能是無關(guān)特征,更有可能是冗余特征,因此選出最優(yōu)特征子集是十分必要的。FFSR算法是一種包裝器類特征選擇算法[11],它不僅具有包裝器類算法能選擇較小優(yōu)化特征子集的特點,還具有算法較短的優(yōu)點,因此本文采用該算法來選出最優(yōu)特征子集。然后,再把經(jīng)過特征選擇之后的樣本數(shù)據(jù)訓(xùn)練出一個BP神經(jīng)網(wǎng)絡(luò)分類器,在輸入特征信息與設(shè)備故障等級之間建立起映射關(guān)系。模型訓(xùn)練結(jié)束之后,可以對當(dāng)前的信息設(shè)備進行狀態(tài)評估,即以設(shè)備當(dāng)前的運行特征信息向量化并作為BP神經(jīng)網(wǎng)絡(luò)的輸入,BP神經(jīng)網(wǎng)絡(luò)可以根據(jù)輸入信息執(zhí)行一個分類操作,分類結(jié)果即為評估結(jié)果,也就是設(shè)備當(dāng)前所處的設(shè)備故障等級,評估結(jié)果取“良好”、“異常”、“警告”、“嚴(yán)重”之一。
本文選擇軟件Weka進行BP神經(jīng)網(wǎng)絡(luò)的構(gòu)建、訓(xùn)練、測試。狀態(tài)評估模型的建立步驟如下:
步驟1:獲取設(shè)備運行狀態(tài)特征集,并對數(shù)據(jù)進行預(yù)處理(數(shù)據(jù)離散化處理、標(biāo)注故障等級等);處理后的數(shù)據(jù)滿足以下格式:
特征屬性1 特征屬性2… … …類別屬性
實例1… … … … … …
實例2… … … … … …
…
實例N… … … … … …
步驟2:對上述獲取到的數(shù)據(jù),基于FFSR算法選擇最優(yōu)特征子集;
①設(shè)置特征子集個數(shù)M和大小N(根據(jù)需要調(diào)節(jié));
②利用SFFS算法選擇一個特征子集;
③從原始數(shù)據(jù)集中去除該子集中的特征屬性;
④重復(fù)②③步直至選擇出M個特征子集;
⑤利用FFSR算法對特征子集進行評價和精化處理,得到最優(yōu)特征子集;
⑥去除原始數(shù)據(jù)集中的冗余特征屬性,只保留最優(yōu)特征子集中的特征屬性和類別屬性;
步驟3:在Weka中構(gòu)建BP神經(jīng)網(wǎng)絡(luò),并對神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練;
①設(shè)置輸入層神經(jīng)元數(shù)量;
②設(shè)置輸出層神經(jīng)元數(shù)量;
③設(shè)置神經(jīng)元層數(shù)(通常為3層);
④設(shè)置隱層神經(jīng)元數(shù)量(可自行調(diào)整);
⑤設(shè)置期望的誤差率(可自行調(diào)整);
⑥設(shè)置最大迭代次數(shù)(可自行調(diào)整);
⑦對BP神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練;
步驟4:根據(jù)步驟3中訓(xùn)練過程輸出的反饋信息調(diào)整相關(guān)參數(shù),對BP神經(jīng)網(wǎng)絡(luò)進行優(yōu)化;
步驟5:經(jīng)過步驟4、5的調(diào)優(yōu)過程,最終可以得到優(yōu)化的神經(jīng)網(wǎng)絡(luò)。
BP神經(jīng)網(wǎng)絡(luò)根據(jù)當(dāng)前設(shè)備運行特征的取值構(gòu)成的輸入向量InputX=[x1,x2,…,xn]進行計算,輸出結(jié)果為OutputY∈{y1,y2,y3,y4}。其中xi代表第i個運行特征的值,y1、y2、y3、y4分別代表設(shè)備所處的不同故障等級正常、異常、告警、嚴(yán)重。
3.1 獲取設(shè)備運行特征數(shù)據(jù)集
基于第二部分描述的相關(guān)運行特征集合分類及其取值的獲取方法,本文開發(fā)了一個狀態(tài)監(jiān)視原型系統(tǒng),并在Linux主機設(shè)備上連續(xù)測量了長約兩周的系統(tǒng)運行特征數(shù)據(jù)。期間通過多次人工注入系統(tǒng)故障的方式,對獲取到的設(shè)備狀態(tài)特征運行時記錄進行類別標(biāo)注。狀態(tài)獲取原型系統(tǒng)每5分鐘獲取一次設(shè)備運行特征信息??偣搏@取了3982條記錄,其中故障等級為“良好”的記錄有2393條,故障等級為“異?!钡挠涗浻?72條,故障等級為“警告”的有524條,故障等級為“嚴(yán)重”的有393條。其中故障等級說明如下:
故障等級“良好”:系統(tǒng)正常運行,沒有出現(xiàn)異?;蛘吖收?;
故障等級“異常”:系統(tǒng)出現(xiàn)內(nèi)存泄露等異常,CPU利用率較高,每分鐘出現(xiàn)1~5個故障;
故障等級“警告”:系統(tǒng)出現(xiàn)異常,CPU平均利用率90%~95%,每分鐘出現(xiàn)故障數(shù)6~10;
故障等級“嚴(yán)重”:系統(tǒng)出現(xiàn)異常,CPU平均利用率95%以上,每分鐘出現(xiàn)故障數(shù)10個以上。
3.2 實驗對比分析
通過FFSR算法選擇最優(yōu)特征子集,最終確定24個特征屬性作為神經(jīng)網(wǎng)絡(luò)的輸入,BP神經(jīng)網(wǎng)絡(luò)采用十折交叉驗證的方式,其網(wǎng)絡(luò)結(jié)構(gòu)為3層,隱層節(jié)點數(shù)量設(shè)置為10個。本文選擇唐遠在《信息設(shè)備狀態(tài)檢修決策支持系統(tǒng)設(shè)計與實現(xiàn)》中提出的基于評估規(guī)則的狀態(tài)評估模型作對比,得到了如下實驗結(jié)果,如表2所示。
表2 狀態(tài)評估結(jié)果對比
實驗結(jié)果表明,基于BP神經(jīng)網(wǎng)絡(luò)的狀態(tài)評估模型,能夠兼顧不同運行特征之間的非線性關(guān)系,對不同的故障等級的評價效果,均明顯優(yōu)于基于評估規(guī)則的狀態(tài)評估模型。
針對信息設(shè)備領(lǐng)域狀態(tài)評估的研究現(xiàn)狀,提出了一種基于BP神經(jīng)網(wǎng)絡(luò)的狀態(tài)評估模型,然后描述了在Linux主機設(shè)備上進行設(shè)備運行特征信息的獲取方式,最后對基于BP神經(jīng)網(wǎng)絡(luò)的狀態(tài)評估模型與現(xiàn)有的基于評估規(guī)則的狀態(tài)評估模型進行了對比實驗,實驗表明本文提出的基于BP神經(jīng)網(wǎng)絡(luò)的狀態(tài)評估模型確實能夠顯著地提高狀態(tài)評估的準(zhǔn)確率,減少誤報率。
[1]Chakravorty S.,Mendes C.L.,Kale L.V.Proactive Fault Tolerance in MPI Applications Via Task Migration[M].High Performance Computing-HiPC,2006:485-496.
[2]Bosila G.Etal.MPICH-V:Toward a Scalable Fault Tolerant MPI for Volatile Nodes[C].In Supercomputing.ACM/IEEE 2002 Conference,2002.
[3]CHEN Gang,JIN Hai,ZOU Deqing,et al.A Lightweight Software System in the Cloud Environment[J].Concurrency and Computation-Practice&Experience.2015,27(12):2982-2998.
[4]DAI Hongjun,ZHAO Shulin,ZHANG Jiutian,et al.Security Enhancement of Cloud Servers with a Redundancy-Based Fault-Tolerant Cache Structure[J].Future Generation Computer Systems-The International Journal of Grid Computing and Escience.2015,52:147-155.
[5]LIU Dong.A Fault-Tolerant Architecture for ROIA in Cloud[J].Journal of Ambient Intelligence and Humanized Computing.2015,6(5): 587-595.
[6]侯曉凱,李師謙,王杰瓊等.一種基于神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)設(shè)備故障預(yù)測系統(tǒng)[J].山東理工大學(xué)學(xué)報(自然科學(xué)版),2014,28(6):29-34. [7]張杰.基于CBM的信息設(shè)備狀態(tài)檢修研究與嘗試[J].現(xiàn)代計算機,2016(4):70-74.
[8]劉賢杰,劉旭生.信息通信狀態(tài)檢修系統(tǒng)中狀態(tài)評價體系的探索與實踐[J].電力信息與通信技術(shù),2012(6):64-66.
[9]沈瀟軍,洪建光,蔣鴻城等.信息設(shè)備狀態(tài)檢修研究與應(yīng)用[J].電力信息與通信技術(shù),2015(2):43-47.
[10]唐遠.信息設(shè)備狀態(tài)檢修決策支持系統(tǒng)設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2015.
[11]葉吉祥,龔希齡.一種快速的Wrapper式特征子集選擇新方法[J].長沙理工大學(xué)學(xué)報(自然科學(xué)版),2010(04):54-57.
A State Evaluation Model Based on BP Neural Network
LIU Wen-jun,ZHANG Jie
(College of Computer Science,Sichuan University,Chengdu 610065)
In the cluster with complex structure and large scale,the internal nodes are prone to failure,and the active redundancy technology is a common way to ensure the reliable operation of the system.Puts forward an evaluation model based on BP neural network in active redundancy technology,evaluates the history and current condition of the system based on the model of computing nodes,and gives its operational health.Experimental results show that the model can take into account the nonlinear relationship between different run-time indicators,improve the accuracy of state assessment,and reduce the false alarm rate.
Compute Node;Active Redundancy;State Evaluation;BP Neural Network
1007-1423(2017)04-0007-05
10.3969/j.issn.1007-1423.2017.04.002
劉文軍(1990-),男,碩士,研究方向為網(wǎng)絡(luò)與信息安全
2016-12-13
2017-01-20
張杰(1990-),男,碩士,研究方向為網(wǎng)絡(luò)與信息安全