基于異構圖的大規模微服務系統性能問題診斷

簡介:本文介紹由南開大學、清華大學、騰訊、國家超級計算天津中心共同合作的論文:基于異構圖的大規模微服務系統性能問題診斷。該論文已被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社區小助手)入群。

在這里插入圖片描述
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/18945.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/18945.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/18945.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

docker刪除所有容器

筆記 要使用 Docker 刪除所有容器(無論是停止的還是正在運行的),可以按照以下步驟操作: 1. **刪除所有正在運行的容器**: 首先,您需要停止所有正在運行的容器。可以使用以下命令: dock…

MATLAB分類與判別模型算法:K-近鄰法(KNN)分類代碼 【含Matlab源碼 MX_001期】

算法簡介: K-近鄰法(KNN)是一種簡單而有效的分類算法,也可用于回歸問題。它的基本原理是根據待分類樣本與訓練樣本的距離,選取最近的K個樣本進行投票決定分類。該算法無需訓練過程,而是利用訓練數據集直接…

數據結構與算法-反轉單鏈表

數據結構與算法-反轉單鏈表 大家好,歡迎回到我們的算法學習系列。今天,我們將探討一個在算法面試中非常經典的問題——反轉單鏈表。 什么是單鏈表? 在介紹問題之前,我們先簡單了解一下單鏈表。單鏈表是一種線性數據結構&#x…

氣缸前端鎖緊技術探討:從四個方面、五個方面、六個方面和七個方面深度解析

氣缸前端鎖緊技術探討:從四個方面、五個方面、六個方面和七個方面深度解析 在工業自動化領域,氣缸作為關鍵的執行元件,其前端鎖緊技術的穩定性與可靠性直接影響到整個系統的運行效率。本文將從四個方面、五個方面、六個方面和七個方面&#…

python 面對對象 類 補充

isinstance isinstance():判斷一個實例化對象是否屬于這個類的,isinstance(對象,類) class Man():passclass Women():passa Man()print(isinstance(a, Man)) # True print(isinstance(a, Women)) # False 類的屬性操作 getattr() 獲…

小白windows系統從零開始本地部署大模型全記錄

大家好,最近兩年大語言模型風靡全球,最近,不少開源大模型,將模型部署到自己的電腦上,用個性化的數據微調想必是不少人的愿望,這次,讓我來分享從hugging face上下載部署chatglm3-6b中的經驗。 1.…

自動控制: 最小二乘估計(LSE)、加權最小二乘估計(WLS)和線性最小方差估計

自動控制: 最小二乘估計(LSE)、加權最小二乘估計(WLS)和線性最小方差估計 在數據分析和機器學習中,參數估計是一個關鍵步驟。最小二乘估計(LSE)、加權最小二乘估計(WLS&…

conda環境里安裝ffmpeg

遇到的問題 在執行腳本的時候提示: /home/xxx/anaconda3/envs/llm-asr/lib/python3.9/site-packages/pydub/utils.py:170: RuntimeWarning: Couldnt find ffmpeg or avconv - defaulting to ffmpeg, but may not workwarn("Couldnt find ffmpeg or avconv - …

wifi貼碼推廣哪家靠譜?

如今越來越多的人想輕資產創業,WIFI貼碼是共享行業最無成本的創業項目了,而在選擇廠商的時候,大家就想要知道哪家公司靠譜,更好、更便宜、可靠。那么wifi貼碼推廣哪家靠譜?別急,下面小編將帶你一起了解。 目…

OpenAI開始訓練新的前沿模型——但GPT-5至少在90天內不會推出

ChatGPT 制造商 OpenAI 今早宣布,已開始訓練其新的“前沿模型”,并成立了一個新的安全委員會,由現任董事會成員 Bret Taylor(OpenAI 董事會主席兼客戶服務初創公司 Sierra AI 聯合創始人、前谷歌地圖負責人和前 Facebook 首席技術…

BGP路由策略實驗

一、實驗拓撲 二、IP分配(骨干) R1: 0/0/0 15.0.0.1 24 0/0/1 18.0.0.2 24 0/0/2 19.0.0.1 24 R2: 0/0/0 16.0.0.1 24 0/0/1 15.0.0.2 24 R3: 0/0/0 17.0.0.2 24 0/0/1 18.0.0.1 24 R4: 0/0/0 16.0…

元宇宙vr工業產品展示空間降低研發成本

元宇宙產品虛擬展廳搭建編輯器為您提供了一個自助式元宇宙場景搭建的絕佳平臺。無論您是設計公司、攝影公司、營銷公司還是教育機構,我們都能為您量身打造專屬的元宇宙解決方案,滿足您的多樣化需求。 元宇宙產品虛擬展廳搭建編輯器具備強大的3D編輯功能&…

藍牙設備中的UUID

文章目錄 一、Device UUID二、Service UUID 一、Device UUID Device UUID也可以被稱作為DeviceID。 Android 設備上掃描獲取到的 deviceId 為外圍設備的 MAC 地址,相對固定。iOS 設備上掃描獲取到的 deviceId 是系統根據外圍設備 MAC 地址及發現設備的時間生成的 …

如何成為AI工程師

AI工程師(不是打標員)已經成為新一代的熱門崗位(高薪、有前景),無論你是計算機科學專業的學生,還是已經在其他技術領域工作的專業人士,可以通過以下幾點來大概了解如何成為AI工程師。 1. 技術技…

【吊打面試官系列】Java高并發篇 - ThreadLocal 是什么?有什么用?

大家好,我是鋒哥。今天分享關于 【ThreadLocal 是什么?有什么用?】面試題,希望對大家有幫助; ThreadLocal 是什么?有什么用? ThreadLocal 是一個本地線程副本變量工具類。主要用于將私有線程和該…

dust3r部署踩坑全記錄

目前dust3r是三維重建最新最好的技術,運用了ViT編碼器、Transformer、注意力機制、回歸等技術,無需相機參數標定。 但是我部署過程中有很多坑,記錄一下。 1.OSError: CUDA_HOME environment variable is not set. Please set it to your CU…

Itme4 對象使用前進行初始化

fun(){ int a; printf("%d\n", a); cout << a << endl; //會報錯 使用了未初始化的變量a } //若a是全局變量則不會報錯 會默認初始化為0 在對象中優先使用初始化列表&#xff1a; ABEntry::ABEntry(const std::string& name, const std::string&…

數字工廠管理系統可以和哪些軟件集成

隨著工業4.0時代的到來&#xff0c;數字工廠管理系統已成為制造業轉型升級的核心驅動力。數字工廠管理系統通過集成各種軟件和技術&#xff0c;實現了生產過程的數字化、網絡化和智能化&#xff0c;大大提高了生產效率和管理水平。本文將探討數字工廠管理系統可以與哪些軟件集成…

Axure RP軟件漢化操作步驟

隨著互聯網產業的發展&#xff0c;設計師已經成為一個越來越受歡迎的職業&#xff0c;設計軟件已經成為設計師必不可少的工具。說到設計軟件&#xff0c;不得不說的是 Axure rp &#xff0c;越來越多的設計師使用它來設計產品原型&#xff0c;作為美國 Axure Software Solution…

OrangePi Kunpeng Pro體驗——安裝Hass與驅動SPI小屏幕

OrangePi Kunpeng Pro 是一款面向開發者和愛好者的高性能開發板。在本次測評中&#xff0c;主要將以前的一些代碼在該開發板上實現&#xff0c;包括docker部署hass&#xff0c;引腳驅動SPI小屏幕。中間遇到了一些小小問題&#xff0c;但都成功了&#xff0c;一起來試試吧~ 一、…