NOMS20-MicroRCA-Root Cause Localization of Performance Issues in Microservices

总结

  • 使用属性图来模拟微服务系统的异常传播

  • 使用图和权重、PageRank的方法来定位问题

  • 已知的性能问题表现在权重上(异常症状和资源关联)

  • PageRank对可能的问题节点进行排序,很新颖

  • 能够更准确得定位问题,能够从症状明显的服务和症状不明显的服务中准确得找出根因,这是别的方法做不到的地方(作者言)

  • 权重、图的数据来源仍然是默认的调用信息、调用结构、时间等

  • MicroRCA: 将性能症状于相关资源利用率相关联,推断出根本原因

Intro:

  • 微服务挑战

    1. 复杂的依赖(很多服务)2. 大量的监控数据 3. 异构的服务 4. 频繁的更新
  • 提出MicroRCA

    1. 收集应用(响应时间)和系统层级(cpu、内存)的数据,检测服务级别(service)的异常
    1. 一旦检测到,构造包含服务和host的属性图(不仅包含异常路径,还包含host上的所有服务)
    1. MRCA将异常和资源利用率相关,并排序根因
  • 优点:通过业务异常与资源利用率的相关性,MicroRCA可以识别出异常且服务异常症状不明显的非计算密集型服务,减轻虚警对定位根本原因的影响。

  • 贡献:

  • 提出属性图来模拟微服务系统的异常传播

  • 提出一种方法,能够将异常症状和资源关联,从而定位问题

总览

  • MicroRCA

  • 检测到异常 -> 构建相关服务和节点的属性图 -> 构建子图 -> 排序问题

  • 数据收集:

  • 服务网格+系统监控

  • 异常检测

  • 无监督学习: Distance-Based online clustering BIRCH

  • 检测慢响应时间作为异常

  • 根因定位三步曲:属性图构建、异常子图构建、错误服务定位

根因定位

  • 属性图构建

  • 构造一个属性图来表示微服务环境中的异常传播

  • 选中的服务:不仅包含错误路径涉及的服务(异常在同一节点的服务间扩散)

  • 基础架构:正常运行时的框架

  • 异常子图构建

  • s1->s2: s2为异常节点

  • 节点附加属性:平均异常响应时间rt_a

  • 异常服务定位

  • edge 权重赋值

    • 权重1:异常程度,越异常越大

    • 权重2:异常节点对正常节点的影响,corr(t(Ei,j), t(rt_a(i)))

    • 权重3:异常响应时间和主机资源利用率的最大相关度

    • 最后一项为入度为异常的所有边的平均值

  • 共有三个属性

  • 服务异常打分

  • 节点平均权重 * 最大[资源和异常延时之间的相关系数]

  • 定位

  • PageRank

    • v: 最终排序
    • p: 移动概率(根据权重计算)
    • 1-c: 继续传播, c: 随机跳跃
    • u: 节点的异常分数

实验

  • 两个指标

  • PRk:topk包含真实故障的概率,k越小,精度越高

  • 平均PRk: 整体性能

  • 实验看来,top1大多数情况能找到问题

作者

FireKnight

发布于

2023-01-12

更新于

2023-01-12

许可协议

评论