簡介:本文介紹由南開大學、清華大學、騰訊、國家超級計算天津中心共同合作的論文:基于異構圖的大規模微服務系統性能問題診斷。該論文已被IEEE Transactions on Services Computing期刊錄用
論文標題:Diagnosing Performance Issues for Large-Scale Microservice Systems with Heterogeneous Graph
作者:陶磊,盧香琳,張圣林,欒佳琪,李英可,李明杰,李則言,于慶陽,謝虎成,徐銳杰,胡宸源,楊燦群,裴丹
微服務系統的可用性對業務運營和企業聲譽至關重要。然而,微服務系統的動態性和復雜性給大規模微服務系統的性能問題診斷帶來了重大挑戰。在調查了騰訊公司數百個真實的性能問題案例后,文章發現,以前的故障排除方法未能準確定位根本原因,因為它們忽略了因果關系與調用關系之間的不一致性。因此,文章提出了一種新方法——MicroDig,用于診斷大規模微服務系統的性能問題。具體來說,MicroDig 構建了一個異構傳播圖,以捕捉調用與微服務之間的因果關系。然后,它進行面向異構性的隨機游走(Heterogeneity-Oriented Random Walk,HORW),以確定導致問題的微服務。
文章在三個數據集上評估了 MicroDig 的性能,這些數據集包括來自騰訊的60個真實性能問題案例、來自廣泛使用的開源微服務系統中收集的80個手動注入的問題以及來自一家全球頂級商業銀行使用的電子商務系統中的128個性能問題。MicroDig 在這三個數據集上的Top-3準確率分別達到了94.1%、85.5%和93.8%,顯著優于六種流行的基準方法。
背 景
在真實的生產環境中,微服務的主要性能問題是高延遲和低可用性,這可以從超時調用次數和異常調用次數中分別感知到。性能問題可能由于多種原因引起,例如主機資源有限、硬件可用性和網絡不穩定。當某個服務出現性能問題時,這些異常會沿著調用拓撲傳播,最終可能影響到微服務系統提供的外部服務。為了保證卓越的用戶體驗,運維人員配置了服務級別指標(SLI)和服務級別目標(SLO)來監控微服務系統的可用性。當某個服務的運行狀態未能達到SLO標準時,就會檢測到性能問題。由于服務數量眾多、關系復雜且動態變化,以及微服務系統中調用關系與因果關系之間的不一致性,確定根本原因仍然具有挑戰性。
研究動機
有些工作將調用關系視為異常傳播的因果關系,這在文章提到的場景中過于簡化。圖1展示了一個真實的性能問題,其中A、B和C分別代表三個微服務。A調用B和B調用C的異常調用次數都增加了,然而,當運維人員深入調查細節時,他們發現C沒有任何有意義的錯誤報告。另一方面,來自B的調用(即B調用C)是異常的,這是因為B耗盡了文件描述符,無法與C建立新的連接。總之,A調用B和B調用C的異常率是由B的系統資源所導致的,在這種情況下,B是根本原因服務,這無法通過沿著調用關系進行搜索來定位。在調查了騰訊數百個性能問題后,文章發現超過35%的性能問題受到這類情況的影響。
基于上述觀察,文章發現一個調用的異常不能僅直接歸因于下游服務。相反,調用方和被調用方都可能導致這種情況。因此,僅通過調用關系來捕捉異常傳播是不夠的。文章提出了一種圖模型即異構傳播圖,來比調用關系更精確地描述因果關系。
圖1 一個真實的性能問題案例
方法設計
MicroDig的核心框架如圖2所示。當微服務系統的監控組件檢測到某個服務的運行狀態未能達到SLO標準時,MicroDig會被觸發以定位問題根因。
圖2 MicroDig的核心框架
MicroDig由三個關鍵階段組成:
關聯調用識別階段:MicroDig從問題微服務開始搜索,找到與性能問題相關的候選微服務。大規模微服務系統通常會在短時間內產生海量的服務調用,其中大量的服務調用與性能問題無關。為了更準確地確定與性能問題相關的微服務,文章首先選擇構建端口級別的調用圖。然后通過對圖進行BFS(廣度優先搜索)和異常檢測來保留相關的調用和相應的微服務。最后,將圖中的端口級節點聚合到服務級,如圖3(b)所示。文章首先檢測異常端口,因為如果先進行端口聚合,則異常端口級調用可能會被同一微服務的正常調用淹沒,這可能會導致根因服務在這一步被過濾掉。
異構傳播圖構建階段:MicroDig以微服務之間的調用和候選微服務作為節點,構建異構傳播圖。在關聯調用識別階段構建的關聯圖是有向的,其邊的方向表示服務之間的調用關系。關聯圖不能直接用作根因定位的因果圖。文章基于關聯圖構建了一個反映調用和服務之間因果關系的異構傳播圖。如圖3(c)所示,文章首先將關聯圖中的邊(即邊S1→S2、邊S2→S3等)抽象為調用節點(表示為C12、C23等),并將關聯圖中的節點抽象為服務節點(表示為S1、S2等)。然后,文章在因果圖中添加調用節點與服務節點之間的邊和兩個不同調用節點之間的邊。最后,構建具有不同類型節點和邊的異構傳播圖,在傳播圖中,邊是從原因指向結果。為了執行根因定位,文章翻轉傳播圖中的每條邊,并使邊從結果指向原因。
根因服務定位階段:提出了一種面向異構性的隨機游走算法,在異構圖上進行根因微服務排名。通常在因果圖上使用排序算法來找出根本原因,然而傳統的排序算法不能直接應用于異構因果圖。因此,文章提出了一種新穎的排名算法,即面向異構性的隨機游走(HORW),結合相關系數和異常檢測結果進行根因微服務排名。
圖3 異構傳播圖的構建過程
實驗評估
為了評估MicroDig的性能,文章進行了廣泛的評估實驗,使用了從全球頂級多媒體服務提供商騰訊收集的60個真實性能問題、從廣泛使用的開源微服務系統Train-Ticket中收集的80個手動注入的性能問題,以及從全球頂級商業銀行的電子商務系統中收集的128個性能問題。最終的實驗結果如表1所示,在真實世界數據集和模擬數據集上,MicroDig在94.1%、85.5%和93.8%的性能問題中將真正的根因微服務排名在前三,分別比六種流行的基準方法高出16.0%、32.2%和88.5%。
圖片表1 實驗結果
總 結
文章提出了一種名為MicroDig的方法,用于大規模微服務系統中性能問題的自動根因定位。MicroDig識別關聯調用,并基于動態微服務調用構建異構傳播圖,再應用面向異構性的隨機游走(HORW)來發現異常傳播模式并定位問題服務。通過使用從騰訊收集的真實性能問題以及從Train-Ticket和中國建設銀行收集的手動注入問題,證明了MicroDig的有效性和效率。與六種流行的根因定位方法相比,MicroDig表現出色。
總體而言,MicroDig在性能問題自動根因定位方面展現了很大的潛力和實際應用價值,有效解決了大規模微服務系統中性能問題的根因定位難題,顯著提高了診斷的準確性和效率。
歡迎報名2024 CCF國際AIOps挑戰賽!
2024 (第七屆)CCF國際AIOps挑戰賽由中國計算機學會(CCF)主辦,中國計算機學會互聯網專委會、清華大學、中國科學院計算機網絡信息中心承辦,中興通訊、北京智譜華章科技有限公司、中南大學計算機學院、清華大學計算機科學與技術系、北京必示科技有限公司協辦。同時,本屆AIOps挑戰賽也是OpenAIOps社區成立之后第一屆重要年度賽事。
本次挑戰賽以“基于檢索增強的運維知識問答”為賽題,旨在探索如何結合領域私有技術文檔進行高效私域知識問答。首次采用大模型檢索增強(RAG)技術,基于中興5G領域運維技術文檔,揭示在通用大語言模型基座下,垂直領域知識問答面臨的領域知識缺失、公私域知識沖突、多模態圖表并存等一系列挑戰。
目前挑戰賽報名進行中,歡迎報名參賽!(報名網址:https://aiops-challenge.com)更多賽事相關信息將在社區“智能運維前沿”公眾號發布,同時OpenAIOps社區群將提供賽事通知、技術答疑,有意者可掃碼添加官方微信號(OpenAIOps社區小助手)入群。