劉文軍,張杰
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610065)
一種基于BP神經(jīng)網(wǎng)絡(luò)的狀態(tài)評(píng)估模型
劉文軍,張杰
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610065)
在體系結(jié)構(gòu)復(fù)雜、計(jì)算規(guī)模較大的集群中,內(nèi)部計(jì)算節(jié)點(diǎn)容易出現(xiàn)故障,主動(dòng)冗余技術(shù)是保障系統(tǒng)可靠運(yùn)行的常用方式。提出在主動(dòng)冗余技術(shù)中構(gòu)建一種基于BP神經(jīng)網(wǎng)絡(luò)的狀態(tài)評(píng)估模型,該模型根據(jù)計(jì)算節(jié)點(diǎn)的歷史和當(dāng)前運(yùn)行狀態(tài)對(duì)系統(tǒng)進(jìn)行評(píng)估,給出其運(yùn)行健康狀況。實(shí)驗(yàn)表明,該模型能夠兼顧不同運(yùn)行特征之間的非線性關(guān)系,提高狀態(tài)評(píng)估的準(zhǔn)確率,減少誤報(bào)率。
計(jì)算節(jié)點(diǎn);主動(dòng)冗余;BP神經(jīng)網(wǎng)絡(luò);狀態(tài)評(píng)估
進(jìn)入云計(jì)算時(shí)代,許多任務(wù)或服務(wù)需要服務(wù)器聯(lián)合工作才能完成,因此各互聯(lián)網(wǎng)企業(yè)部署了大規(guī)模不同用途的集群,而隨著服務(wù)器集群的體系結(jié)構(gòu)日趨復(fù)雜、計(jì)算規(guī)模不斷擴(kuò)大,集群內(nèi)部出現(xiàn)故障的可能性遠(yuǎn)高于單一服務(wù)節(jié)點(diǎn),出現(xiàn)故障也已成為常態(tài)[1]。2002年,Google分析了其部署在不同地域的幾十個(gè)站點(diǎn)的一年內(nèi)運(yùn)行數(shù)據(jù),指出每年節(jié)點(diǎn)故障率為2-3%,即每36小時(shí),就有一個(gè)節(jié)點(diǎn)發(fā)生故障[2]。
主動(dòng)冗余策略,是公認(rèn)的保證系統(tǒng)高可用的一種方式。實(shí)施該策略,可及時(shí)對(duì)集群內(nèi)故障節(jié)點(diǎn)進(jìn)行隔離,將業(yè)務(wù)轉(zhuǎn)移到正常節(jié)點(diǎn)進(jìn)行處理[3-5]。在主動(dòng)冗余策略中,如何判斷集群內(nèi)計(jì)算節(jié)點(diǎn)的工作狀態(tài)是否正常,是非常重要的,它直接關(guān)系到主動(dòng)冗余策略的有效性。狀態(tài)評(píng)估,指的是基于狀態(tài)監(jiān)視過(guò)程中獲取到的大量的設(shè)備歷史運(yùn)行數(shù)據(jù)以及當(dāng)前的設(shè)備狀態(tài)信息,借助于科學(xué)的狀態(tài)評(píng)估模型對(duì)其進(jìn)行分析,從而進(jìn)一步對(duì)信息設(shè)備當(dāng)前的健康狀況做出判斷[6]。準(zhǔn)確、高效的狀態(tài)評(píng)估模型能夠提高主動(dòng)冗余策略的有效性,保證集群的穩(wěn)定運(yùn)行。因此,本文針對(duì)服務(wù)器集群信息設(shè)備領(lǐng)域的狀態(tài)評(píng)估進(jìn)行了研究,提出了一種基于BP神經(jīng)網(wǎng)絡(luò)的信息設(shè)備狀態(tài)評(píng)估模型,并進(jìn)行了實(shí)驗(yàn)對(duì)比分析,結(jié)果表明該模型能夠提高狀態(tài)評(píng)估的準(zhǔn)確率。
信息設(shè)備運(yùn)行過(guò)程中,可獲取大量的運(yùn)行特征數(shù)據(jù)并加以分析,以便對(duì)設(shè)備健康狀況做出評(píng)估。這些運(yùn)行特征數(shù)據(jù)之間并不是孤立的,其取值的變化是設(shè)備中不同模塊相互作用的結(jié)果,這些運(yùn)行特征的取值反映了設(shè)備當(dāng)前的健康狀況。表征設(shè)備狀態(tài)的運(yùn)行特征集合的選擇尤為重要,因?yàn)楹侠淼脑O(shè)備狀態(tài)特征集合才能構(gòu)建出具有較高準(zhǔn)確率的評(píng)估模型。首先根據(jù)運(yùn)維經(jīng)驗(yàn),把設(shè)備健康狀況相關(guān)的運(yùn)行特征劃分為六個(gè)類別:Generic、CPU、Memory、Network Interfaces、Filesystems、OS。其次,對(duì)這些運(yùn)行特征的獲取方法有兩種:一、從相應(yīng)的性能監(jiān)視系統(tǒng)(Performance Monitoring System,PMS)的監(jiān)控?cái)?shù)據(jù)記錄中進(jìn)行提取;二、直接通過(guò)C庫(kù)函數(shù)popen執(zhí)行相應(yīng)的shell命令來(lái)完成Linux主機(jī)設(shè)備的運(yùn)行特征信息獲取[7]。不同類別的部分關(guān)鍵設(shè)備狀態(tài)特征集合整理如表1所示。
通用狀態(tài)信息類特征可以通過(guò)shell命令“uname -o-s-p”進(jìn)行獲取。
處理器狀態(tài)信息類特征中,前四項(xiàng)可以通過(guò)shell命令“top|head-n 3|tail-n 1|awk'{print$2,$4,$14, $16}'”獲取,其他特征可以通過(guò)虛擬文件系統(tǒng)/proc/ loadavg獲取。
虛擬存儲(chǔ)器狀態(tài)信息類特征中,前三項(xiàng)可以通過(guò)shell命令“top|head-n 5|tail-n 2|cut-d':'-f2| awk'{print$2,$4}'”進(jìn)行獲取,其余特征可以通過(guò)shell命令“sar-W 1 1|tail-n 1|cut-d':'-f2”進(jìn)行獲取。
網(wǎng)絡(luò)接口狀態(tài)信息類特征中,網(wǎng)絡(luò)接口的數(shù)量可以通過(guò)shell命令“ifconfig|grep flags|wc-l”進(jìn)行獲取,記為${n}。前六項(xiàng)可以通過(guò)shell命令“sar-n DEV 1 1|tail-n${n}|cut-d':'-f2”進(jìn)行獲取,其余特征可以通過(guò)shell命令“sar-n EDEV 1 1|tail-n${n}|cutd':'-f2”進(jìn)行獲取。
文件系統(tǒng)狀態(tài)信息類特征可以通過(guò)shell命令“sar -d-p 1 1|grep Average|cut-d':'-f2”進(jìn)行獲取。
操作系統(tǒng)狀態(tài)信息類特征可以通過(guò)shell命令“top |head-n 2”進(jìn)行獲取。
對(duì)信息設(shè)備進(jìn)行狀態(tài)評(píng)估,最根本的工作是建立一個(gè)用于狀態(tài)評(píng)估的數(shù)學(xué)模型,通過(guò)該模型對(duì)表征設(shè)備狀態(tài)的特征集合進(jìn)行計(jì)算,根據(jù)模型的輸出結(jié)果來(lái)判斷、評(píng)估設(shè)備的健康狀態(tài)。劉賢杰、沈?yàn)t軍、唐遠(yuǎn)等人先后對(duì)基于評(píng)估規(guī)則的狀態(tài)評(píng)估模型進(jìn)行了研究[8-0],該類型的算法雖然取得了一定的評(píng)估效果,但是存在評(píng)估規(guī)則固定、沒(méi)能考慮各項(xiàng)特征的相互關(guān)系等問(wèn)題。考慮到不同類別下的運(yùn)行特征之間具有非線性關(guān)系,以及BP神經(jīng)網(wǎng)絡(luò)恰能以任意精度逼近非線性函數(shù),所以本文提出了一種基于BP神經(jīng)網(wǎng)絡(luò)的狀態(tài)評(píng)估模型對(duì)信息設(shè)備進(jìn)行狀態(tài)評(píng)估。

圖1 基于BP神經(jīng)網(wǎng)絡(luò)的狀態(tài)評(píng)估模型
本文提出的基于BP神經(jīng)網(wǎng)絡(luò)的狀態(tài)評(píng)估模型,如圖1所示。這些設(shè)備的眾多運(yùn)行特征將被看作特征屬性,雖然數(shù)據(jù)集中的運(yùn)行特征都是基于實(shí)際運(yùn)維經(jīng)驗(yàn)精心選擇的,但是其中的某些特征仍然可能是無(wú)關(guān)特征,更有可能是冗余特征,因此選出最優(yōu)特征子集是十分必要的。FFSR算法是一種包裝器類特征選擇算法[11],它不僅具有包裝器類算法能選擇較小優(yōu)化特征子集的特點(diǎn),還具有算法較短的優(yōu)點(diǎn),因此本文采用該算法來(lái)選出最優(yōu)特征子集。然后,再把經(jīng)過(guò)特征選擇之后的樣本數(shù)據(jù)訓(xùn)練出一個(gè)BP神經(jīng)網(wǎng)絡(luò)分類器,在輸入特征信息與設(shè)備故障等級(jí)之間建立起映射關(guān)系。模型訓(xùn)練結(jié)束之后,可以對(duì)當(dāng)前的信息設(shè)備進(jìn)行狀態(tài)評(píng)估,即以設(shè)備當(dāng)前的運(yùn)行特征信息向量化并作為BP神經(jīng)網(wǎng)絡(luò)的輸入,BP神經(jīng)網(wǎng)絡(luò)可以根據(jù)輸入信息執(zhí)行一個(gè)分類操作,分類結(jié)果即為評(píng)估結(jié)果,也就是設(shè)備當(dāng)前所處的設(shè)備故障等級(jí),評(píng)估結(jié)果取“良好”、“異常”、“警告”、“嚴(yán)重”之一。
本文選擇軟件Weka進(jìn)行BP神經(jīng)網(wǎng)絡(luò)的構(gòu)建、訓(xùn)練、測(cè)試。狀態(tài)評(píng)估模型的建立步驟如下:
步驟1:獲取設(shè)備運(yùn)行狀態(tài)特征集,并對(duì)數(shù)據(jù)進(jìn)行預(yù)處理(數(shù)據(jù)離散化處理、標(biāo)注故障等級(jí)等);處理后的數(shù)據(jù)滿足以下格式:
特征屬性1 特征屬性2… … …類別屬性
實(shí)例1… … … … … …
實(shí)例2… … … … … …
…
實(shí)例N… … … … … …
步驟2:對(duì)上述獲取到的數(shù)據(jù),基于FFSR算法選擇最優(yōu)特征子集;
①設(shè)置特征子集個(gè)數(shù)M和大小N(根據(jù)需要調(diào)節(jié));
②利用SFFS算法選擇一個(gè)特征子集;
③從原始數(shù)據(jù)集中去除該子集中的特征屬性;
④重復(fù)②③步直至選擇出M個(gè)特征子集;
⑤利用FFSR算法對(duì)特征子集進(jìn)行評(píng)價(jià)和精化處理,得到最優(yōu)特征子集;
⑥去除原始數(shù)據(jù)集中的冗余特征屬性,只保留最優(yōu)特征子集中的特征屬性和類別屬性;
步驟3:在Weka中構(gòu)建BP神經(jīng)網(wǎng)絡(luò),并對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(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)整);
⑦對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練;
步驟4:根據(jù)步驟3中訓(xùn)練過(guò)程輸出的反饋信息調(diào)整相關(guān)參數(shù),對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化;
步驟5:經(jīng)過(guò)步驟4、5的調(diào)優(yōu)過(guò)程,最終可以得到優(yōu)化的神經(jīng)網(wǎng)絡(luò)。
BP神經(jīng)網(wǎng)絡(luò)根據(jù)當(dāng)前設(shè)備運(yùn)行特征的取值構(gòu)成的輸入向量InputX=[x1,x2,…,xn]進(jìn)行計(jì)算,輸出結(jié)果為OutputY∈{y1,y2,y3,y4}。其中xi代表第i個(gè)運(yùn)行特征的值,y1、y2、y3、y4分別代表設(shè)備所處的不同故障等級(jí)正常、異常、告警、嚴(yán)重。
3.1 獲取設(shè)備運(yùn)行特征數(shù)據(jù)集
基于第二部分描述的相關(guān)運(yùn)行特征集合分類及其取值的獲取方法,本文開發(fā)了一個(gè)狀態(tài)監(jiān)視原型系統(tǒng),并在Linux主機(jī)設(shè)備上連續(xù)測(cè)量了長(zhǎng)約兩周的系統(tǒng)運(yùn)行特征數(shù)據(jù)。期間通過(guò)多次人工注入系統(tǒng)故障的方式,對(duì)獲取到的設(shè)備狀態(tài)特征運(yùn)行時(shí)記錄進(jìn)行類別標(biāo)注。狀態(tài)獲取原型系統(tǒng)每5分鐘獲取一次設(shè)備運(yùn)行特征信息。總共獲取了3982條記錄,其中故障等級(jí)為“良好”的記錄有2393條,故障等級(jí)為“異常”的記錄有672條,故障等級(jí)為“警告”的有524條,故障等級(jí)為“嚴(yán)重”的有393條。其中故障等級(jí)說(shuō)明如下:
故障等級(jí)“良好”:系統(tǒng)正常運(yùn)行,沒(méi)有出現(xiàn)異常或者故障;
故障等級(jí)“異常”:系統(tǒng)出現(xiàn)內(nèi)存泄露等異常,CPU利用率較高,每分鐘出現(xiàn)1~5個(gè)故障;
故障等級(jí)“警告”:系統(tǒng)出現(xiàn)異常,CPU平均利用率90%~95%,每分鐘出現(xiàn)故障數(shù)6~10;
故障等級(jí)“嚴(yán)重”:系統(tǒng)出現(xiàn)異常,CPU平均利用率95%以上,每分鐘出現(xiàn)故障數(shù)10個(gè)以上。
3.2 實(shí)驗(yàn)對(duì)比分析
通過(guò)FFSR算法選擇最優(yōu)特征子集,最終確定24個(gè)特征屬性作為神經(jīng)網(wǎng)絡(luò)的輸入,BP神經(jīng)網(wǎng)絡(luò)采用十折交叉驗(yàn)證的方式,其網(wǎng)絡(luò)結(jié)構(gòu)為3層,隱層節(jié)點(diǎn)數(shù)量設(shè)置為10個(gè)。本文選擇唐遠(yuǎn)在《信息設(shè)備狀態(tài)檢修決策支持系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》中提出的基于評(píng)估規(guī)則的狀態(tài)評(píng)估模型作對(duì)比,得到了如下實(shí)驗(yàn)結(jié)果,如表2所示。

表2 狀態(tài)評(píng)估結(jié)果對(duì)比
實(shí)驗(yàn)結(jié)果表明,基于BP神經(jīng)網(wǎng)絡(luò)的狀態(tài)評(píng)估模型,能夠兼顧不同運(yùn)行特征之間的非線性關(guān)系,對(duì)不同的故障等級(jí)的評(píng)價(jià)效果,均明顯優(yōu)于基于評(píng)估規(guī)則的狀態(tài)評(píng)估模型。
針對(duì)信息設(shè)備領(lǐng)域狀態(tài)評(píng)估的研究現(xiàn)狀,提出了一種基于BP神經(jīng)網(wǎng)絡(luò)的狀態(tài)評(píng)估模型,然后描述了在Linux主機(jī)設(shè)備上進(jìn)行設(shè)備運(yùn)行特征信息的獲取方式,最后對(duì)基于BP神經(jīng)網(wǎng)絡(luò)的狀態(tài)評(píng)估模型與現(xiàn)有的基于評(píng)估規(guī)則的狀態(tài)評(píng)估模型進(jìn)行了對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)表明本文提出的基于BP神經(jīng)網(wǎng)絡(luò)的狀態(tài)評(píng)估模型確實(shí)能夠顯著地提高狀態(tài)評(píng)估的準(zhǔn)確率,減少誤報(bào)率。
[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ù)測(cè)系統(tǒng)[J].山東理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2014,28(6):29-34. [7]張杰.基于CBM的信息設(shè)備狀態(tài)檢修研究與嘗試[J].現(xiàn)代計(jì)算機(jī),2016(4):70-74.
[8]劉賢杰,劉旭生.信息通信狀態(tài)檢修系統(tǒng)中狀態(tài)評(píng)價(jià)體系的探索與實(shí)踐[J].電力信息與通信技術(shù),2012(6):64-66.
[9]沈?yàn)t軍,洪建光,蔣鴻城等.信息設(shè)備狀態(tài)檢修研究與應(yīng)用[J].電力信息與通信技術(shù),2015(2):43-47.
[10]唐遠(yuǎn).信息設(shè)備狀態(tài)檢修決策支持系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2015.
[11]葉吉祥,龔希齡.一種快速的Wrapper式特征子集選擇新方法[J].長(zhǎng)沙理工大學(xué)學(xué)報(bào)(自然科學(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-),男,碩士,研究方向?yàn)榫W(wǎng)絡(luò)與信息安全
2016-12-13
2017-01-20
張杰(1990-),男,碩士,研究方向?yàn)榫W(wǎng)絡(luò)與信息安全