• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于深度學(xué)習(xí)的微服務(wù)故障檢測(cè)研究

      2022-08-19 08:34:24莊衛(wèi)金
      關(guān)鍵詞:架構(gòu)故障檢測(cè)

      莊衛(wèi)金,張 鴻

      中國(guó)電力科學(xué)研究院有限公司 南京分院,南京 210003

      近年來(lái),隨著企業(yè)信息化的快速發(fā)展,現(xiàn)代軟件系統(tǒng)的數(shù)量越來(lái)越多,規(guī)模越來(lái)越大,結(jié)構(gòu)也越來(lái)越復(fù)雜。面對(duì)新形勢(shì)的變化,傳統(tǒng)的系統(tǒng)架構(gòu)設(shè)計(jì)方法顯露出了明顯的弊端:系統(tǒng)變得非常臃腫冗雜,無(wú)法提供可靠的服務(wù),維護(hù)成本變得越來(lái)越高,想要擴(kuò)展一些新功能變得越來(lái)越困難[1]。而微服務(wù)則從架構(gòu)的角度出發(fā),在根本上解決了這些問(wèn)題。

      微服務(wù)的概念最早由Fowler 和Lewis[2]提出,它的核心在于將一個(gè)大的應(yīng)用系統(tǒng)按照業(yè)務(wù)邏輯劃分成若干個(gè)獨(dú)立的微服務(wù),每個(gè)微服務(wù)負(fù)責(zé)完成一項(xiàng)單一的業(yè)務(wù)功能,各個(gè)微服務(wù)之間存在清晰的邊界,并通過(guò)輕量級(jí)的通信機(jī)制(例如HTTP)進(jìn)行信息交互。由于單個(gè)微服務(wù)的復(fù)雜程度并不高,這樣每個(gè)微服務(wù)都可以由少量的開(kāi)發(fā)人員負(fù)責(zé),分別進(jìn)行開(kāi)發(fā)。而傳統(tǒng)的大型應(yīng)用服務(wù)則需要大量的開(kāi)發(fā)人員共同維護(hù)一個(gè)代碼庫(kù),維護(hù)成本、交流成本都很高,并且容易弱化開(kāi)發(fā)人員的責(zé)任意識(shí)。此外,由于采用微服務(wù)架構(gòu)的系統(tǒng)賦予了每個(gè)微服務(wù)不同的業(yè)務(wù)功能,并且彼此相互獨(dú)立,這樣當(dāng)出現(xiàn)擴(kuò)展新功能的需求時(shí),通過(guò)簡(jiǎn)單地向系統(tǒng)中添加一些新的微服務(wù)就能實(shí)現(xiàn),具有很強(qiáng)的可擴(kuò)展性??紤]到微服務(wù)架構(gòu)相對(duì)于傳統(tǒng)方法的巨大優(yōu)勢(shì),目前已經(jīng)有很多的企業(yè)采用了微服務(wù)架構(gòu),例如Twitter、Netflix、Amazon等。

      雖然微服務(wù)架構(gòu)具有更高的可維護(hù)性和可擴(kuò)展性,但同時(shí)它也為系統(tǒng)的故障檢測(cè)帶來(lái)了更大的挑戰(zhàn)。由于采用微服務(wù)架構(gòu)的軟件系統(tǒng)是由一系列彼此獨(dú)立并且更新頻繁的組件構(gòu)成的,這些組件之間還需要通過(guò)復(fù)雜的網(wǎng)絡(luò)交互模型進(jìn)行通信,從而大大增加了系統(tǒng)發(fā)生故障的幾率,并且有關(guān)故障點(diǎn)的定位也變得更加困難。除此之外,各個(gè)微服務(wù)組件之間聯(lián)系密切,相互之間往往存在依賴關(guān)系,因此一個(gè)組件發(fā)生故障就可能引發(fā)連鎖反應(yīng),影響其他組件的正常服務(wù),最終可能造成整個(gè)應(yīng)用系統(tǒng)的崩潰[3]。根據(jù)以上分析,不難得出以下結(jié)論:故障檢測(cè)問(wèn)題是阻礙微服務(wù)架構(gòu)進(jìn)一步發(fā)展的關(guān)鍵問(wèn)題之一,如何在應(yīng)用系統(tǒng)發(fā)生故障時(shí)快速定位出故障發(fā)生的位置并準(zhǔn)確地分析出故障發(fā)生的原因是當(dāng)前研究的重點(diǎn)方向,對(duì)于提高微服務(wù)架構(gòu)的服務(wù)質(zhì)量(quality of service,QoS)具有非常重要的價(jià)值和意義。

      目前關(guān)于面向微服務(wù)架構(gòu)的故障檢測(cè)方法主要有建立依賴圖(dependency graphs)和故障樹(shù)(fault trees)兩種[4]。其中依賴圖是用來(lái)對(duì)微服務(wù)架構(gòu)中各個(gè)應(yīng)用服務(wù)之間的依賴關(guān)系進(jìn)行建模,并且目前還沒(méi)有成熟的自動(dòng)構(gòu)建依賴圖的方法,已有的方法往往存在著準(zhǔn)確性不足、效率不夠高效的問(wèn)題。故障樹(shù)由Rausand 等人[5]定義,是一種可以顯示應(yīng)用系統(tǒng)中潛在關(guān)鍵事件與該事件原因之間相互關(guān)系的邏輯圖,它可以是定性的,也可以是定量的。故障樹(shù)分析就是構(gòu)造這樣一個(gè)故障樹(shù)的過(guò)程。由于一個(gè)應(yīng)用系統(tǒng)中存在著眾多的關(guān)鍵事件,這些事件與其對(duì)應(yīng)的原因之間的相互關(guān)系錯(cuò)綜復(fù)雜,因此故障樹(shù)的構(gòu)造是一個(gè)非常耗時(shí)、低效的過(guò)程,這影響了這類方法在現(xiàn)實(shí)場(chǎng)景中的應(yīng)用。

      深度學(xué)習(xí)作為機(jī)器學(xué)習(xí)研究中的一個(gè)新領(lǐng)域,近年來(lái)已經(jīng)在分類、檢測(cè)、識(shí)別等多項(xiàng)任務(wù)中取得了前所未有的成就,受到了各界的廣泛關(guān)注,但目前還沒(méi)有人嘗試將深度學(xué)習(xí)方法用于微服務(wù)架構(gòu)的故障檢測(cè)中。本文將深度學(xué)習(xí)方法引入到面向微服務(wù)架構(gòu)的故障檢測(cè)研究中,提出了一個(gè)基于門控循環(huán)單元(gated recurrent unit,GRU)[6]的故障檢測(cè)方法MS-GRU。該方法的核心在于它能夠從以往的應(yīng)用數(shù)據(jù)中分析、學(xué)習(xí)到導(dǎo)致故障發(fā)生的模式信息,并將這些信息用于未來(lái)的故障診斷和預(yù)測(cè)中,從而顯著改善了微服務(wù)架構(gòu)的服務(wù)質(zhì)量。GRU是一種特殊的循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)[7],與普通的RNN 網(wǎng)絡(luò)相比,GRU 能更好地處理長(zhǎng)范圍依賴的問(wèn)題。雖然長(zhǎng)短期記憶網(wǎng)絡(luò)(long shortterm memory,LSTM)[8]也能處理該問(wèn)題,但GRU 模型結(jié)構(gòu)更簡(jiǎn)單,處理效率更高,效果更好,因此本文選擇GRU作為基礎(chǔ)網(wǎng)絡(luò)來(lái)構(gòu)造一個(gè)高效的面向微服務(wù)架構(gòu)的故障檢測(cè)模型。為了評(píng)估本文方法的性能,進(jìn)行了廣泛的實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果證明了本文方法的有效性和優(yōu)越性。

      1 相關(guān)工作

      微服務(wù)架構(gòu)將一個(gè)大型的服務(wù)拆分成一系列相互獨(dú)立、功能各異的微服務(wù),增強(qiáng)了應(yīng)用系統(tǒng)的可擴(kuò)展性和可維護(hù)性,但同時(shí)也為系統(tǒng)內(nèi)部的故障檢測(cè)帶來(lái)了更大的挑戰(zhàn)。目前故障檢測(cè)問(wèn)題已經(jīng)成為阻礙微服務(wù)架構(gòu)進(jìn)一步發(fā)展的瓶頸。為了改善微服務(wù)架構(gòu)的服務(wù)質(zhì)量,使其能夠得到更加廣泛的應(yīng)用,近些年來(lái)研究者們針對(duì)故障檢測(cè)問(wèn)題展開(kāi)了一系列的研究。本文首先對(duì)國(guó)內(nèi)外現(xiàn)有的一些面向微服務(wù)架構(gòu)的故障檢測(cè)方法進(jìn)行詳細(xì)的介紹。

      采用傳統(tǒng)架構(gòu)的應(yīng)用系統(tǒng)通常利用人工設(shè)定報(bào)警規(guī)則[9]來(lái)進(jìn)行故障檢測(cè),但該方法并不適用于微服務(wù)架構(gòu)。這是因?yàn)椴捎梦⒎?wù)架構(gòu)的應(yīng)用系統(tǒng)中,各個(gè)微服務(wù)之間往往存在著復(fù)雜的交互關(guān)系,所以系統(tǒng)管理員很難設(shè)定合理的故障檢測(cè)規(guī)則,也不能細(xì)粒度地診斷發(fā)生故障的原因。為了解決該問(wèn)題,王子勇等人[10]提出了一種面向微服務(wù)架構(gòu)的基于執(zhí)行軌跡監(jiān)測(cè)的故障檢測(cè)方法。具體來(lái)講,該方法首先借助動(dòng)態(tài)插樁技術(shù)來(lái)監(jiān)測(cè)各項(xiàng)微服務(wù)的處理流程,并利用樹(shù)形結(jié)構(gòu)來(lái)刻畫(huà)各項(xiàng)微服務(wù)請(qǐng)求處理的執(zhí)行軌跡;接著基于樹(shù)編輯距離和主成分分析來(lái)分別進(jìn)行系統(tǒng)錯(cuò)誤的診斷及性能異常的檢測(cè)。但該方法也存在一些尚未解決的問(wèn)題,例如可能會(huì)遺漏一些關(guān)鍵方法,性能開(kāi)銷比較大等。

      徐康明[11]指出當(dāng)前基于故障樹(shù)的檢測(cè)方法在構(gòu)造故障樹(shù)的過(guò)程中忽略了應(yīng)用系統(tǒng)中的差錯(cuò)容忍因素,并且沒(méi)有考慮到在系統(tǒng)實(shí)際運(yùn)行過(guò)程中不同執(zhí)行路徑的執(zhí)行概率不一致的實(shí)際情況。針對(duì)這些問(wèn)題,徐康明[11]提出了一種新的基于故障樹(shù)的檢測(cè)模型,該模型在系統(tǒng)中增加了差錯(cuò)容忍機(jī)制并考慮了不同執(zhí)行路徑執(zhí)行概率的差異,從而增強(qiáng)了系統(tǒng)運(yùn)行的穩(wěn)定性,提高了系統(tǒng)運(yùn)行的成功率。

      Ma等人[12]提出了一個(gè)能夠有效管理各個(gè)微服務(wù)組件之間復(fù)雜調(diào)用關(guān)系的基于圖的微服務(wù)分析和測(cè)試方法(graph-based microservice analysis and testing,GMAT)。GMAT 能夠自動(dòng)生成服務(wù)依賴圖(service dependency graph,SDG),用于分析并可視化各個(gè)微服務(wù)之間的依賴關(guān)系。利用GMAT,人們能夠在開(kāi)發(fā)的早期階段通過(guò)分析具有潛在風(fēng)險(xiǎn)的微服務(wù)調(diào)用鏈來(lái)檢測(cè)異常,并在開(kāi)發(fā)新版本的系統(tǒng)時(shí)有效跟蹤各個(gè)微服務(wù)之間的聯(lián)系。實(shí)驗(yàn)結(jié)果證明GMAT 在小型的和大型的微服務(wù)應(yīng)用系統(tǒng)上都有著良好的表現(xiàn)。

      劉一田等人[13]針對(duì)全鏈路應(yīng)用服務(wù)監(jiān)控的擴(kuò)展問(wèn)題,設(shè)計(jì)了一個(gè)靈活的微服務(wù)監(jiān)控框架并部署在現(xiàn)有的服務(wù)管理層,以監(jiān)控微服務(wù)的狀態(tài)及不斷變化的服務(wù)負(fù)載。此外,該框架還使用了Raft算法[14]來(lái)增強(qiáng)系統(tǒng)中的數(shù)據(jù)一致性,從而有效避免了單點(diǎn)故障問(wèn)題的發(fā)生。然而該框架也存在著部署架構(gòu)較為復(fù)雜,性能損耗較大等不足。

      Celesti 等人[15]專注于解決物聯(lián)網(wǎng)設(shè)備中微服務(wù)的可靠性問(wèn)題,提出了一個(gè)基于容器虛擬化的物聯(lián)網(wǎng)看門狗系統(tǒng)。當(dāng)在物聯(lián)網(wǎng)設(shè)備上運(yùn)行的微服務(wù)出現(xiàn)故障時(shí),該系統(tǒng)首先會(huì)嘗試修復(fù)它,若修復(fù)失敗,會(huì)嘗試用另一個(gè)備用的微服務(wù)替換它,從而大大增強(qiáng)了物聯(lián)網(wǎng)設(shè)備中微服務(wù)的可靠性。Heorhiadi 等人[16]指出當(dāng)前的互聯(lián)網(wǎng)應(yīng)用系統(tǒng)大都采用了微服務(wù)架構(gòu),這些系統(tǒng)里面的微服務(wù)組件一天往往會(huì)被更新、部署數(shù)百次。為了應(yīng)對(duì)加速的軟件生命周期,Heorhiadi等人[16]提出了Gremlin,一個(gè)用來(lái)系統(tǒng)性地測(cè)試微服務(wù)故障處理能力的框架。Gremlin基于這樣的觀察:各個(gè)微服務(wù)之間是低耦合的,因此它們依賴于網(wǎng)絡(luò)中標(biāo)準(zhǔn)的信息交換模式來(lái)進(jìn)行通信。Gremlin允許操作人員通過(guò)在網(wǎng)絡(luò)層操縱各個(gè)微服務(wù)之間的通信來(lái)輕松地設(shè)計(jì)和執(zhí)行系統(tǒng)測(cè)試。Mayer等人[17]提出了一個(gè)可以實(shí)現(xiàn)微服務(wù)監(jiān)控及管理的系統(tǒng),能夠滿足不同用戶的需要。該系統(tǒng)支持不同監(jiān)控設(shè)施的集成,以收集充足的與微服務(wù)相關(guān)的運(yùn)行數(shù)據(jù)。除了運(yùn)行數(shù)據(jù)之外,該系統(tǒng)還支持其他信息源的融合,從而能夠在微服務(wù)系統(tǒng)出現(xiàn)故障時(shí),更準(zhǔn)確地分析出故障發(fā)生的原因。

      彭天舒[18]分析總結(jié)了采用微服務(wù)架構(gòu)的應(yīng)用系統(tǒng)可能會(huì)遇到的一些異常情況,主要包括兩方面:由于微服務(wù)之間互相信任而引發(fā)的內(nèi)部攻擊,以及攻擊者通過(guò)避開(kāi)權(quán)限管理機(jī)制來(lái)提升自身權(quán)限而引發(fā)的權(quán)限攻擊。這些攻擊可能會(huì)造成調(diào)用路徑的異常,調(diào)用順序與層次關(guān)系的異常,功能與角色對(duì)應(yīng)關(guān)系的異常等。為了能對(duì)上述異常進(jìn)行及時(shí)有效的檢測(cè),彭天舒將入侵檢測(cè)技術(shù)和分布式追蹤技術(shù)結(jié)合在一起,提出了基于特征規(guī)則的異常檢測(cè)方法。不過(guò)由于該方法采用離線的檢測(cè)方式,會(huì)有一定的滯后性。

      以上的故障檢測(cè)方法都是基于傳統(tǒng)方法,本文將深度學(xué)習(xí)方法引入到面向微服務(wù)架構(gòu)的故障檢測(cè)研究中,提出了一個(gè)基于GRU 的故障檢測(cè)方法MS-GRU,顯著提升了故障檢測(cè)的精度和效率,從而改善了微服務(wù)架構(gòu)的服務(wù)質(zhì)量。

      2 MS-GRU故障檢測(cè)模型

      基于微服務(wù)架構(gòu)設(shè)計(jì)的應(yīng)用系統(tǒng)中的每個(gè)微服務(wù)組件都有可能發(fā)生故障,如何快速地檢測(cè)到故障的發(fā)生,并準(zhǔn)確地定位出故障發(fā)生的位置,對(duì)于改善微服務(wù)架構(gòu)的服務(wù)質(zhì)量有著非常重要的意義。為此,本文提出了一個(gè)基于GRU[6]的故障檢測(cè)模型MS-GRU,模型架構(gòu)如圖1所示。

      圖1 MS-GRU模型架構(gòu)圖Fig.1 Architecture of proposed MS-GRU model

      首先對(duì)MS-GRU 模型進(jìn)行一個(gè)整體的概述。MSGRU模型是一個(gè)數(shù)據(jù)驅(qū)動(dòng)(data-driven)的方法,與傳統(tǒng)的微服務(wù)故障檢測(cè)方法相比,MS-GRU對(duì)于未知以及不斷變化的應(yīng)用場(chǎng)景更具魯棒性。MS-GRU 輸入層神經(jīng)元和輸出層神經(jīng)元的數(shù)量與處于激活狀態(tài)的微服務(wù)組件數(shù)量保持一致。各個(gè)微服務(wù)組件的工作狀態(tài)信息、與其他組件的依賴關(guān)系、通信狀況等各類有關(guān)數(shù)據(jù)在經(jīng)過(guò)標(biāo)準(zhǔn)化處理后得到一組向量,作為MS-GRU 模型的輸入。MS-GRU利用這些數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)的訓(xùn)練,以從歷史數(shù)據(jù)中學(xué)習(xí)導(dǎo)致故障發(fā)生的模式信息,包括空間模式和時(shí)間模式兩種。其中空間模式主要指各個(gè)微服務(wù)組件之間的依賴關(guān)系,時(shí)間模式主要指輸入的負(fù)載情況、資源沖突情況等。MS-GRU的核心思想在于,以往導(dǎo)致故障發(fā)生的條件可用于預(yù)測(cè)在未來(lái)的某個(gè)時(shí)間點(diǎn)是否會(huì)有故障發(fā)生。MS-GRU 的輸出即是每個(gè)微服務(wù)組件將要發(fā)生故障的概率。

      MS-GRU 模型是將深度學(xué)習(xí)方法引入微服務(wù)故障檢測(cè)任務(wù)的首次嘗試,如何設(shè)計(jì)一個(gè)與該任務(wù)特性相適配的神經(jīng)網(wǎng)絡(luò)是本文要重點(diǎn)解決的問(wèn)題。具體來(lái)講,針對(duì)微服務(wù)故障檢測(cè)任務(wù)中存在的數(shù)據(jù)類型不統(tǒng)一,數(shù)據(jù)量龐大,各特征間依賴關(guān)系難以學(xué)習(xí),網(wǎng)絡(luò)訓(xùn)練容易出現(xiàn)梯度消失和梯度爆炸等各個(gè)問(wèn)題,設(shè)計(jì)了一系列相應(yīng)的模塊來(lái)解決。下面對(duì)MS-GRU 模型的各個(gè)模塊進(jìn)行具體的介紹。

      數(shù)據(jù)預(yù)處理模塊。MS-GRU 模型的輸入包含了屬性不同、度量單位各異、值域差異明顯的各類數(shù)據(jù),如果不對(duì)這些數(shù)據(jù)進(jìn)行預(yù)處理,可能會(huì)對(duì)最終結(jié)果造成不可預(yù)估的影響。例如,時(shí)間數(shù)據(jù)采用秒或毫秒,距離數(shù)據(jù)采用米或厘米,可能會(huì)導(dǎo)致完全不同的結(jié)果。一般而言,使用較小的度量單位來(lái)表示屬性會(huì)導(dǎo)致該屬性具有較大的值域,而值域較大的屬性往往具有更大的“權(quán)重”去影響最終結(jié)果。為了避免由于度量單位的不同而對(duì)最終結(jié)果產(chǎn)生干擾,在將原始數(shù)據(jù)送入網(wǎng)絡(luò)模型之前應(yīng)該預(yù)先對(duì)其進(jìn)行標(biāo)準(zhǔn)化處理,以賦予所有屬性相同的權(quán)重。這里采用了z-score標(biāo)準(zhǔn)化方法來(lái)處理MS-GRU模型的原始輸入數(shù)據(jù)x:

      其中,xi為x中第i項(xiàng)數(shù)據(jù),μx為x的均值,σx為x的標(biāo)準(zhǔn)差,xi′為經(jīng)過(guò)標(biāo)準(zhǔn)化處理后的數(shù)據(jù)。

      全連接層(fully connected layers,F(xiàn)C)和卷積層(convolutional neural networks,CNN)。輸入MS-GRU的數(shù)據(jù)除了種類各異外,在數(shù)量上也非常龐大,其中往往蘊(yùn)含著很多無(wú)用和冗余的信息,它們會(huì)阻礙模型檢測(cè)精度和檢測(cè)效率的提升。為了從原始數(shù)據(jù)中提取出關(guān)鍵特征(feature)信息,傳統(tǒng)方法通常采用手工設(shè)計(jì)(hand-crafted)的方式,但這種提取特征的方式是非常主觀、低效的,很難處理海量的輸入數(shù)據(jù)。為了解決這個(gè)問(wèn)題,本文引入了深度學(xué)習(xí)的方法,將經(jīng)過(guò)數(shù)據(jù)預(yù)處理后的微服務(wù)數(shù)據(jù)輸入若干個(gè)全連接層和卷積層,這里網(wǎng)絡(luò)層包含了成千上萬(wàn)的參數(shù)(parameters),能夠在模型的訓(xùn)練過(guò)程中自動(dòng)、高效地從輸入數(shù)據(jù)中提取出關(guān)鍵的特征信息,用于后續(xù)的故障檢測(cè)。

      注意力層(attention layer)。各個(gè)關(guān)鍵特征之間往往不是相互獨(dú)立的,而是存在一定的依賴關(guān)系,并有著強(qiáng)弱之分。而全連接層和卷積層只對(duì)數(shù)據(jù)中的關(guān)鍵特征進(jìn)行了提取,沒(méi)有考慮各個(gè)特征之間的依賴關(guān)系,限制了故障檢測(cè)模型的性能。為了解決這個(gè)問(wèn)題,本文提出了一種新的注意力機(jī)制(attention mechanism)來(lái)學(xué)習(xí)各個(gè)關(guān)鍵特征之間的依賴關(guān)系。注意力機(jī)制最初由Bahdanau等人[19]提出,現(xiàn)已成為神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的重要組成部分,并被廣泛應(yīng)用于自然語(yǔ)言處理、計(jì)算機(jī)視覺(jué)、統(tǒng)計(jì)學(xué)習(xí)等領(lǐng)域。本文針對(duì)故障檢測(cè)任務(wù)的獨(dú)特性,提出了一個(gè)與其特性相適應(yīng)的新的注意力層。具體來(lái)講,對(duì)于前一卷積層輸出的任意兩個(gè)特征Fx和Fy,將其轉(zhuǎn)換到兩個(gè)特征空間s和t以計(jì)算它們之間的attention:

      其中,Ws、Wt和Wh是可學(xué)習(xí)的權(quán)重矩陣,對(duì)應(yīng)于圖1中的1×1 卷積。i是輸出位置的索引,j代表所有可能位置的索引。

      本文提出的注意力機(jī)制與傳統(tǒng)的注意力機(jī)制的主要區(qū)別在于:傳統(tǒng)的注意力機(jī)制的目標(biāo)在于學(xué)習(xí)一個(gè)注意力權(quán)重矩陣,應(yīng)用于當(dāng)前層的各個(gè)神經(jīng)節(jié)點(diǎn),對(duì)于那些重要的節(jié)點(diǎn),賦予它們較大的權(quán)重,對(duì)于那些次要的節(jié)點(diǎn),賦予它們較小的權(quán)重。由于每個(gè)神經(jīng)節(jié)點(diǎn)都包含著某種特征信息,經(jīng)過(guò)上述操作,神經(jīng)網(wǎng)絡(luò)就能從眾多特征信息中選擇出對(duì)當(dāng)前任務(wù)目標(biāo)更關(guān)鍵的信息。而本文所提出的注意力機(jī)制則不同,其更多地關(guān)注到了各個(gè)特征信息間的依賴關(guān)系,這是與面向微服務(wù)架構(gòu)的故障檢測(cè)任務(wù)更相適應(yīng)的。而對(duì)于關(guān)鍵特征信息的提取,通過(guò)前面的全連接層和卷積層已經(jīng)實(shí)現(xiàn)。

      總的來(lái)說(shuō),通過(guò)本文提出的注意力層,模型學(xué)習(xí)到了各個(gè)關(guān)鍵特征之間的依賴關(guān)系,有利于模型檢測(cè)精度的提升。

      GRU 層和Softmax 層。GRU 網(wǎng)絡(luò)解決了長(zhǎng)序列訓(xùn)練過(guò)程中經(jīng)常發(fā)生的梯度爆炸和梯度消失問(wèn)題,因此即使對(duì)于很長(zhǎng)的數(shù)據(jù)序列,GRU 也有著很好的表現(xiàn)。這里引入了多個(gè)GRU 層,它們以注意力層的輸出作為輸入,在不斷的網(wǎng)絡(luò)訓(xùn)練中去學(xué)習(xí)導(dǎo)致故障發(fā)生的模式信息。接著Softmax 層以GRU 層輸出的模式信息f作為輸入,輸出各個(gè)微服務(wù)組件發(fā)生故障的概率p:

      其中,pi代表第i個(gè)微服務(wù)組件發(fā)生故障的概率,fi代表最后一層GRU里第i個(gè)神經(jīng)元的輸出,n代表應(yīng)用系統(tǒng)中微服務(wù)組件的數(shù)量。

      值得指出的是,雖然GRU層和Softmax層都不是新的方法或技術(shù),現(xiàn)已得到了廣泛的研究和驗(yàn)證,但本文主要的貢獻(xiàn)在于將它們擴(kuò)展應(yīng)用于一個(gè)更具挑戰(zhàn)性的新任務(wù):面向微服務(wù)架構(gòu)的故障檢測(cè)。并且為了讓GRU網(wǎng)絡(luò)與新任務(wù)更加適配,還對(duì)其進(jìn)行了結(jié)構(gòu)上的調(diào)整:對(duì)于GRU 網(wǎng)絡(luò)中的狀態(tài)單元,先使用Leaky ReLU激活函數(shù)對(duì)其進(jìn)行處理,之后再讓其進(jìn)行下一步的計(jì)算。經(jīng)過(guò)這樣的調(diào)整,進(jìn)一步避免了梯度爆炸和梯度消失問(wèn)題,從而可以使用更深的網(wǎng)絡(luò)結(jié)構(gòu),能夠解決傳統(tǒng)的面向微服務(wù)架構(gòu)的故障檢測(cè)方法難以深入挖掘數(shù)據(jù)的問(wèn)題,有利于提高模型的檢測(cè)精度。本文將深度學(xué)習(xí)方法引入該領(lǐng)域,這為該領(lǐng)域的進(jìn)一步發(fā)展提供了一種新的思路。

      損失函數(shù)。根據(jù)模型預(yù)測(cè)結(jié)果與實(shí)際情況的差異,定義了交叉熵?fù)p失函數(shù)(cross entropy error function):

      其中,m代表樣本數(shù)據(jù)的數(shù)量,yi代表現(xiàn)實(shí)中的故障發(fā)生情況(0代表未發(fā)生故障,1代表發(fā)生了故障),pi代表MS-GRU所預(yù)測(cè)的故障發(fā)生的概率。

      訓(xùn)練方式。本文采用反向傳播算法(back propagation)來(lái)訓(xùn)練網(wǎng)絡(luò)模型,主要包含激勵(lì)傳播、權(quán)重更新這兩個(gè)環(huán)節(jié)。其中激勵(lì)傳播指正向傳播過(guò)程:輸入數(shù)據(jù)經(jīng)由各個(gè)網(wǎng)絡(luò)層逐層處理最終得到預(yù)測(cè)結(jié)果,然后根據(jù)預(yù)先定義的損失函數(shù)計(jì)算預(yù)測(cè)結(jié)果與實(shí)際情況之間的誤差值。權(quán)重更新指反向傳播過(guò)程:根據(jù)預(yù)測(cè)結(jié)果與實(shí)際情況之間的誤差值,從輸出層開(kāi)始向著輸入層逐層計(jì)算損失函數(shù)對(duì)各神經(jīng)元權(quán)重的偏導(dǎo)數(shù),并隨之更新各神經(jīng)元的權(quán)重,完成一次迭代。在本文的實(shí)驗(yàn)中,MS-GRU模型共經(jīng)歷了20萬(wàn)次迭代。

      圖2展示了MS-GRU 模型具體的工作流程。其中(a)展示的是訓(xùn)練階段的工作流程,具體來(lái)講,主干部分為正向傳播時(shí)的工作流程,左側(cè)分支為反向傳播時(shí)的工作流程。(b)展示的是測(cè)試階段的工作流程。

      圖2 MS-GRU模型工作流程圖Fig.2 Flowchart of proposed MS-GRU model

      3 實(shí)驗(yàn)

      為了證明本文所提出的MS-GRU 模型的有效性和優(yōu)越性,在仿真數(shù)據(jù)和真實(shí)數(shù)據(jù)上分別進(jìn)行了廣泛的實(shí)驗(yàn),并和一系列現(xiàn)有的故障檢測(cè)方法進(jìn)行了對(duì)比。

      3.1 仿真實(shí)驗(yàn)環(huán)境搭建

      本文使用了一臺(tái)PC機(jī)及七臺(tái)虛擬機(jī)搭建了一個(gè)面向電網(wǎng)調(diào)控的微服務(wù)架構(gòu)的應(yīng)用系統(tǒng)。其中PC機(jī)主要負(fù)責(zé)面向電網(wǎng)調(diào)控的微服務(wù)故障檢測(cè)系統(tǒng)的部署和運(yùn)行,七臺(tái)虛擬機(jī)主要負(fù)責(zé)微服務(wù)應(yīng)用程序的運(yùn)行。表1展示了PC機(jī)和虛擬機(jī)的具體配置信息。

      表1 實(shí)驗(yàn)軟硬件環(huán)境信息Table 1 Information on software and hadware used in experiments

      3.2 評(píng)價(jià)指標(biāo)和基準(zhǔn)模型

      本文采用精度(precision)、召回率(recall)和F1分?jǐn)?shù)這三個(gè)量化指標(biāo)來(lái)評(píng)估故障檢測(cè)模型的效果,它們的定義如下:

      其中,TP(ture positive)代表真陽(yáng)性,即被故障檢測(cè)模型正確分類的故障;FP(false positive)代表假陽(yáng)性,即本來(lái)沒(méi)有故障卻被故障檢測(cè)模型判定為有故障;FN(false negative)代表假陰性,即本來(lái)有故障卻被故障檢測(cè)模型判定為沒(méi)有故障。除了上述出現(xiàn)的三種情況,還有一種情況為TN(true negative),代表真陰性,即被故障檢測(cè)模型正確分類的無(wú)故障情況。

      精度是準(zhǔn)確性的度量,召回率是完全性的度量,而F1分?jǐn)?shù)則將精度和召回率組合到了一個(gè)度量中,可以視作二者的調(diào)和均值。

      本文將王子勇等人[10]提出的基于執(zhí)行軌跡監(jiān)測(cè)的故障檢測(cè)模型(簡(jiǎn)稱為軌跡監(jiān)測(cè)模型)、徐康明[11]提出的基于故障樹(shù)的故障檢測(cè)模型(簡(jiǎn)稱為故障樹(shù)模型)、彭天舒[18]提出的基于特征規(guī)則的故障檢測(cè)模型(簡(jiǎn)稱為特征規(guī)則模型)作為基準(zhǔn)模型,與本文所提出的MS-GRU 模型進(jìn)行性能對(duì)比。

      3.3 仿真實(shí)驗(yàn)結(jié)果

      受文獻(xiàn)[16-17,20-22]的啟發(fā),本文采用人為注入故障的方式來(lái)評(píng)估各個(gè)故障檢測(cè)方法的表現(xiàn)。注入的故障主要分為四類,分別為應(yīng)用程序故障(例如設(shè)置不當(dāng)、配置出錯(cuò)等)、服務(wù)器故障(例如端口被占、Java Virtual Machine、線程池配置錯(cuò)誤等)、數(shù)據(jù)庫(kù)故障(例如運(yùn)算溢出、并發(fā)事物死鎖、違反完整性限制規(guī)則等)、操作系統(tǒng)故障(例如CPU、網(wǎng)絡(luò)、內(nèi)存、IO 等出現(xiàn)異常)。將各類故障單獨(dú)注入到本文所搭建的微服務(wù)應(yīng)用系統(tǒng)中,每類故障各注入25次,然后分別使用軌跡監(jiān)測(cè)模型、故障樹(shù)模型、特征規(guī)則模型以及MS-GRU 模型進(jìn)行故障的檢測(cè)。檢測(cè)結(jié)果如表2所示,可以看到相較于其他的故障檢測(cè)模型,本文提出的MS-GRU 模型在精度、召回率和F1分?jǐn)?shù)這三個(gè)指標(biāo)上都有著更好的表現(xiàn)。

      表2 各模型檢測(cè)準(zhǔn)確性對(duì)比Table 2 Comparison of different methods about accuracy

      除了準(zhǔn)確性之外,效率也是衡量一個(gè)故障檢測(cè)模型性能的重要指標(biāo)。圖3 展示了各個(gè)方法的平均檢測(cè)時(shí)間,可以看到MS-GRU模型具有最高的檢測(cè)效率。

      圖3 各模型檢測(cè)效率對(duì)比Fig.3 Comparison of different methods about efficiency

      此外,為了評(píng)估本文提出的注意力機(jī)制的有效性,在三種不同的條件下進(jìn)行了實(shí)驗(yàn):(1)不使用注意力機(jī)制;(2)使用傳統(tǒng)的注意力機(jī)制;(3)使用本文提出的注意力機(jī)制。實(shí)驗(yàn)結(jié)果如表3所示,可以看到與傳統(tǒng)的注意力機(jī)制相比,本文提出的注意力機(jī)制能夠以更小的時(shí)間成本獲得更高的檢測(cè)準(zhǔn)確度。

      表3 注意力機(jī)制的有效性評(píng)估Table 3 Effectiveness evaluation of attention mechanism

      3.4 真實(shí)數(shù)據(jù)上的實(shí)驗(yàn)結(jié)果

      前面的實(shí)驗(yàn)已經(jīng)證明了本文所提出的MS-GRU 模型在仿真數(shù)據(jù)上的有效性,為了進(jìn)一步測(cè)試MS-GRU在實(shí)際應(yīng)用場(chǎng)景中的性能,將其部署到了某真實(shí)電網(wǎng)系統(tǒng)上。在部署之后兩個(gè)月的時(shí)間里,MS-GRU模型共檢測(cè)到了465 次故障(87%的準(zhǔn)確率),避免了427 次故障(80%的準(zhǔn)確率)。此外,借助于MS-GRU,開(kāi)發(fā)人員對(duì)于故障發(fā)生的條件、模式、原因等都有了更為深入的理解和認(rèn)識(shí),在系統(tǒng)的設(shè)計(jì)上也做出了相應(yīng)的改進(jìn),從而進(jìn)一步避免了故障的發(fā)生。圖4 展示了部署MS-GRU模型后,該電網(wǎng)系統(tǒng)在兩個(gè)月內(nèi)的故障發(fā)生情況,可以看到故障發(fā)生的次數(shù)呈現(xiàn)出明顯的下降趨勢(shì),這再次驗(yàn)證了本文方法的有效性。

      圖4 MS-GRU模型兩個(gè)月內(nèi)的故障發(fā)生情況Fig.4 Fault occurrence of MS-GRU model in two months

      4 結(jié)束語(yǔ)

      本文針對(duì)微服務(wù)應(yīng)用系統(tǒng)里的故障檢測(cè)問(wèn)題,引入了深度學(xué)習(xí)的方法,提出了一個(gè)基于GRU 的故障檢測(cè)模型(MS-GRU)。本文方法的核心在于它能夠從以往的應(yīng)用數(shù)據(jù)中分析、學(xué)習(xí)到導(dǎo)致故障發(fā)生的模式信息,并將這些信息用于未來(lái)的故障診斷和預(yù)測(cè)中。為了評(píng)估MS-GRU模型的性能,在仿真系統(tǒng)和真實(shí)系統(tǒng)上進(jìn)行了廣泛的實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明與傳統(tǒng)的故障檢測(cè)方法相比,MS-GRU模型有著更高的效率和準(zhǔn)確度。在未來(lái)的工作中,希望能夠進(jìn)一步精簡(jiǎn)網(wǎng)絡(luò)模型,在不影響檢測(cè)準(zhǔn)確度的同時(shí)進(jìn)一步提升檢測(cè)效率,以實(shí)現(xiàn)實(shí)時(shí)檢測(cè),這樣本文模型的實(shí)用性可以得到進(jìn)一步的增強(qiáng)。

      猜你喜歡
      架構(gòu)故障檢測(cè)
      基于FPGA的RNN硬件加速架構(gòu)
      “不等式”檢測(cè)題
      “一元一次不等式”檢測(cè)題
      “一元一次不等式組”檢測(cè)題
      功能架構(gòu)在電子電氣架構(gòu)開(kāi)發(fā)中的應(yīng)用和實(shí)踐
      汽車工程(2021年12期)2021-03-08 02:34:30
      故障一點(diǎn)通
      LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實(shí)現(xiàn)
      奔馳R320車ABS、ESP故障燈異常點(diǎn)亮
      小波變換在PCB缺陷檢測(cè)中的應(yīng)用
      故障一點(diǎn)通
      双辽市| 安图县| 玛沁县| 罗平县| 长海县| 布拖县| 玉门市| 平江县| 武冈市| 方山县| 洪湖市| 福贡县| 民和| 安仁县| 大城县| 长岭县| 高安市| 兖州市| 弥勒县| 四平市| 永福县| 徐闻县| 临澧县| 甘洛县| 蕉岭县| 庆安县| 冀州市| 旬阳县| 克什克腾旗| 中方县| 金山区| 永川市| 普定县| 邳州市| 得荣县| 洪洞县| 新巴尔虎右旗| 沂南县| 丰县| 张家川| 甘孜县|