




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

稍微资深一点的DBA看到这些指标,就可以在心里自己分析,这个问题恐怕和大表扫描导致的直接路径读有关。而多块读平均响应时间也出现了一定的关联性(关联性略低),说明此时数据库的IO也出现了一些问题。
我们再来看一个案例,这是一个MYSQL数据库。客户反应这套系统经常会出现卡顿,相关应用总是时快时慢。打开监控界面我们也看到数据库的健康分呈现出一种周期性的性能下降。

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

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

从自动诊断的结论上我们可以发现,会话连接和活跃会话是可能引起这个问题的关键点,于是我们和开发商确认了一下,确实数据库采用短连接的方式。当业务较忙的时候,突然连上的会话比较多了,就容易出现问题了。于是为了稳定系统的运行,运维部门增加了云主机的内存,系统也变得稳定了。
实际上这种关联性分析不仅仅可以在DBA分析时发挥作用,也是自动化诊断分析的基础。通过关联分析,可以增加单指标分析的准确度,从而能够更为精确的定位系统存在的问题。
作为自动化分析机器人的鸡尾酒疗法的一部分,通过多指标的交叉验证分析可以十分有效的提高自动化分析的准确性,并且能够通过简单的合集计算就能够裁剪掉大量的诊断路径。在我们以往遇到的案例中,双指标交叉分析可以裁剪掉至少30%的诊断路径,三指标可以裁剪掉一半以上的诊断路径,四指标可以让诊断路径的数量被裁剪掉70%以上。
文章转载自白鳝的洞穴,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




