基于异构图的大规模微服务系统性能问题诊断

news2024/11/16 19:54:48

简介:本文介绍由南开大学、清华大学、腾讯、国家超级计算天津中心共同合作的论文:基于异构图的大规模微服务系统性能问题诊断。该论文已被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.coloradmin.cn/o/1713841.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【计算机毕业设计】388微信小程序足球赛事及队伍管理系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

解密网络流量监控:优化IT运维的利器

引言: 在当今数字化时代,网络流量监控是维护网络稳定与业务连续性的关键。作为一名资深网络工程师,我将分享一些关于网络流量监控的重要知识,并探讨如何在IT运维中运用这一工具优化网络性能,确保业务的顺畅进行。 1. 网…

微前端(无界)入门

主应用通过props给子应用传值 父子应用通过eventBus通信 通过路由同步实现记录子应用的路由状态 主应用 main.ts: import ./assets/main.cssimport { createApp } from vue import { createPinia } from pinia import WujieVue from wujie-vue3import App from ./App.vue impo…

dust3r部署踩坑全记录

目前dust3r是三维重建最新最好的技术,运用了ViT编码器、Transformer、注意力机制、回归等技术,无需相机参数标定。 但是我部署过程中有很多坑,记录一下。 1.OSError: CUDA_HOME environment variable is not set. Please set it to your CU…

sprongboot+vue 游泳馆管理系统

游泳馆管理系统 spring bootvue 主要有游泳课程预约、网上购票、教练预约、游泳器材管理、会员管理等功能; 1、管理员 登录、修改密码 购票管理:查看订单、删除订单、修改订单 教练管理:教练信息查询、修改 课程信息:增删改查课程…

【class19】人工智能初步---语音识别(5)

【class19】 上节课,我们学习了:语音识别模型的结构和原理,同时调用创建好的AipSpeech客户端实现了语音转文字功能。 本节课,我们将初识字幕,学习这些知识点:1. srt字幕 2. 获取时间数据 …

认识NoSql

SQL是结构化的,NoSql是非结构化的 SQL是关联的: Nosql是无关联的: SQL采用的是SQL查询: 语法固定,好处是:只要是关系型数据库(Mysql,Oracle),都能够使用相同的语句进行查…

Re73 读论文:ULMFiT Universal Language Model Fine-tuning for Text Classification

诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文全名:Universal Language Model Fine-tuning for Text Classification 模型简称:ULMFiT 模型全名:Universal Language Model Fine-tuning ArXiv网址:https…

Three.js 入门介绍与环境搭建

Three.js 入门介绍与环境搭建 一、引言 Three.js 是一个强大的用于在网页上创建和展示 3D 图形的 JavaScript 库。艾斯视觉作为ui设计和前端开发服务商在这里很高兴能与你共同探讨学习:它使得开发者能够轻松地构建令人惊叹的 3D 场景和交互体验。在这篇文章中&…

Type ‘null‘ is not assignable to type ‘T‘. - ArkTSCheck

设置泛型将参数配置为 null 时抛出了如下异常: Type null is not assignable to type T. T could be instantiated with an arbitrary type which could be unrelated to null. <ArkTSCheck> 解决办法 在 null 后面添加 ! 即可,以表示该值不会为 null data: T null! 以…

python-web框架应用程序-Django环境搭建

python-web应用程序-Django环境搭建 一、Django入门 使用Django&#xff08;http://djangoproject.com/&#xff09;来开发一个名为“学习笔记”&#xff08;Learning Log&#xff09;的项目&#xff0c;这是一个在线日志系统&#xff0c;让你能够记录所学习的有关特定主题的知…

leetcode - 20.有效的括号(LinkedHashMap)

leetcode题目有效的括号&#xff0c;分类是easy&#xff0c;但是博主前前后后提交了几十次才通过&#xff0c;现在记录一下使用Java语言的写法。 题目链接: 20.有效的括号 题目描述&#xff1a; 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&…

SAP 生产订单报工函数BAPI_PRODORDCONF_CREATE_TT不返回报错信息

最近财务一直反馈MES报工的数据都没有成本,然后去查看原因发现是财务当月的KP26的价格没有进行维护,导致没有收集到工单的报工成本。 但是在前台操作CO11 报工的时候,系统会给出报错的信息 但是我们在调用函数BAPI_PRODORDCONF_CREATE_TT的时候,系统并没有返回报错的信息…

Windows电脑高颜值桌面便利贴,便签怎么设置

在这个看颜值的时代&#xff0c;我们不仅在衣着打扮上追求时尚与美观&#xff0c;就连电脑桌面也不愿放过。一张唯美的壁纸&#xff0c;几款别致的小工具&#xff0c;总能让我们的工作空间焕发出不一样的光彩。如果你也热衷于打造高颜值的电脑桌面&#xff0c;那么&#xff0c;…

下一代 CI/CD:利用 Tekton 和 ArgoCD 实现云原生自动化

一、回顾目标 背景&#xff1a; ​ 部门业务上云&#xff0c;之前服务采用传统的部署方式&#xff0c;这种方式简单&#xff0c;但是不能为应用程序定义资源使用边界&#xff0c;很难合理地分配计算资源&#xff0c;而且程序之间容易产生影响。随着互联网时代的到来&#xff…

Leetcode - 131双周赛

一&#xff0c;3158. 求出出现两次数字的 XOR 值 本题是一道纯模拟题&#xff0c;直接暴力。 代码如下&#xff1a; class Solution {public int duplicateNumbersXOR(int[] nums) {int ans 0;long t 0;for(int x : nums){if(((t>>x)&1) 1){ans ^ x;}else{t | (…

图片去水印工具(低调用哦)

一、简介 1、它是一款专业的图像编辑工具&#xff0c;旨在帮助用户轻松去除照片中不需要的元素或修复照片中的缺陷。无论是修复旧照片、消除拍摄时的不良构图&#xff0c;还是删除照片中的杂乱元素&#xff0c;都能帮助用户快速实现这些目标。其功能强大且操作简单&#xff0c…

代码随想录算法训练营第36期DAY43

DAY43 343整数拆分 注意&#xff1a;当几个数的数值相近&#xff0c;乘积才会尽可能地大&#xff08;好想&#xff1a;数一大一小&#xff0c;最大当然是自己乘以自己&#xff09; 代码随想录官方题解&#xff1a; class Solution {public: int integerBreak(int n) { …

在outlook的邮件中插入HTML;HTML模板获取

本文介绍如何在outlook发送邮件时&#xff0c;在邮件中插入HTML&#xff0c;此HTML可以从获取模板自行进行修改。 文章目录 一、下载HTML模板&#xff08;或自己制作好HTML文件&#xff09;二、outlook新增宏三、新建邮件&#xff0c;插入HTML 一、下载HTML模板&#xff08;或自…

某烟草企业数字化转型物流信息化咨询项目规划方案(117页PPT)

方案介绍&#xff1a; 烟草企业数字化转型物流信息化咨询项目规划方案将为企业带来多方面的价值&#xff0c;包括提升物流运营效率、降低物流成本、优化供应链管理、增强企业竞争力和促进可持续发展等。这些价值的实现将有助于企业在激烈的市场竞争中保持领先地位并实现可持续…