暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

指标相似度分析能发挥什么作用

白鳝的洞穴 2021-04-09
1630
今天一个小伙伴问我为什么要做指标相似度分析。我告诉他,指标相似度分析是利用数据统计的算法去发现指标之间波动的相似性和关联度,从而找出在某个故障出现的情况下相关的指标集来。这样似乎我已经回答了这个问题,不过实际上并没有解决这个问题,发现指标的波动相似性和关联度又有什么意义呢?我们还是先看一个例子再来讨论这个问题吧。

有一个ORACLE数据库出现了健康度突然下降的问题。这个问题的根源在什么方面呢?似乎数据库IO出现了问题。

从数据库IO的指标体系里我们发现每秒物理读的指标出现了异常。不过从每秒物理读数量增加我们无法直接定位问题,因为可能的原因有很多方面,比如DB CACHE设置不合理,SQL语句写的不好,数据库的某些参数设置不合理等,都可能导致这个问题。于是我们调用智能指标分析工具去分析和这个指标相关联的指标有哪些。

从这个诊断工具里,一共发现了5个高相关性的指标,其中最为相近的是每秒直接路径读。看到这里,一些老司机就会心一笑了。这也是一个常见的问题。于是通过直接路径读相关的诊断分析,就可以确认这个问题了。

然后顺藤摸瓜,我们把存在问题的SQL也找出来了:

当我们从一个指标无法直接定位问题的时候,通过指标关联度分析可以找到存在类似波动的指标,这些指标很可能都是由于同一个问题引起的。如果能够找到几个类似的指标,我们定位问题的难度也就降低了。

稍微资深一点的DBA看到这些指标,就可以在心里自己分析,这个问题恐怕和大表扫描导致的直接路径读有关。而多块读平均响应时间也出现了一定的关联性(关联性略低),说明此时数据库的IO也出现了一些问题。

我们再来看一个案例,这是一个MYSQL数据库。客户反应这套系统经常会出现卡顿,相关应用总是时快时慢。打开监控界面我们也看到数据库的健康分呈现出一种周期性的性能下降。

数据库的健康度评分经常出现波动。通过雷达图我们很快就定位了,评分较低的时候是因为物理内存剩余量较低。

为什么会出现物理内存突然降低呢?

从自动诊断的结论上我们可以发现,会话连接和活跃会话是可能引起这个问题的关键点,于是我们和开发商确认了一下,确实数据库采用短连接的方式。当业务较忙的时候,突然连上的会话比较多了,就容易出现问题了。于是为了稳定系统的运行,运维部门增加了云主机的内存,系统也变得稳定了。

实际上这种关联性分析不仅仅可以在DBA分析时发挥作用,也是自动化诊断分析的基础。通过关联分析,可以增加单指标分析的准确度,从而能够更为精确的定位系统存在的问题。

作为自动化分析机器人的鸡尾酒疗法的一部分,通过多指标的交叉验证分析可以十分有效的提高自动化分析的准确性,并且能够通过简单的合集计算就能够裁剪掉大量的诊断路径。在我们以往遇到的案例中,双指标交叉分析可以裁剪掉至少30%的诊断路径,三指标可以裁剪掉一半以上的诊断路径,四指标可以让诊断路径的数量被裁剪掉70%以上。

文章转载自白鳝的洞穴,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论