Performance Issue Diagnosis for Online Service Systems

论文地址:http://research.microsoft.com/en-us/groups/sa/srds.pdf


相关概念:
服务等级目标 ServiceLevel Objective, SLO ): 该域定义了服务请求者和服务的用户之间相互协定的服务等级。服务等级包含若干指标, 诸如可用性、 性能、 可靠性等。服务等级的每一个方面都是一个需要实现的目标。

服务等级协议( Service-Level Agreement, SLA ):服务 等级协议是关于网络服务供应商和客户间的一份合同,其中定义了服务类型、服务质量和客户付款等术语。

关键绩效指标(Key Performance Indicators, KPI): 通过对组织内部 流程 的输入端、输出端的关键参数进行 设置 取样 计算 分析 衡量 流程 绩效 的一种目标式 量化管理 指标 ,是把企业的 战略目标 分解为可操作的工作目标的工具,是企业 绩效管理 的基础。

系统状态:监控数据每段时间测量一次,用于计算KPI和系统指标。若KPI的值违反了SLO,称监测到一次 KPI violation。此时系统处于  SLO-violation 状态,否则处于  SLO-compliance 状态。

性能问题( performance issue ):所监控的系统在某段时间发生的连续 SLO-violation 异常,一般是人为确定边界,间隔小的可看成一个issue

背景知识:
异常检测(outlier detection)[1]
分类关联规则(CAR)[4]
基于树增强型朴素贝叶斯网络(TAN)的分类模型[2,3]

摘要:
研究问题:对于一个在线服务系统的性能问题(performance issue),找到造成这个问题的根本原因的 系统指标(metric),称为指向标(beacon)。本文提出一种新的方法来找到对应issue的beacons,包括挖掘指标数据,解决之前基于分类的方法的问题。

Keywords:performance issue diagnosis; class association rule; monitoring data analysis

1、介绍

beacon:指向造成一个特定issue的根本原因的metric的集合
从根本原因到表现出这个issue,可能有一个传导路径包含很多因素,所以对于一个issue,对应不同的中间因素有不同的beacon,这些beacon能提供很强的上下文信息,以便找到根本原因

识别一个issue的beacon很耗时。由于监控数据量很大,但是通常只有一小部分和给定的issue相关[1,2,3]

本文提出一种快速有效的识别issue的beacon的方法,主要贡献如下:
(1)提出一种新方法从系统metric中挖掘beacon,包括异常指标检测,分类关联规则(CAR)挖掘,对数似然性排序
(2)已经将这种方法用于一个实际产品环境中,性能比之前的方法好,能找到beacon

接下来各章内容:
第2章,相关研究;第3章,阐明问题;第4章,提出方法;第5章,评估结果;第6章,引用文献

2、相关研究

之前的方法[1-5,8,9]用数据分析处理性能监控和诊断。
给出服务等级指标(SLO)状态,[2,3]给出提出一种基于树增强型朴素贝叶斯网络(TAN)的分类模型,用几个系统指标推测状态。
[1]用L1-logistic模型改进了上述方法,更精确的识别相关性强的指标

简单的思路是用之前基于分类的方法的签名(signature)作为beacon,但是之前的方法目的是区分不同的issue,而不是提供诊断,所以基于分类的方法有三个不足:
(1)对每个issue训练单独的模型,造成过拟合
(2)能识别一般特征(general symptoms),而忽略次要特征(minor symptoms)
(3)没有充分利用上下文关系

3、阐明问题

A 指标预处理

系统的两个状态:监控数据每段时间测量一次,用于计算KPI和系统指标。若KPI的值违反了SLO,称监测到一次 KPI violation。此时系统处于 SLO-violation 状态,否则处于 SLO-compliance 状态。

系统指标包括:系统资源利用率(CPU使用率,磁盘队列长度等),关键事件的计数(windows内核事件,重要服务事件)

B 基本概念

定义1:Si为第i个时刻的系统状态,1:SLO-violation,0:SLO-compliance,设有n个时刻,S大小(1,n),
定义2:M为系统指标向量,表示为<M1,M2,...,Mk>,设有k个指标,M大小(1,k)
定义3:MRi为第i个时刻系统指标的观测值,表示为,<mi1,mi2,...,mik>,MR大小(n,k)

设输入为S,M,MR,本文提出的方法旨在对于每个性能issue,找到对应的beacon(beacon为M的子集)

4、提出方法

先介绍人工找出beacon的一些经验,本文的方法就是将这些直观经验实现为算法,以便快速处理大量监控数据,找到beacon。
直观经验如下:
(1)issue发生时,对应beacon值异常(或高或低于正常范围)
(2)SLO-compliance (正常状态)时,beacon值也正常
(3)issue通常为一段连续的 SLO-violation,在相邻的 SLO-violation 时刻,beacon值相同

本文的方法分两步:
(1)训练阶段:
检测每个指标正常取值范围,标注每个时刻的值为High,Low,Normal;
用分类关联规则(CAR)找到指标异常和状态异常的联系,结果作为候选集;
(2)诊断阶段:
对给定issue,计算每个候选的对数似然性并排序,返回得分高的

A 指标离散化(对指标做标注)

检测指标的正常取值范围,用异常检测[1]实现,用该指标先验值的p%确定离散化门限,p=2
离散化后,标记指标值为 High,Low,Normal

样本(Sample):一个时刻中,KPI状态和离散化指标为一个样本,即(Si,MRi)

B 挖掘指标异常和issue的关联(挖掘并剪枝规则候选集)

通过CAR挖掘到一些规则,记为MC->S,MC为前提(antecedent),S为推论(consequence)
目的:找到一些CAR,满足MC为若干指标异常(High或Low),S为SLO-violation

conf(MC->S)表示该规则置信度,sup(MC->S)表示该规则出现次数,大于给定门限则被挖掘出

剪枝:对于挖掘出的规则 MC->S,满足下列任一条件则删除
(1)存在MCx->S,MCx属于MC,且conf(MCx->S)>conf(MC->S),即存在置信度更高的子集MCx,则删除当前规则
(2)存在MCy->S,MC属于MCy,且sup(MCy)=sup(MC),即存在一些指标MCy-MC,与MC同时出现,则删除当前规则

C 相关指标集排序

直观看,若CAR与issue匹配,那么MC中的指标只在issue发生时异常,其他时段正常

步骤:
(1)扩展issue,囊括附近的SLO-compliance时段
(2)对一个CAR计算下面式子的值,用于计算对数似然性
(3)设Pi表示第i个时刻的似然性概率
若MRi满足MC,Si=1 推出 Pi=p(S|MC)
若MRi满足MC,Si=1 推出 Pi=p(S|-MC)
计算issue所在时段内的所有Pi的对数和,即为该CAR的对数似然性

排序返回排在前面的CAR,找到对应的MC

D 算法讨论

基于分类的算法的问题:
对于持续时间短的issue,数据不足,造成过拟合。
若将多个issue组合,增大数据避免过拟合,出现两个新问题:
(1)多个issue可能由多种原因(mixed cause)导致,对应不同的指标,只训练一个分类器导致精度下降
(2)可能有耦合影响(coupling-effect),如可能有多个指标的变化影响一个指标,这个指标又直接导致issue,但是基于分类的方法只能找到最后一个指标,但是找不到导致这个指标变化的其他指标

本论文算法的解决方法:
(1)对所有数据挖掘候选模型,解决过拟合问题,然后从中找出和当前issue最匹配的
(2)CAR不仅能挖掘主要的指标,还能挖掘出符合规则的其他指标

E 应用于实践

本文方法已应用于一个多层在线系统,每层的主机都有相似的硬件和软件配置

(1)基于服务层的分析
计算每层的beacon:先对该层每个主机的指标离散化,然后将其合并为训练集,用CAR挖掘beacon集。(训练集允许聚合相似主机的CAR次数,提高准确率)
对于给定issue,确定issue时间段,在主机上的这个时间段离散化指标,找出指标异常的主机,计算CAR得分。每层均如此处理,得到k个CAR高分结果
(2)增量挖掘
实际系统在不断产生大量监控数据,CAR算法则需要遍历所有历史数据,但由于计算量大,实际系统无法实现。
提供两种策略解决该问题:
1)利用性能数据的性质减少样本数:一般系统性能大部分时间都处于SLA-compliance(正常)状态,但我们只对SLA-violation状态的指标感兴趣。故移除SLA-compliance状态时段的样本,并记录移除时段的长度。只维护适当大小的SLA-compliance样本集
2)实现一个增量挖掘,进一步减小CAR计算量

5、评估结果

评估环境有两个:实验室环境TPC-W,实际用户产品环境SystemX
测试方法:本论文方法,TAN分类器[2,3],L1-Logistic回归[1]
测试参数:准确率(=正确识别beacon/识别beacon),覆盖率(=正确识别beacon/正确beacon)































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值