智能诊断 vs 人工诊断 —— 从五分钟定位并排除一次数据库连接中断问题说起...

58a0d341c8e37038dcca5d5cb8788e81.png

智能运维的一个重要任务是故障智能诊断,用智能化的手段辅助和代替运维人员的责任。然而故障诊断能做好并不容易,因为IT系统太复杂了,数据库系统本身就有数百个相互关联的参数,牵一发而动全身。加上数据库运行的复杂环境,包括不同类型不同厂商的操作系统、服务器、网络、存储、虚拟机、集群、容器等等,复杂度指数级提升。在人工诊断的模式中,专家首先会基于自己的经验,穷举自己脑子里与故障情况相关的诊断路径,然后逐步缩小诊断范围,最终定位问题。当已知路径无法定位问题的时候,专家诊断就会陷入瓶颈,此时专家需要通过知识库查找或向外求助来扩大诊断范围,并逐一排查,最终定位问题。这就形成了传统的人工运维模式。

dc926001f7da88ff39bf917180c364d3.png

智能诊断和人工诊断的路径差不多,从已知问题的起点开始搜索诊断路径,但智能诊断的诊断路径来源于专家知识、案例积累、历史数据等多种渠道,因此智能诊断初始化的诊断路径数量要远远多于人工诊断。而且,智能诊断利用关联性分析,对诊断路径可以快速收敛,叠加机器的算力,可以相对人工诊断更快速更准确地发现和定位问题。与此同时,新的诊断过程和结果可以回馈给系统积累成新的经验,为以后的诊断提供参考。智能诊断形成平台化的新模式:

e785af3a74dc41472940e90625d5a704.png

我们来看一个案例:最近某企业的 IT 系统上遇到的一个突发问题,已连续稳定运行361天的多个业务系统突然出现报警,检查发现“数据库无法连接” 。

DBA紧急登录 zCloud 系统,切换到健康评分看板查看问题,发现数据库健康评分跌落到0分,显示排名第一的问题是数据库无法连接(如下图)。

3449a502cbb878ea26d065bd07b20ff4.png

迅速下钻,点击该问题查看详情,发现诊断分析给出的原因是“会话耗尽”,并明确诊断到 ORA-12520 报错。这个依据很充分,DBA确认。

a70351f7d39d769bccf13db951a20f03.png

但是,会话为什么会突然耗尽呢?DBA带着这个问题继续查看,发现排名第二的也是一个严重问题(如下图)——“等待/堵塞会话数过多或者过长”,而且监控数据显示当时活动会话数高达885,已经占到设置的数据库最大连接数上限的85%以上(此案例的上限设置为1000)。

20ea0265a88e67639f3c9c3e4b789899.png

同时,智能诊断已经给出解决办法,最优的是“禁用密码错误延时登录功能”,点击查看解决办法详情(如下图)。

869bc82f11a278c8ec6e6fb7a3b537e5.png

看到这里,DBA已经非常明确,引起问题的原因是未禁用密码错误延时登录功能导致。不用再往下分析了,直接后台登录 SQLPLUS 使用这个方案,紧急设置 28401 事件,果然很快的解决问题,业务恢复正常!

整个问题发现和定位的过程很快,DBA只用了不到5分钟就定位并排除了这次数据库连接中断故障。如果依赖传统人工分析,即使是很有经验的DBA,也无法在这么短的时间内完成。针对当时大量会话被锁定问题,zCloud 首先识别出大量 SQL 语句被 librarycachelock 堵塞,且 librarycachelock 的锁类型是47-> accountstatus,最终根因明确地命中“Oracle 数据库密码错误延时登录的功能”(如下图)。

6abec4b8e40c74bab59fc3b55fa937d1.png

继续观察诊断树可以发现,zCloud 在找到 SQL 语句被 librarycachelock 堵塞时,从已知问题的起点遍历了许多诊断路径(如下图),排查了 CPU、网络、UserIO、各种锁等等,诊断路径的覆盖完整度很高。这些诊断路径来源于基于专家经验的诊断模型。在根因分析的过程中,每一个节点的判断都不是独立的,上下级均有逻辑关系。以检查点异常为线索,每一个检查节点都有独立的数据采集、加工、以及判定问题的规则,只有在上一级判断为存在问题的状态时,才会继续向下一级,所以在扫描每一级检查节点的同时也在对诊断路径做收敛。

例如这个案例中第一层扫描后,发现主机可以连接,但是数据库无法连接,所以主机相关的下级路径不再继续扫描,从而避免对所有诊断路径做无谓的扩张,给系统带来不必要的负担。识别 SQL 语句被 librarycachelock 堵塞后,再层层深入,靶向性并有策略的快速收敛,最终找到无法连接的原因是 12520 错误,典型的数据库会话资源耗尽导致。事后回溯,正是由于业务使用期间调整了用户密码,但是部分业务没有重启才导致了这个问题的发生。

0a3ff611c030bd55f18198c621c6d26d.png

本案例并不复杂,但如果是人工诊断,短时间列举出这么多条诊断路径几乎不可能,排查3-5个诊断路径后也已经耗费大量精力。这在数据库无法连接、业务中断的情况下带给运维人员的压力可想而知。而智能诊断工具,恰好可以在诊断路径的发散与收敛以及算力上弥补人工的不足,切实帮助运维人员解决问题。

还有人问,在用户环境里,运维对象都具备十分强的个性化,智能诊断通用诊断模型是否能发挥作用?zCloud 的做法是:除预置的专家诊断路径外,智能诊断在使用过程可以同步吸收用户经验,通过自定义诊断树将个性化案例积累丰富到智能诊断中,实现智能诊断模型的不断进化,用户环境使用越久,智能诊断越能准确高效。

253cfcfe4af1f9b2969923feb9ea3689.png

zCloud 数据库云管平台,身边的“数据库专家”

云和恩墨 zCloud 数据库云管平台,基于 WaaS(Wisdom as a Service,智慧即服务)理念打造知识库与智能诊断功能,将行业最佳实践和专家经验转化为平台能力,让高级“数据库专家”实时在线,有效保障数据库稳定高效运行。

WaaS 模型从数据到智慧,持续将专家经验代码化,为平台动态赋能:数据层面利用管理大数据,实现对数据库做精准画像,改变过去基于指标运维的不足;知识层面通过共建共享知识库,解决过去管理经验孤岛、样本不足的问题;智慧层面通过用户贡献个案、专家标注、机器学习三个来源生成知识点、案例、算法,实现经验代码化。

3087bbaccb2b78a60d34f29abfe2549a.png

智能诊断, 精准定位问题根因

zCloud 智能诊断覆盖数据采集→问题感知→自动诊断→识别根因→故障自愈五个阶段。从数据采集开始,在不影响数据库稳定性的前提下,最大程度覆盖和优化采集指标,并通过一系列算法,过滤分级,收敛检测点,降低误报率等,破除浅层表象,同时进行事件关联,自动生成诊断关系树,层层深入,最终找到问题根因,并提出解决方案。

723ddfcd4421273f254170179ee29fac.png

zCloud 知识库积累的最佳实践和专家经验为智能诊断动态赋能,持续提升平台的智能化诊断能力。

22fd61dafdce84cc66bb7b03f2245283.png

5ad218641e37a8ba246c6d133af881e2.gif

延展阅读

1dfbd85d33f47f2b3627387d18dda086.png

3bdc2be69d4cddc6721a63680512c549.png

0aa4649945880d54c09628761684f133.png

5083749ac07f571865e03449862a8104.png

FOLLOW US

关注我们

回复关键词“云管平台

了解有关 zCloud 产品的更多信息。

08eb1301ddb757765712bd5ad422892a.png

d84b4381e57378df6cc7885438793b88.png

点分享

f9043dd59cc1098e6313750b37277936.png

点收藏

22dad364cc2d60c2233a789f44c84335.png

点点赞

073efa88b39c4244c26b9b9483851d4b.png

点在看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值