吳曉鵬
文章通過對統(tǒng)計監(jiān)測應用于故障檢測的挑戰(zhàn)和優(yōu)勢分析,提出了故障檢測技術和在云環(huán)境下故障檢測技術,對于軟件系統(tǒng)的故障檢測具有一定的借鑒意義。
【關鍵詞】云環(huán)境 統(tǒng)計監(jiān)測 分布式 軟件監(jiān)測
隨著軟件技術的快速發(fā)展,當前分布式應用的不斷發(fā)展給人們帶來了巨大便利,電子郵件、電子商務、網(wǎng)上銀行等已經(jīng)成為人們?nèi)粘9ぷ骱蜕钪胁豢苫蛉钡囊徊糠?,而這些應用通常依托云計算平臺,部署成分布式軟件系統(tǒng)以提供在線服務。然而應用的多樣性以及部署環(huán)境的動態(tài)性使得分布式軟件系統(tǒng)時常出現(xiàn)故障,甚至造成巨大經(jīng)濟損失。因此及時檢測故障,并準確診斷問題原因,是確保分布式軟件系統(tǒng)提供高效和可靠服務的關鍵。
1 統(tǒng)計監(jiān)測應用于故障檢測的挑戰(zhàn)和優(yōu)勢分析
1.1 分布式軟件系統(tǒng)故障檢測技術面臨的挑戰(zhàn)
在云計算環(huán)境下,分布式軟件系統(tǒng)的故障檢測技術面臨的挑戰(zhàn)主要體現(xiàn)在以下幾個方面:
1.1.1 自動化分析
云計算環(huán)境下的分布式軟件系統(tǒng)通常由成百上千個節(jié)點構(gòu)成,同時又分為眾多層次,面對如此規(guī)模巨大的系統(tǒng),系統(tǒng)管理員無法根據(jù)經(jīng)驗人工分析系統(tǒng)所出現(xiàn)的問題。
1.1.2 問題組件檢測
分布式軟件系統(tǒng)通常由眾多組件構(gòu)成,分布在不同節(jié)點,調(diào)用各種服務,組件間交互關系復雜、關聯(lián)度高,難以準確檢測引起系統(tǒng)故障的故障組件。
1.1.3 領域知識缺少
租戶部署在云計算平臺的應用通常對平臺提供者和管理者是透明的,這就使得系統(tǒng)運維人員通過設計文檔或代碼注入獲取應用結(jié)構(gòu),進而建模分析變得困難。
1.1.4 在線檢測
許多軟件系統(tǒng)的故障經(jīng)常是在大規(guī)模運行過程中表現(xiàn)出來的,而系統(tǒng)運維人員難以在離線環(huán)境下重現(xiàn)產(chǎn)品運行中所出現(xiàn)的問題,以跟蹤定位問題原因。
1.1.5 環(huán)境適應性
執(zhí)行環(huán)境在應用運行過程中會發(fā)生動態(tài)變化(如外部負載波動、應用在多主機遷移、虛擬機資源動態(tài)調(diào)整),應用也會隨之表現(xiàn)出與環(huán)境相應的行為,難以采用離線建立的模型對系統(tǒng)狀態(tài)進行準確刻畫。
1.2 統(tǒng)計監(jiān)測方法的優(yōu)勢
為了應對以上挑戰(zhàn),近年來,統(tǒng)計監(jiān)測方法引起了工業(yè)界和學術界的關注,被廣泛應用在故障檢測技術,出現(xiàn)了較多研究成果。統(tǒng)計監(jiān)測方法是基于在線搜集的監(jiān)測數(shù)據(jù)構(gòu)建概率統(tǒng)計模型,運用模型對系統(tǒng)運行狀態(tài)進行預測與分析。將統(tǒng)計監(jiān)測應用于故障檢測具有以下優(yōu)勢:
(1)無需領域知識對系統(tǒng)行為和故障特征進行事先刻畫,具有較廣的適用范圍;
(2)實時監(jiān)測和在線分析系統(tǒng)行為,能夠有效監(jiān)測到難以在測試環(huán)境下獲取的系統(tǒng)行為;
(3)自動化分析系統(tǒng)狀態(tài),能夠簡化系統(tǒng)管理操作。
2 基于統(tǒng)計監(jiān)測的分布式軟件系統(tǒng)故障檢測技術分析
2.1 故障檢測模型的建立
基于統(tǒng)計監(jiān)測的故障檢測方法通常分為監(jiān)測、建模和檢測三個階段。
2.1.1 在監(jiān)測階段
利用監(jiān)測工具搜集各層次的監(jiān)測數(shù)據(jù)。
2.1.2 在建模階段
在系統(tǒng)正常運行情況下,建立系統(tǒng)運行狀態(tài)的概率統(tǒng)計參考模型。
2.1.3 在檢測階段
將當前運行狀態(tài)與建立的參考模型進行比較,當監(jiān)測狀態(tài)與參考模型偏離則檢測為系統(tǒng)故障。
2.2 故障檢測技術分析
故障檢測方法通??梢苑譃榛谝?guī)則和異常檢測等兩類。其分類圖見圖1所示。
基于規(guī)則的方法根據(jù)歷史故障所表現(xiàn)的現(xiàn)象來定義故障出現(xiàn)時可辨別的特征,而后將觀察到的現(xiàn)象與已定義的故障特征進行匹配。當匹配成功則檢測為故障,發(fā)出警報;否則認為系統(tǒng)運行正常。
基于異常檢測的方法為目標系統(tǒng)建立模型作為基準,將系統(tǒng)行為與基準進行對比。根據(jù)對系統(tǒng)內(nèi)部結(jié)構(gòu)的了解程度,以及監(jiān)測分析對象的不同,基于異常檢測的方法可以分為黑盒、灰盒和白盒。
2.2.1 黑盒方法
典型的是基于度量分析的方法,不需要了解系統(tǒng)內(nèi)部結(jié)構(gòu),通過調(diào)用操作系統(tǒng)提供的接口搜集監(jiān)測數(shù)據(jù)進行分析。
2.2.2 灰盒方法
典型的是基于日志分析的方法,通過分析日志信息可以了解一部分系統(tǒng)執(zhí)行路徑。
2.2.3 白盒方法
典型的是基于行為分析的方法,通過代碼注入等方式搜集各組件行為。
分布式特別是云計算環(huán)境對系統(tǒng)的可靠性有更高要求,通常采用故障容忍技術。故障容忍可以分為主動和被動副本策略。主動策略并行調(diào)用不同的副本來處理相同的請求,采用首先返回的響應作為最終結(jié)果,從而能夠獲得較高的性能。而被動策略采用主要服務來處理請求,當其失效時調(diào)用另外的可選副本服務。
3 結(jié)語
軟件系統(tǒng)的故障檢測技術成為保障分布式軟件系統(tǒng)性能與可靠性的關鍵之一。本文分析了統(tǒng)計監(jiān)測應用于故障檢測的挑戰(zhàn)和優(yōu)勢,并對故障檢測的方法進行了分類總結(jié),為此類系統(tǒng)的研究、設計與實現(xiàn)提供了參考借鑒。
參考文獻
[1]王燾,張文博,徐繼偉,魏峻,鐘華,云環(huán)境下基于統(tǒng)計監(jiān)測的分布式軟件系統(tǒng)故障檢測技術研究,2016,Vol.39:在線出版號No.8.
[2]郝麗超,吳瓊,張楠,等.云計算環(huán)境下的分布式軟件測試方法研究[C].國防科技工業(yè)試驗與測試技術發(fā)展戰(zhàn)略高層論壇,2014.
作者單位
廣州天源信息科技有限公司 廣東省廣州市 510520