智能诊断 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

点在看

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值