基于因果图的灰度故障定位

news2024/11/24 21:03:16

简 介

本文介绍由南开大学、华为技术有限公司、清华大学共同合作的论文:面向服务器操作系统的非侵入式灰度故障定位。该论文已被The ESEC/FSE Conference 2024(The ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering)会议录用。

论文标题:Illuminating the Gray Zone: Non-Intrusive Gray Failure Localization in Server Operating Systems。

作者:张圣林,赵咏欣,熊潇,孙永谦,聂晓辉,张嘉诚,汪峰来,郑弦,张玉志,裴丹。


及时定位灰度故障的根本原因对于保证服务器操作系统的稳定性至关重要。以往的侵入式灰度故障定位方法通常需要修改应用程序的源代码,限制了此类方法在实际运维环境中的广泛应用。

因此,文章提出了GrayScope,一种基于服务器操作系统中指标数据的非侵入式灰度故障根因定位方法。其核心思想是将专家知识与因果学习技术相结合,以捕捉更可靠的指标间因果关系。然后,它结合指标相关性和异常程度,帮助识别灰度故障的潜在根因。此外,它还能推断出指标间的灰度故障传播路径,从而对根因结果提供可解释性,并提高运维人员修复灰度故障的效率。文章基于1241个注入的灰度故障案例和135个来自华为工业数据的案例评估了GrayScope的性能。GrayScope的AC@5达到90%,可解释性准确率达到81%,明显优于当前流行的根因定位方法。文章的代码已经发布在https://gitee.com/milohaha/grayscope。

背 景

在服务器操作系统中,组件之间复杂的交互很容易导致性能或可用性问题。灰度故障是一个值得关注的重要问题,它是服务器操作系统介于健康与不健康之间的一种临界状态,会导致系统不稳定或运行效率下降。

由于缺乏实用的细粒度诊断工具,要准确定位灰度故障需要耗费大量人力物力,运维人员需要反复尝试才能排除故障。此类故障严重影响了系统的性能和可用性,但有关灰度故障根因定位的研究却相对较少。一些侵入式方法由于修改源码成本高、定位周期长,限制了它们的实际应用。传统的统计分析方法在进行根因定位时容易受到数据噪声的影响。使用机器学习技术从指标数据中学习特征模型进行根因定位通常依赖于许多高质量的标注案例。基于因果图的方法可以学习因果图并获得潜在的根因列表,在现实世界的根因定位中表现出卓越的性能,它们有望在服务器操作系统中实现基于指标的非侵入式灰度故障定位。

研究挑战

◆ 服务器操作系统中指标之间的因果关系复杂

服务器操作系统中通常有数百个指标。随着时间的推移,服务器操作系统中的指标数据会发生动态变化,这些指标之间的关系也会动态演化。以往的方法仅采用因果学习技术来构建因果图,导致因果图过于庞大和复杂,无法高效进行根本原因推断。

◆ 指标相关性利用不足

以往的工作只考虑指标的异常程度,而忽略了每个指标与灰度故障之间的相关性。然而,指标与灰度故障之间的相关性可以指导根因推断方法定位导致灰度故障的指标。忽略这种相关性会降低根因推断的性能。

◆ 结果缺乏可解释性

系统组件中的灰度故障会随着数据流或共享资源传播,可能会扩大对整个系统的影响。缺乏有关灰度故障传播路径的信息会影响运维人员修复故障的效率。

结构设计

GrayScope的整体工作流程如图1所示,分为四个主要模块:

图片
图1 GrayScope整体工作流程

1、数据收集和异常检测。GrayScope使用指标收集工具,以固定间隔从服务器操作系统的多个数据源收集运行时监控指标。当检测到应用服务的关键性能指标异常时,它会触发根因定位。

2、因果关系图学习。GrayScope首先根据专家知识将相关指标插入骨架图,从而构建一个指标因果关系结构图。然后,它使用观测窗口分析指标之间的因果关系,以进行因果关系测试。通过将指标因果关系结构图与指标之间的因果关系进行整合,得到指标因果关系图。

3、根本原因推断。GrayScope将指标与关键性能指标之间的相关性以及指标本身的异常程度的加权结合作为随机游走的转移概率。从异常关键性能指标开始,GrayScope沿着指标因果关系图随机游走,生成潜在的根本原因排序列表。

4、传播路径推断。GrayScope将指标因果关系图与潜在根本原因排序列表相结合,以推断根本原因在服务器操作系统内的可能传播路径,这为灰度故障如何在服务器操作系统中传播提供了可解释性,有助于运维人员实施有针对性的修复策略。

实验评估

文章对比了GrayScope与4个指标根因定位方法。为了评估方法在不同应用场景中的准确性,文章选用了四个应用场景:高斯数据库(GaussDB)、Redis数据库(Redis)、Kafka分布式发布订阅消息系统(Kafka)和Tomcat应用服务(Tomcat)。最终的实验结果如表1所示。在总体性能方面,GrayScope优于其他方法,其Avg@5达到了0.82,与第二名相比提高了18%,说明结合专家知识以捕捉更准确的因果关系,并将部分相关性与异常程度相结合以进行根本原因推断,这两点增强了GrayScope的有效性。
在这里插入图片描述
表格1实验结果

总 结

在当前服务器操作系统中,灰度故障根因定位变得至关重要。GrayScope通过挖掘指标与灰度故障传播模式之间的因果关系来定位根本原因。GrayScope将专家知识与因果学习技术相结合,以确保学习到更可靠的指标因果图。GrayScope通过结合指标部分相关性和异常程度推断灰度故障根因,提高了定位的准确性。此外,GrayScope对推断的根因推荐了灰度故障可能的传播路径,增强了结果的可解释性。

实验证明,GrayScope在灰度故障根因定位方面表现出色。总体而言,文章为应对服务器操作系统内灰度故障根本原因的定位提供了新的思路,有力推动了该研究领域的进展与应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1685857.html

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

相关文章

【易生支付官网注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

mybatisPlus-DB静态工具

方法跟mybatisplus的service接口非常像,静态工具可以避免依赖循环注入。

异步爬虫学习实战项目:水效标识网

大家好,我是南枫,今天一起来学习异步爬虫。 文章开始之前,我们先搞清楚为什么要学异步爬虫?我们之后在工作中会遇到爬大量数据,比如百万数据采集,用平常的方法爬取的效率会比较低,所以要学习异…

React 其他 Hooks

其他 Hooks useRef 可用于获取 DOM 元素 const ScrollRef useRef(null)ScrollRef.current useContext (先回顾一下之前的 Context 知识,借用之前 ppt 和源码) Hooks 中使用 useContext 来获取 context 的值 // 父组件创建 contextexpor…

在MySQL数据库中的视图和事务。

视图 view 临时表 作用:优化多表查询的效率 可以将经常使用的连接查询结果使用视图进行保存,避免多次重复的笛卡尔积运算 MySQL数据库在多表查询的时候会自动进行笛卡尔积运算。 如果将来经常要用到某一个多表查询的结果就可以使用视图将这个结果…

Android 观察者模式(OBSERVER)应用详解

文章目录 1、观察者模式设计初衷1.1. 解耦对象之间的依赖关系1.2. 允许动态的依赖关系1.3. 自动通知和更新1.4 设计初衷的详细说明1. 对象之间的解耦2. 动态依赖关系3. 自动更新 2、实现细节2.1. Subject 接口和实现2.2. Observer 接口和实现2.3. 主类 3、主要角色4、关系示意图…

Nginx - Stream 日志模块不完全指北

文章目录 Pre官网Nginx Stream模块基础功能Nginx Stream访问日志的缺陷解决方案或替代方案安装和配置nginx-log-enhancement模块1. 下载nginx-log-enhancement模块源代码2. 解压源代码3. 配置Nginx源代码4. 编译和安装Nginx5. 配置nginx-log-enhancement模块6. 重启Nginx7. 测试…

I/O '24|学习资源焕新,技术灵感升级

2024 年 5 月 15 日凌晨举行的 Google I/O 大会为各地的开发者们带来了新的灵感。面对技术革新,相信各位开发者们都迫不及待想要自己上手试一试。 别急,Google 谷歌今年为中国的开发者们准备了一份特别的学习资源,让开发者们自由探索新知。 G…

RedisTemplate操作Redis, 看这一篇文章就够了

文章目录 1. String 命令1.1 添加缓存1.2 设置过期时间(单独设置)1.3 获取缓存值1.4 删除key1.5 顺序递增1.6 顺序递减1.7 常用的 2. Hash命令2.1 添加缓存2.2 设置过期时间(单独设置)2.3 添加一个Map集合2.4 提取所有的小key2.5 提取所有的value值2.6 根据key提取value值2.7 获…

【VTKExamples::Texture】第六期 TextureThreshold

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享VTK样例TextureThreshold,并解析接口vtkTexture,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ~Y…

20240524每日后端---------聊聊编写简历

简历 简历就是你的名片。 生活中很多朋友却不拿简历当一回事。 最近看了几十份应聘简历,我不得不佩服有些老哥,工作十来年,简历还是表格的格式,不仅看着不好看,而且排版还贼差。 第一感官就很差好吧。。。 好的简历 …

二叉树(详解)

在了解二叉树之前呢我们先来了解一下树形结构,因为二叉树就是树形结构的一种特殊情况,它有这非常好的性质,是很常用的一种结构。 目录 一.什么是树形结构? 二.树形结构常见的名词 三.树的存储 四.二叉树 1.二叉树的概念 2.…

python web自动化(Pytest实战)

1.UnitTest框架与Pytest框架对⽐ 1) unittest框架介绍 Unittest则是Python语⾔的标准单元测试框架。 Unittest⽀持⾃动化测试,测试⽤例的初 始化、关闭和测试⽤例的聚合等功能,它有⼀个很重要的特性&#xff…

勒索病毒的策略与建议

随着网络技术的快速发展,勒索病毒攻击成为全球范围内日益严重的网络安全威胁。勒索病毒通过加密用户文件或锁定系统来勒索赎金,给个人和企业带来了巨大的损失。因此,了解如何应对勒索病毒攻击至关重要。本文将概述一些有效的防范措施和应对策…

深入Django项目实战与最佳实践

title: 深入Django项目实战与最佳实践 date: 2024/5/19 21:41:38 updated: 2024/5/19 21:41:38 categories: 后端开发 tags: Django 基础项目实战最佳实践数据库配置静态文件部署高级特性 第一章:Django项目架构与设计原则 Django框架概述 Django是一个高级的P…

目前流行的前端框架有哪些?

目前流行的前端框架有很多,它们可以帮助开发者快速构建高质量的前端应用程序。本文将介绍一些目前比较受欢迎的前端框架,并分析它们的优缺点。 React React 是一个由 Facebook 开发的开源前端JavaScript库,用于构建用户界面,尤其…

如何从Android恢复已删除的文件?3 种有效的方式

有时我们可能会错误地删除Android设备上的重要文件。更疯狂的是,Android手机上的文件在一夜之间消失了,我们不知道为什么。我们感到非常遗憾和恼火,但不知道。但是,此时学习如何从Android手机恢复已删除的文件为时已晚&#xff0c…

二.常见算法--贪心算法

&#xff08;1&#xff09;单源点最短路径问题 问题描述&#xff1a; 给定一个图&#xff0c;任取其中一个节点为固定的起点&#xff0c;求从起点到任意节点的最短路径距离。 例如&#xff1a; 思路与关键点&#xff1a; 以下代码中涉及到宏INT_MAX,存在于<limits.h>中…

怎么压缩pdf pdf在线压缩 pdf文件压缩大小

pdf文件无论在何种设备上打开&#xff0c;PDF文件都能保持其原始的布局和格式&#xff0c;这对于文档共享和打印非常重要。PDF不仅支持文本&#xff0c;还能嵌入图像、视频、音频以及动态链接等元素。PDF文件支持加密和密码保护&#xff0c;可以限制访问、编辑、复制或打印文档…

Dalle2学习

Dalle2 mini有GitHub库并且有网页可以直接测试