Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1293260
  • 博文数量: 196
  • 博客积分: 4141
  • 博客等级: 中将
  • 技术积分: 2253
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-21 20:04
文章存档

2019年(31)

2016年(1)

2014年(16)

2011年(8)

2010年(25)

2009年(115)

分类: 系统运维

2019-04-13 15:57:48



  1. B. 智能运维 --- 质量保障 --- 异常检测 --- 指标异常定位
  2.     瓶颈分析 --- 决策树
  3.         目标:找出哪些因素的影响会导致搜索响应时间大于1秒钟
  4.         解决方案
  5.             首先FOCUS使用系统每天产生的日志数据来训练决策树,从决策树中可以分析得到引发高搜索响应时间(HSRT)的条件,由于每天的数据会训练出一棵决策树,因此多天后会有多棵决策树产生;
  6.             接下来在多棵决策树中挖掘出相似的会引发高搜索响应时间(HSRT)的条件,这些条件在多天中重复出现,可以判断为长期的引起高搜索响应时间(HSRT)的可能条件;
  7.             最后评估挖掘出的引发高搜索响应时间(HSRT)条件中每个属性的影响,从而得出优化系统性能的方案。下面对这三部分进行举例说明。
  8.         影响评估
  9.             通过控制实验的方式,每次只对条件中的一个属性取反,然后在历史数据中寻找满足新条件的数据,将该条件下高搜索响应时间(HSRT)的比例与原始条件下高搜索响应时间(HSRT)的比例进行比较,分析该属性的影响。最终,运维人员通过分析结果制定系统瓶颈的优化策略。
  10.     版本上线如何智能提示熔断
  11.         复杂度
  12.             同时满足低检测时延和高准确性要求。
  13.             KPI数量巨大。
  14.             KPI类型多样。
  15.             KPI曲线剧变可能由其他因素导致。
  16.         FUNNEL设计思想
  17.             确定影响集合:  由于运维人员会基于服务层次来命名服务,所以FUNNEL可以自动化地确定影响集合。影响集合指的是可能受影响的服务器、实例和服务的集合。
  18.                 变更服务:模块A。
  19.                 关联服务:模块B、模块C、模块D。
  20.                 测试实例:服务器1到服务器l以及进程1到进程l。
  21.             检测性能变化:FUNNEL使用一种基于奇异谱变换的性能变化检测方法,以准确快速地检测KPI曲线剧变。
  22.                 SST 将训练数据映射到正常子空间中,并找出正常子空间和需要测试的数据之间的差异。SST 的核心思想是发现时刻t 的数据点 x(i) 的前后变化。然而,在正常子空间出现噪声时,SST 时具有较低的准确性, 另外SST 具有较高的计算开销。
  23.                 为了减轻由突发性流量等原因导致的噪声(例如尖峰)对最终变化得分的影响,FUNNEL通过使用前置矩阵更多信息的方法,提高了SST的鲁棒性。为了提高SST算法的计算效率,FUNNEL使用矩阵压缩和隐式内积计算的方法,降低了SST算法的计算复杂度。这样,改进的SST算法具有检测时延低、计算效率高、鲁棒性高的优点,解决了同时满足低检测时延和高准确性要求、KPI数量巨大、KPI类型多样三个挑战。
  24.             排除其他因素导致的KPI曲线剧变:FUNNEL使用分流测试的思想确定这些KPI曲线剧变是否由软件变更导致。
  25.                 针对灰度发布中非关联服务的场景
  26.                     FUNNEL采用分流测试的思想,对比测试组和对照组。这一对比的原理是,除了软件变更以外的其他因素既会影响测试组,也会影响对照组。测试服务器的KPI曲线构成测试组,而对照服务器的KPI曲线构成对照组。
  27.                     FUNNEL使用DiD方法来确定KPI剧变是否由软件变更导致。DiD用以评估在特定时间点实施的干预措施的效果。具体的,DiD 比较测试组与对照组随时间的变化,并将差异归因于软件变更的影响。DiD 基于以下假设:在没有软件变更的情况下,测试组 KPI 曲线的平均测量值与对照组 KPI 曲线的平均测量值之间的差异不会随时间的变化而变化。
  28.                 针对关联服务和非灰度发布的场景
  29.                     因为关联服务中没有对照服务器或对照实例,所以对照组为空。此外,如果运维人员一次性在所有服务器上部署软件变更,而不是以灰度发布的方式部署软件变更,此时对照组也为空。
  30.                     在本场景中,测试组由软件变更前后的 KPI 曲线测量值构成,而对照组由 KPI 曲线的历史测量值构成。如果 Web 服务或服务器的性能变化是由周期性导致的,那么对照组和测试组之间应该没有相对的性能变化。
  31.     MSRA AIOps多维指标突变定位: iDice
  32.         项目背景
  33.             维护大型在线软件系统的一个挑战,是对于用户上报的问题(Issue Reports),运维人员需要快速识别其中的主要异常原因,以便尽快解决问题、及时改善用户体验。不同于传统基于BI工具的人工分析方法, 本文介绍的快速定位主要异常的方法——iDice,是一个基于AIOps自动方法。
  34.             通常情况下,一个软件系统下的issue report的数量是相对稳定的,但是有时会发生issue report的数量突变(通常是骤增)的情况,往往由个别attribute combination对应的issue report数量突变引起的(attribute combination或combination,指特定属性值组合,如“Country=India; TenantType=Home; DataCenter=DC1”),这些突变的combination称为effective combination,其对应的issue report称作emerging issue,本文的要解决的问题就是如何快速找出导致issue report数量突变的effective combination。
  35.         复杂度分析
  36.             效率低下(Inefficient)。如果属性较多,并且每个属性都较多属性值,那么combination的数目将非常巨大,这使得人工定位时间成本变得非常高昂,甚至不可能完成。
  37.             有效性差(Ineffective)。人工方法是非常ad-hoc的探寻工作。有时可能会漏掉一些可能的effective combination,有时找到的结果包含冗余和重复信息。当某些元素变化不明显时,准确性也会比较低。例如总指标没有触发异常报警,但是有部分细粒度指标变化量已经非常大,这种情况人工查找非常困难。
  38.         要点分析
  39.             影响力(Impactful)。由于用以运维的各项资源有限,首先要解决的问题肯定是影响力最大的问题。因此,一个effective combination对应的issue report数量应该是比较大的。
  40.             足够的变化量(Reflecting changes)。一个effective combination应该在变化程度上足够显著,才能够将自己与其他combination区分开。
  41.             冗余要少(Less redundant): 一个effective combination应该是简洁的,因为冗余度高的结果会降低检测的准确性,并且浪费的后续调查工作的时间。
  42.         具体细节
  43.             Impact based Pruning:为了有效地减少搜索空间,本文根据combinations的影响力进行剪枝,也就是只考虑issue report数量大的combinations,对于那些数量不足够大的combinations,直接剪枝删掉的报告。iDice通过采用数据挖掘算法、计算支持度、设定阈值的方法来实现这一目的。
  44.             Change Detection based Pruning:除了具有影响力之外,要寻找的effective combination还应该与新出现的问题相关。换句话说,需要找出与问题报告数量显著增加相对应的effective combination。iDice通过应用异常检测算法(本文采用了GLR: Generalized Likelihood Ratio 算法)来衡量combination是否显著变化,然后将变化不显著的 combinations 剪枝删除。
  45.             Isolation Power based Pruning:一个effective combination应该能够将具有变化的combinations与没有变化的其他combinations隔离开来,这个性质可以帮助进一步消除结果集合中可能存在的冗余。
  46.             Result Ranking:经过以上三步剪枝,通常可以得到一个effective combination的集合,再根据这些combination的相对重要性对它们进行排序,进行进一步剪枝。
  47.     清华AIOps新作:蒙特卡洛树搜索定位多维指标异常
  48.         项目背景
  49.             本文问题需求是尽可能准确的找到根因集合,即使集合中的元素指标值比较小或者占比比较小,也不宜采用暴力剪枝的方法将这些元素剪枝掉(上一篇文章中的iDice算法就是这样做的,但其场景有所差异)。例如某一元素(*,location1,*,*)的PV值虽然很小(表示来自location1的访问量较少),对于我们的运维也是非常重要的,若它是根因的一部分,需要尽可能的找出它并尽快恢复。
  50.         复杂度分析
  51.             准确衡量一个元素或集合是根因的可能性非常困难。不同元素的值是相互依赖和影响的,首先父元素和子元素间具有加和关系,此外如表 1 所示,元素间还有更为复杂的关系
  52.             要遍历搜索所有可能的集合是不可能做到的。由于可加和的KPI拥有多维度的属性,随着维度的增加或粒度的细化,元素数目呈指数级爆炸式增长。
  53.         HotSpot算法设计
  54.             核心思想:HotSpot概览见图 2,它将问题转化为在一个巨大空间的搜索问题后,应用 MCTS 作为基础搜索算法,并且提出了一个根因可能性评分指标,作为每个集合的度量和 MCTS 中的价值函数; 此外,HotSpot还采用分层剪枝的方法以进一步降低搜索复杂度(逐层搜索,利用前一层的结果对该层先做剪枝)。
  55.         具体细节
  56.             Ripple effect:该规则旨在说明,任何一个元素值变化时,最细粒度层次中它的后代节点值将按照一定比例(通常是相同比例)进行变化;因体系的可加和性,有了最细粒度元素值,即可推导出其他所有元素值。
  57.             Potential score:由Ripple effect知,任何一个元素值变化时最细粒度元素会等比例变化,而最细粒度变化元素又可将这些变化“传导给”其他所有元素。
  58.             MCTS算法:MCTS解决一个Cuboid中的空间过大、搜索太慢的问题。它是一种启发式算法,理论上给的时间越长结果越准确,实际中常通过设定阈值(准确性阈值、时间阈值等)的方法,当找到满足阈值的结果即可停止搜索。
  59.             分层剪枝:随着cuboid中元素数目的增加,在相同时间内其准确性会下降。因此,为了进一步降低搜索的复杂度,本文在层间采用 分层剪枝 的策略。基本思想是,HotSpot逐层搜索cuboid,即从第1层到第L层;对于前一层中ps过小的元素,将其在本层中的子元素剪枝去掉。

阅读(2472) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~