亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        服務網格中的級聯(lián)故障預測方法

        2021-11-15 11:48:30李海飛徐政鈞
        計算機應用與軟件 2021年11期
        關鍵詞:故障資源服務

        李海飛 徐政鈞

        (北京郵電大學 北京100876)

        0 引 言

        近年來微服務架構發(fā)展迅猛,逐步成為主流部署模型。相對于單體架構而言,微服務架構有著明顯的優(yōu)勢,單體架構龐大笨重,持續(xù)開發(fā)非常復雜[1],可擴展性差。微服務的誕生正好彌補了這一缺陷,微服務架構將一個應用拆分成多個微服務,每個微服務獨立開發(fā)、獨立部署、自由擴展,實現了開發(fā)和部署的敏捷性和靈活性[2]。但是隨著人們對微服務系統(tǒng)的需求日益增加,對微服務架構的要求也逐漸增高,不僅要求微服務平臺滿足服務隔離及彈性伸縮等靈活性需求,還要求微服務平臺保證高度的可靠性及可用性[3]。為此,就要盡可能避免系統(tǒng)故障發(fā)生,尤其是大規(guī)模系統(tǒng)故障。

        為了實現更好的彈性伸縮及負載均衡,微服務架構將應用細分為多個微服務,且每個微服務可以部署多個實例,微服務間通過網絡層相互通信,實現良好的性能隔離,同時也實現了故障隔離,這意味著微服務可以被設置為單獨失敗[4]。但并不表示微服務間不存在干擾。當系統(tǒng)達到一定規(guī)模時,微服務的數量變得相當龐大,微服務間或因為網絡通信或因為資源共享聯(lián)系在一起,形成一個復雜的關系網,這個網絡中有一個節(jié)點出現問題,就會級聯(lián)到其他節(jié)點,造成連鎖反應,甚至可能發(fā)生雪崩,造成整個系統(tǒng)癱瘓[5-6]。

        針對上述問題,本文提出了一套級聯(lián)故障預測方法?;诋斚戮哂泻芨哐芯繜岫鹊姆站W格系統(tǒng),本文在服務網格邊緣嵌入故障預測組件,對系統(tǒng)進行實時監(jiān)測[7-8]。每當有大量微服務負載進入系統(tǒng)時,組件被喚醒,依據當前微服務間的調用關系和資源依賴關系,建立模型,利用GRU神經網絡[9-11]進行故障概率預測。

        1 相關工作

        隨著云服務市場的發(fā)展,微服務架構勢頭更盛,國內外包括AWS(亞馬遜)、Azure(微軟)、阿里云、騰訊云、百度云、華為云等都紛紛投入服務網格的應用研究中。學術界也發(fā)表了一些關于微服務故障研究的文章,但針對服務網格的相對較少,更多的是關于分布式系統(tǒng)、云環(huán)境及Web服務中的故障研究。

        文獻[12]提出了一種自適應的基于多因素的心跳檢測算法,用以進行微服務故障診斷。它結合了分布式系統(tǒng)中的心跳檢測機制和微服務的特征,采用了三因素拉模式心跳檢測機制。心跳檢測是分布式系統(tǒng)經常采用的一種服務健康監(jiān)控機制,它通過服務的心跳確認服務是否良好可運行。文獻[13]提出了基于日志檢測的分布式服務異常診斷模型,并提出了一種基于混合圖模型的對數異常檢測算法。該模型捕獲服務的正常執(zhí)行流程,然后觀察與混合模型的偏差,由此觸發(fā)異常警報。文獻[14]提出了一個針對大規(guī)模時間序列異常進行自動檢測的通用可擴展框架,模擬時間序列的正常行為,把與模型存在顯著偏差的節(jié)點作為異常處理。文獻[13-14]提出的方法都是基于單個服務進行監(jiān)控并告警,忽略了服務間的關聯(lián)性。

        文獻[15]提出了一種云環(huán)境中的故障轉移方法,并提出了一種表示容錯模型的數學關系。該模型依據每個虛擬節(jié)點的服務請求通過率指定容錯方案。面向節(jié)點進行故障診斷可以作為分析故障的一個方面,但就微服務來說,還遠遠不夠,還需要以服務為單位進行排查。文獻[16]提出了一種基于系統(tǒng)參數搜索的在線檢測模型,可以對向量機的參數進行優(yōu)化。它通過皮爾森相關系數和主成分分析進行云系統(tǒng)數據提取來做出故障預測。文獻[17]提出了一個分布式系統(tǒng)的數據跟蹤監(jiān)控框架,它克服了數據預先定義的限制,將系統(tǒng)當前操作與動態(tài)工具結合,使用戶能夠在系統(tǒng)運行時的某一節(jié)點定義任何度量標準,同時還可以根據系統(tǒng)中的重要事件進行數據過濾和分組。

        以上文獻中的方法都適用于分布式系統(tǒng),主要基于單個服務或單個節(jié)點展開。而服務網格中的級聯(lián)故障更多取決于服務間的依賴關系。

        2 系統(tǒng)設計

        2.1 系統(tǒng)架構

        Web服務規(guī)模不斷擴大,促使單體應用架構向分布式微服務架構轉化。但傳統(tǒng)的分布式架構應用模塊多且復雜,使得系統(tǒng)在進行資源分配、部署、管理等方面面臨著巨大的重復性工作[18]。而容器化的出現有效地解決了以上提出的問題。本文采用的Docker+ Kubernetes+ Istio的服務網格部署模式,實現了容器的自動化部署、高度的可擴展性及更高的安全性。Docker實現了輕量級的操作系統(tǒng)虛擬化解決方案,克服了硬件層面虛擬的諸多弊端。它通過鏡像封裝容器啟動代碼,以及應用運行的環(huán)境和依賴,可以快速地實現應用的部署和遷移,同時為應用提供了一個一致的運行環(huán)境。Kubernetes是一個容器集群的自動化部署、運維平臺,針對Docker實現了更靈活的容器編排調度。它通過組件間的協(xié)同配合,實現更精準的服務部署、更有效的資源分配和更便捷的更新迭代。Istio是一個服務網格架構,它類似一個網絡代理,是微服務外層的一個基礎設施層,控制著微服務間的通信,并具備負載均衡、服務認證和監(jiān)控等功能??梢酝ㄟ^Istio配置各種流量規(guī)則和安全策略,無須改動應用代碼。

        圖1所示為本文的系統(tǒng)架構,在服務網格架構基礎上嵌入了級聯(lián)故障預測組件。每次部署一個微服務實例,都會相應啟動一個代理,微服務間通過代理相互通信,它們與外界的所有交互也都由代理執(zhí)行。如此即可在不需要修改應用代碼的條件下,獲取微服務的相關信息,并對微服務進行管理配置。Mixer是微服務與系統(tǒng)交互的接口,它通過代理收集微服務遙測數據,并對微服務請求進行策略檢查。所有的流量策略、安全策略、故障恢復策略,以及監(jiān)控策略等都寫在控制平面中,控制平面會將我們的策略解析為特定的配置文件,以便代理進行解讀。本文方法形成一個級聯(lián)故障預測組件,它位于Mixer與控制平面之間,從Mixer獲取信息進行分析預測,并將結果以策略文件的形式傳遞給控制平面。

        圖1 系統(tǒng)架構

        2.2 系統(tǒng)工作流程

        級聯(lián)故障發(fā)生在系統(tǒng)高負載運行狀態(tài)下,系統(tǒng)接收到微服務請求后,Mixer按照負載策略將請求分發(fā)給各個代理,此時Mixer只能確定每個代理所代表的服務是否可訪問,但不能確定主機狀態(tài)和相關聯(lián)的微服務狀態(tài)。當主機資源接近瓶頸,而Mixer在無法感知的情況下,會繼續(xù)對微服務發(fā)出訪問請求。此時節(jié)點一方面資源負載過高,可能出現微服務處理不及時,另一方面又會面臨新的微服務請求,如此就會發(fā)生級聯(lián)故障。

        級聯(lián)故障預測組件嵌入后,作為一個獨立的組件,與Mixer等其他組件一樣,以容器的形式部署在平臺中。它并不會一直運行,它會委派Mixer在系統(tǒng)迎來高負載時,喚醒該組件,并且將相關微服務信息傳遞給它。級聯(lián)故障預測組件對得到的微服務信息進行處理計算,獲得針對特定微服務的級聯(lián)故障發(fā)生概率,并形成一定的規(guī)避策略,傳遞給控制平面??刂破矫鎸τ脩舨呗赃M行解析,形成特定配置文件,進而轉由Mixer傳達給代理執(zhí)行,這樣就規(guī)避了造成級聯(lián)故障風險的微服務調用。

        3 級聯(lián)故障預測方法

        3.1 級聯(lián)故障預測模型

        微服務系統(tǒng)將單個應用拆分成多個微服務,運行在不同容器中,并依據需求為同一微服務啟動多個容器,并將其綁定到不同節(jié)點來實現系統(tǒng)的高并發(fā)和負載均衡,使微服務系統(tǒng)能夠應對大量訪問請求,同時也增加了系統(tǒng)復雜性。不同節(jié)點間微服務的通信及同一節(jié)點上微服務的交互增加,也使得級聯(lián)故障概率大大增強[19]。為了使微服務系統(tǒng)能夠對級聯(lián)故障做出及時響應,本文從微服務運行狀況和資源依賴的角度出發(fā),設計了一套級聯(lián)故障預測方法[20]。

        如圖2所示,首先構建微服務調用樹,調用樹存儲著微服務間的調用關系和微服務執(zhí)行的時序關系,據此可以定位到一定時間段內正在或將要執(zhí)行的微服務[21-22],這些微服務是接下來進行服務健康度及負載計算的對象。

        圖2 級聯(lián)故障預測模型

        當系統(tǒng)產生大量服務請求時,會觸發(fā)微服務健康度計算模塊和微服務負載計算模塊,這兩個模塊會向調用樹模塊申請獲取當前啟動的微服務及預設時間段內將會啟動的微服務。微服務健康度通過微服務的服務特性和節(jié)點資源特性計算每一個微服務針對每一屬性的健康度,以及該屬性的健康標準。微服務負載計算模塊會根據每一個節(jié)點每一項資源的初始負載計算該資源的最大負載,依據鄰居節(jié)點計算該節(jié)點的額外負載,并計算負載代價。以上獲取的數據包括微服務健康度、健康標準、節(jié)點最大負載、額外負載和負載成本,還有實時微服務相關屬性將作為神經網絡模型的輸入,用以訓練并計算獲得級聯(lián)故障概率。

        3.2 構建調用樹

        微服務系統(tǒng)中的每個請求是由多個微服務協(xié)同完成的,微服務間的相互調用形成了一個微服務請求的執(zhí)行軌跡[23],我們將此執(zhí)行軌跡構建為一個微服務調用樹,如圖3所示。調用樹中每個節(jié)點代表一個微服務,有向邊表示一個服務調用過程,虛線框代表一個節(jié)點,虛線有向邊表示跨節(jié)點的調用。調用樹記錄并跟蹤微服務調用路徑,以確認實時微服務的映射。

        圖3 微服務調用樹

        對于同一個節(jié)點上的微服務,可以依據系統(tǒng)時鐘確認執(zhí)行的先后順序。但是不同節(jié)點間由于網絡不穩(wěn)定等因素的影響很難實現時鐘的完全同步。因此本文提出在每個服務請求中插入一段監(jiān)控代碼,并為每個微服務生成兩個標識信息元組,以此確定調用順序:

        Mt={requestID,methodID,callID,info}

        info={callType,order,duration}

        系統(tǒng)每接收一個業(yè)務請求,都會為該請求生成一個唯一標識符requestID。每一次微服務調用過程中,主調微服務都會將該requestID傳遞給被調微服務,被調微服務解析該字段以確定當前調用歸屬哪一個業(yè)務請求。methodID是微服務標識符,它用于標記微服務本身之外,還會傳遞給被調微服務,并作為被調微服務的callID存儲,如此一來就確認微服務間的調用關系。callType用于表示微服務調用類別,包括計算密集型,內存敏感型和高存儲需求型。order字段繼承自主調微服務,并在主調微服務的基礎上依次遞增。duration字段記錄了兩次調用請求間的時間成本。

        每一個微服務都使用本地請求作為根節(jié)點,依據methodID和callID依次匹配,構造調用子樹,并依據order和duration確定調用順序。然后對具有相同requestID的子樹進行聚合,并根據自上而下的寬度優(yōu)先級原理合并成完整的調用樹。其算法過程如算法1所示。

        算法1構建調用樹

        輸入:Mt={requestID,methodID,callID,info},info={callType,order,duration}。

        輸出:微服務調用樹。

        1.foreachMtandinfodo

        2.ifrequestID相同then

        3.將requestID的微服務劃分到同一組

        4.endif

        5.endfor

        6.for每組微服務do

        7.依據methodID和callID構建調用子樹;

        8.依據和確定調用順序;

        9.子樹聚合形成調用樹

        10.endfor

        11.return微服務調用樹

        3.3 微服務健康度計算

        (1)

        (2)

        算法2微服務健康度計算

        輸入:微服務調用樹,Ai,GCj。

        1.遍歷調用樹定位目標微服務

        2.for每組微服務do

        6.endfor

        3.4 微服務負載及負載成本計算

        微服務間除了相互調用之外,還有一個關鍵聯(lián)系——資源爭用。部署在同一節(jié)點上的微服務共享節(jié)點資源,那么就不可避免資源爭用。微服務系統(tǒng)的級聯(lián)故障起源于微服務的依賴關系,但微服務系統(tǒng)具有良好的隔離性,能夠實現獨立失敗,因而由于調用關系而引起的級聯(lián)故障比重較小,特別是在高負載的狀態(tài)下,資源瓶頸顯得尤為突出。由于網絡延遲,CPU忙碌,內存高負荷或遠程調用無響應等原因,微服務可能陷入長時間等待狀態(tài),這在一般系統(tǒng)中可能不會造成大的危害,但是微服務系統(tǒng)服務體量太大,且存在故障重啟機制,大量甚至越來越多的微服務運行并占用資源,進一步加大系統(tǒng)壓力,進而極易引發(fā)級聯(lián)故障。

        對于級聯(lián)故障的預測不能局限于單純的微服務性能監(jiān)控或者心跳檢測等機制,應該從資源方向入手。因此,本文提出了一種資源負載計算策略對微服務狀態(tài)進行實時監(jiān)控。假設節(jié)點i上資源j的初始負載為Lij,當大量微服務請求涌入時,與節(jié)點i部署了相同微服務實例的節(jié)點,或者可以為節(jié)點i分擔負載壓力,或者可以成為節(jié)點i的負載來源,這樣的節(jié)點我們稱之為鄰居節(jié)點。在鄰居節(jié)點的作用下,可以計算一下每個節(jié)點的額外負載ΔLij,計算公式如下:

        (3)

        式中:N代表節(jié)點i的鄰居節(jié)點個數;Cij代表節(jié)點i上資源j的最大負載。節(jié)點的最大負載同樣受鄰居節(jié)點影響,因而最大負載Cij的計算公式如下:

        (4)

        式中:α和β是兩個容差參數;Lijmin是鄰居節(jié)點中最低的初始負載。而為:

        (5)

        節(jié)點資源是有限的,因而存在一個關系:Lij+ΔLij

        另一方面,如果不考慮代價,節(jié)點資源容量不受限制,那么可以說級聯(lián)故障完全可以避免。但是節(jié)點資源不能無限擴張,其中要花費的代價是需要考慮的問題。代價來源于節(jié)點資源負載,并受鄰居節(jié)點影響。本文把Cij重新表示為Cij=λijLij,把資源i的負載代價定義為ecj:

        (6)

        式中:i代表鄰居節(jié)點。

        (7)

        根據式(5),又可以將其改寫為:

        (8)

        算法3微服務負載及負載成本計算

        輸入:Lij,α,β。

        輸出:Cij,ΔLij,ecj。

        1.foreachSido

        2.利用式(4)計算Cij;

        3.利用式(3)計算ΔLij;

        4.利用式(8)計算ecj

        5.endfor

        6.returnCij,ΔLij,ecj

        3.5 基于GRU的微服務級聯(lián)故障預測

        門控循環(huán)單元(GRU)是長短期記憶網絡(LSTM)的一種變體,LSTM實現了遞歸神經網絡(RNN)基于時間序列的特性的同時,又克服了RNN梯度消失的問題,即隨著時間的遞進傳播梯度逐漸下降,直至停止學習。對于這個問題,LSTM采取門控結構的方式進行解決。通過遺忘門、輸入門、輸出門控制信息的丟棄、保留、更新和傳遞,實現了有用信息的保留和無關信息的丟棄[25]。GRU是LSTM變體中最有效的一個,它只設置了重置門和更新門,如圖4所示。重置門決定是否丟棄之前的狀態(tài),更新門決定是否將之前的狀態(tài)更新為新的狀態(tài)。GRU在保留了與LSTM相當效果的前提下實現了更高的效率。

        圖4 GRU神經網絡結構圖

        本文采用兩層隱藏層的GRU神經網絡,即輸入層、GRU隱藏層、GRU隱藏層、輸出層的結構。輸入為前文總結計算得到的數據,包括微服務的可用性、吞吐量、時延、故障概率、I/O頻率、CPU使用率、內存使用率、磁盤使用率、網絡訪問頻率、微服務健康度、健康標準、微服務資源最大負載、額外負載和負載代價14個特征值;輸出為級聯(lián)故障的發(fā)生概率。隱藏層包含30個神經元,為全連接層,輸入層與隱藏層間采用ReLU為激活函數,兩層隱藏層之間采用softplus為激活函數。

        同時,還需要一個損失函數來估計預測值與實際值之間的差異。由于均方誤差(MSE)對異常值的敏感性,將MSE作為本文預測方法的損失函數。關于優(yōu)化器方面,選擇自適應矩估計(Adam)優(yōu)化器。算法過程如算法4所示。

        算法4微服務級聯(lián)故障故障概率計算

        輸出:故障概率。

        1.在神經網絡輸入層與隱藏層間嵌入ReLU函數

        2.在兩層隱藏層之間嵌入softplus函數

        3.利用Adma對模型訓練進行優(yōu)化

        4.利用MSE計算訓練誤差

        5.foreachSido

        6.將屬性帶入神經網絡進行計算

        7.endfor

        8.return故障概率

        4 實 驗

        在基于Docker+ Kubernetes+ Istio的網格服務平臺基礎上,運行本文的級聯(lián)故障預測組件,模擬CPU、內存、磁盤和網絡四個資源不足的應用場景,并對比貝葉斯網絡和基于馬爾可夫的動態(tài)故障樹兩種方法,來分析本文方法的優(yōu)勢及其效率。

        4.1 實驗環(huán)境

        4.1.1硬件環(huán)境

        本文系統(tǒng)建立在擁有12個物理服務器節(jié)點的集群之上,其中兩個主節(jié)點用于集群管理和集群調度,是系統(tǒng)的入口節(jié)點,余下的11個節(jié)點為工作節(jié)點。這些節(jié)點的配置信息如表1所示。

        表1 服務器配置信息

        4.1.2軟件環(huán)境

        本文系統(tǒng)部署在64位的Ubuntu16.04操作系統(tǒng)之上,采用的軟件環(huán)境如表2所示。

        表2 軟件版本信息

        4.1.3微服務實例

        在服務網格平臺上部署了72個具有代表性的微服務,這些微服務包括計算密集型服務、數據密集型和通信密集型服務,模擬不同的級聯(lián)故障問題場景,具體微服務類型如表3所示。

        表3 微服務實例類型

        4.2 故障注入

        神經網絡訓練需要在大量有代表性有意義的數據的基礎上進行,實驗需要的數據包括系統(tǒng)正常運行時的微服務狀態(tài)信息以及級聯(lián)故障下的微服務狀態(tài)信息。為了獲取足夠的數據,采用故障注入在系統(tǒng)中設置障礙模擬級聯(lián)故障。

        本文構建了一個故障注入控制器(FIC)。FIC是介于微服務請求者和微服務響應者之間的一個故障注入代理,它通過控制微服務之間的請求和響應消息來模擬和注入故障。FIC由攔截控制器(IC)和觸發(fā)控制器(TC)兩部分組成。在IC中預設了要攔截的目標微服務,IC會進行實時攔截,判定該請求是否針對目標微服務,如圖5所示。如果是,則將該請求消息傳遞給TC,TC對該請求進行更改,更改策略包括擴大請求負載、延遲請求、篡改數據包及丟棄數據包。TC將更改后的數據包回送給IC,IC將該請求發(fā)出。

        圖5 故障注入架構

        本次實驗設置了三組故障場景,如表4所示。

        表4 故障注入場景

        續(xù)表4

        4.3 GRU神經網絡模型訓練

        在連續(xù)的時間內周期性地向系統(tǒng)中注入級聯(lián)故障,使系統(tǒng)在正常運行與故障運行中交替進行,以一次交替為周期,從每個周期中抽取85%為訓練集,15%為測試集。分別從三個級聯(lián)故障場景中收集了3 000條數據,共9 000條數據,7 650條為訓練集,1 350條為測試集,其中均交叉分布著故障數據和非故障數據。

        用訓練好的模型對測試集進行測試,并計算了模型的精確率和MSE,獲得的結果如表5所示。

        表5 模型精確率和MSE

        模型對級聯(lián)故障預測的精確率在85%以上,最高可達91.66%,MSE低于0.02,由此可知本文模型訓練是有效的,可以應用到級聯(lián)故障預測中。

        4.4 實驗結果

        級聯(lián)故障的發(fā)生有其邊界性,當系統(tǒng)負載達到某一程度,才可能引發(fā)故障。因此實驗的第一步是找到一個故障高發(fā)的負載段,然后在此負載下,從前面設計的三個場景入手進行對比實驗,對本文故障預測方法進行評估。

        4.4.1動態(tài)負載下的故障頻率

        首先測試了兩個場景下隨著負載變化級聯(lián)故障發(fā)生概率,分別是單一資源爭用微服務和多資源競爭微服務。

        觀察隨著單一資源爭用微服務負載增加,級聯(lián)故障發(fā)生狀況。如圖6所示,在微服務負載低于300時,沒有級聯(lián)故障發(fā)生。只有當微服務負載突破300后,才開始出現級聯(lián)故障,并且隨著單個微服務負載的增加,級聯(lián)故障發(fā)生概率開始呈上升趨勢,且在負載達到650左右時,故障概率穩(wěn)定在0.36左右。

        圖6 故障概率與單一資源爭用微服務負載關系

        當存在多個資源競爭的微服務負載動態(tài)變化時,級聯(lián)故障的發(fā)生狀況又不一樣了。如圖7所示,當微服務負載超過250時,系統(tǒng)就會出現一定程度的級聯(lián)故障,相比圖6出現得更早。也從一定程度上說明了微服務間的資源爭用關系越復雜越容易導致級聯(lián)故障的發(fā)生。另一方面,當負載超過500時,級聯(lián)故障發(fā)生概率就達到了0.37左右,即接近單一資源爭用微服務動態(tài)負載情況下的極限值,且在負載達到600左右時,故障概率穩(wěn)定在0.42左右。

        圖7 故障概率與多資源爭用微服務負載的關系

        綜合以上兩個實驗數據,可以更加確定微服務間資源爭用導致級聯(lián)故障這一觀點的正確性,同時也顯示具有多個資源爭用關系的微服務實例,更易引起級聯(lián)故障。

        4.4.2故障預測評估

        基于前文提出的三個場景,設置了三組對比實驗,對比本文方法與貝葉斯網絡和基于馬爾可夫鏈的動態(tài)故障樹兩種方法的故障預測效果。三組實驗數據同時從三個故障場景中采集,其中貝葉斯網絡輸入為微服務調用樹和微服務健康指標(包括可用性、吞吐量、時延、故障概率、I/O頻率、CPU使用率、內存使用率、磁盤使用率和網絡訪問頻率),以存在調用依賴的微服務和9個微服務健康指標為故障信息源節(jié)點構建貝葉斯網絡。基于馬爾可夫鏈的故障樹輸入與貝葉斯網絡相同,它在微服務調用樹的基礎上進行故障樹的轉換,將存在依賴的微服務的狀態(tài)作為故障樹的節(jié)點,狀態(tài)的判定以9個微服務健康指標為依據。

        1) 場景一。圖8為基于場景一的三種方法級聯(lián)故障預測準確率隨微服務負載變化趨勢。通過之前的實驗可以知道,當微服務負載達到400時,系統(tǒng)才能顯現明顯的級聯(lián)故障,因此我們的實驗從負載400開始。當我們向系統(tǒng)中大量注入計算密集和通信密集型微服務時,本文方法一開始準確率較低,低于貝葉斯方法。但隨著負載增加,方法預測的準確率逐步上升,從負載600后優(yōu)勢逐漸明顯,在負載1 000時準確率達到90%。而基于貝葉斯網絡和基于故障樹的級聯(lián)故障預測準確率上升不明顯,且不穩(wěn)定。

        圖8 基于場景一的級聯(lián)故障預測對比

        2) 場景二。圖9是基于場景二的級聯(lián)故障下的對比實驗正確率曲線,與場景一相似,本文方法在負載低于600時,準確率較低,甚至低于余下兩種方法。但隨著負載增加,本文方法準確率增勢明顯且更穩(wěn)定。

        圖9 基于場景二的級聯(lián)故障預測對比

        3) 場景三。圖10是場景三下的級聯(lián)故障預測的對比情況??梢钥闯?,相比于場景一和場景二的曲線,場景三在負載低于600時,本文方法準確率略高,增勢也很明顯,準確率最高可達93%。余下兩種方法的準確率仍舊相對平穩(wěn),且存在一定波動。

        圖10 基于場景三的級聯(lián)故障預測對比

        結合以上所有實驗,本文方法在微服務系統(tǒng)中能夠有效地預測出級聯(lián)故障,且相比于貝葉斯網絡和基于馬爾可夫鏈的動態(tài)故障樹,本文方法在高負載時具有明顯優(yōu)勢,準確率更高而且更穩(wěn)定。但是在負載較低時,本文方法表現不如另外兩種方法,分析認為,GRU神經網絡更適合處理大量數據,它善于從海量數據中搜索規(guī)律,而對于小量數據的分析會存在一定偏差。

        5 結 語

        本文研究重點是服務網格中級聯(lián)故障的預測,為此提出了一種結合微服務性能、微服務依賴和微服務資源爭用的級聯(lián)故障建模方法,并利用能夠基于時間序列進行學習的GRU神經網絡算法對級聯(lián)故障進行預測。搭建了實驗平臺,并在平臺上進行了對比實驗,驗證了本文方法的有效性和穩(wěn)定性。實驗表明在高負載時,本文方法與另外兩種方法相比有明顯的優(yōu)勢,而且正確率可以達到90%以上。實驗中發(fā)現,對于不同的因素,級聯(lián)故障的敏感度不同,因此未來可能會針對不同資源角度更加細致地研究微服務的故障因素以及針對不同故障可以采取的規(guī)避措施。

        猜你喜歡
        故障資源服務
        基礎教育資源展示
        一樣的資源,不一樣的收獲
        故障一點通
        服務在身邊 健康每一天
        服務在身邊 健康每一天
        服務在身邊 健康每一天
        資源回收
        招行30年:從“滿意服務”到“感動服務”
        商周刊(2017年9期)2017-08-22 02:57:56
        資源再生 歡迎訂閱
        資源再生(2017年3期)2017-06-01 12:20:59
        奔馳R320車ABS、ESP故障燈異常點亮
        尹人香蕉久久99天天拍| 欧美日本国产亚洲网站免费一区二区| 免费1级做爰片1000部视频| 香蕉久久久久久久av网站| 国产美女在线精品免费观看网址 | 7878成人国产在线观看| 亚洲色大成网站www在线观看 | 精品国产高清自在线99| 欧美xxxx新一区二区三区 | 欧美xxxxx高潮喷水麻豆| 日韩av无码中文无码电影| 国产精品久久久久电影网| 亚洲欧美日韩高清一区二区三区 | 国产成人av三级三级三级在线| 天堂8在线新版官网| 国外精品视频在线观看免费| 偷拍网日本一区二区三区| 亚洲一区二区三区精品久久av| av黄色在线免费观看| 久久亚洲av成人无码电影 | 欧美人成人亚洲专区中文字幕| 久久精品—区二区三区无码伊人色| 国产在线天堂av| 国内精品国产三级国产avx| 国家一级内射高清视频| 日韩亚洲精品国产第二页 | 国产精品免费看久久久8| 日韩精品一区二区亚洲av| 免费大学生国产在线观看p| 一区二区三区视频偷拍| 加勒比东京热一区二区| 国产99久久久国产精品~~牛| 成人性做爰aaa片免费看| 国产精品黄网站免费观看| 日韩一二三四区免费观看| 国产网站一区二区三区| 国产免费艾彩sm调教视频| 精品日韩欧美一区二区在线播放 | 不卡视频一区二区三区| 国内精品九九久久精品小草| 精品国模人妻视频网站|