如何利用秒级监控进行mongodb故障排查

摘要: 在我们平时的数据库使用当中,监控系统,作为排查故障,告警故障的重要辅助系统,对dba、运维、业务开发同学进行问题诊断、排查、分析有着重要的作用。并且一个监控系统的好坏,也很大程度上影响了能否精确的定位故障,以及是否能正确进行问题修复,避免下一次的故障。

在我们平时的数据库使用当中,监控系统,作为排查故障,告警故障的重要辅助系统,对dba、运维、业务开发同学进行问题诊断、排查、分析有着重要的作用。并且一个监控系统的好坏,也很大程度上影响了能否精确的定位故障,以及是否能正确进行问题修复,避免下一次的故障。而监控粒度、监控指标完整性、监控实时性是评价一个监控的三个重要因素。

在监控粒度上,目前很多的系统都只能做到分钟级监控,或者半分钟级监控。这样一个监控粒度,在针对当前高速运转的软件环境下,能力已经越来越捉襟见肘。对于一些瞬间爆发的大量异常更是无能为力。而提升监控粒度,带来的成倍增长的大数据量以及成倍降低的采集频率,对于资源的消耗将会是极大的考验。

在监控指标完整性上,当前绝大部分的系统采用的是预定义指标进行采集的方式。这种方式有一个极大的弊端,就是,如果因为一开始没有意识到某个指标的重要性而漏采,但是恰恰却是某次故障的关键性指标,这个时候这个故障便极有可能变成“无头冤案”。

而在监控的实时性上——“没有人关心过去是好是坏,他们只在乎现在”。

以上三个能力,只要做好一个,就可以称得上是不错的监控系统了。而阿里云自研的秒级监控系统inspector已经可以做到1秒1点的真秒级粒度,全量指标采集、无一疏漏——甚至对曾经没有出现过的指标进行自动采集,实时数据展示。1秒1点的监控粒度,让数据库的任何抖动都无处遁形;全量指标采集,给予了dba足够全面完整的信息;而实时数据展示,能第一时间知道故障的发生,也能第一时间知道故障的恢复。

今天就针对mongodb数据库,来聊一聊当遇到db访问超时时,如果利用秒级监控系统inspector进行故障排查:

case 1

之前有一个线上业务,用的是mongodb副本集,并且在业务端进行了读写分离。突然有一天,业务出现大量线上读流量超时,通过inspector可以明显看到当时从库的延迟异常飙高

图片描述

从库延迟飙高,则说明从库oplog重放线程速度追不上主库写入速度,而在主从配置一致的情况下,如果从库的响应速度比不上主库,那只能说明从库当时除了正常的业务操作之外,还在进行一些高消耗的操作。
经过排查,我们发现当时db的cache出现了飙升:

图片描述

从监控中可以明显的看到,cache usage迅速从80%左右升到95%的evict trigger线,并且与此同时,dirty cache也有所攀升,达到了dirty cache evict的trigger线。

对于wiredTiger引擎,当cache使用率达到trigger线后,wt认为evict线程来不及evict page,那么就会让用户线程加入evict操作,然后此时就会大量引起超时。而这个想法通过application evict time指标也可以加以印证:

图片描述

通过上图我们可以清晰的看到,当时用户线程花费了大量时间去做evict,然后导致了正常访问请求的大量超时
然后经过业务端排查,是因为当时有大量的数据迁移job导致cache打满,所以在对迁移job进行限流并且增大cache之后,整个db运行也开始变的平稳。

case 2

某日线上一个使用sharding集群的业务突然又一波访问超时报错,然后短暂时间后又迅速恢复正常。通过经验判断,当时多半有一些锁操作,导致访问超时。
通过inspector,我们发现在故障发生时刻某个shard上锁队列很高:

图片描述

所以基本印证了我们之前对于锁导致访问超时的猜想。那么究竟是什么操作导致了锁队列的飙升呢?

很快,通过对当时命令的排查,我们发现当时shard上的鉴权命令突然飙高:

图片描述

而通过查看代码,我们发现,mongos到mongod虽然使用keyfile进行认证,但是实际也是通过sasl命令的scram协议来进行认证,而这个在认证的时候会有一个全局锁,所以当时瞬间大量的鉴权导致了全局锁队列飙升,然后导致访问超时

图片描述

所以,最后我们通过改小客户端的连接数,来减少这种突然激增的鉴权产生全局锁导致超时。

通过以上两个case,我们能看到,足够小的监控粒度,足够全面的监控指标项,对于故障发生的问题排查有多么重要,而实时性,在监控墙场景下的作用也十分明显。

最后,秒级监控已经在阿里云mongodb控制台开放,云mongodb的用户可以自主进行监控开启,体验秒级监控带来的高清体验。

原文链接

干货好文,请关注扫描以下二维码:
图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/522379.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工作流实战_06_flowable 流程定义的删除

List item 由于群里有些朋友对这个flowable还不是 很熟悉,在群里的小伙伴的建议下,我师傅(小学生05101)制作一个开源的项目源码,一共大家学习和交流,希望对有帮助,少走弯路 如果有不懂的问题可以入群:63316…

百度Q2智能云增长强劲;据悉史上最大 AI 芯片诞生!中兴与奇瑞成立合资公司一起加快开发5G汽车……...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 华为推出旗下第一款可穿戴智…

python的简单程序代码_小白学编程?从一个简单的程序开始学习Python编程

笔者思虑再三还是决定选择图文(因为百家的视频发布画质真不怎么样【囧】)。 笔者学习编程的时间也挺长的,因为业余,因为时间不多,各种原因,自学编程的路特别难走。然后笔者发现,自己能为小白贡献…

从事数据科学前必须知道的五件事儿

摘要: 本文讲解了从事数据科学前应该了解的五件事情,主要是关于学习数据科学时候应该注意的一些事项。目前,人工智能行业非常火热,对应的数据科学分析岗位需求也非常大。很多程序员纷纷转行从事人工智能相关岗位,那么对…

工作流实战_07_flowable 流程定义查看流程图和xml

由于群里有些朋友对这个flowable还不是 很熟悉,在群里的小伙伴的建议下,我师傅(小学生05101)制作一个开源的项目源码,一共大家学习和交流,希望对有帮助,少走弯路 如果有不懂的问题可以入群:633168411 里面都…

这项技术:华为、BAT要力捧!程序员:我彻底慌了... ​

人工智能离我们还遥远吗?海底捞斥资1.5亿打造了中国首家火锅无人餐厅;阿里酝酿了两年之久的全球首家无人酒店也正式开始运营,百度无人车彻底量产。李彦宏称,这是中国第一款能够量产的无人驾驶乘用车。而阿里的这家无人酒店&#x…

手把手教你理解卷积神经网络

摘要: 卷积神经网络是一种识别和理解图像的神经网络。本文将从不同的层次来介绍卷积神经网络。手把手教你理解卷积神经网络(一)本文将继续为你介绍关于卷积神经网络的知识。为了保持文章的简洁性和全面性我将为你提供研究论文的链接&#xff…

工作流实战_09_flowable 流程实例挂起与激活

由于群里有些朋友对这个flowable还不是 很熟悉,在群里的小伙伴的建议下,我师傅(小学生05101)制作一个开源的项目源码,一共大家学习和交流,希望对有帮助,少走弯路 如果有不懂的问题可以入群:633168411 里面都…

2018深圳云栖拉开帷幕,飞天技术汇五大专场邀你参加~

摘要: 感受万物互联的智能时代,洞察数字化转型的全新未来。云栖大会将情景化展示智能城市、智能生活、智能制造、智慧门店等阿里云IoT生态全景,20专场,覆盖AI、新零售等全行业数字化转型解决方案。 飞天技术汇作为阿里云的技术传播…

学了阿里中台,却依然做不好系统? 聊聊阿里的项目管理

戳蓝字“CSDN云计算”关注我们哦!作者 | 墨玖来源| 阿里技术导读:在技术公司、尤其是互联网公司,技术人员作为PM(项目经理)是非常常见的。有些同学得心应手,有条不紊,能得到清晰稳定的预期结果;有些同学则…

视频直播常见问题与解决办法汇总【系列三—直播推流】

摘要: 直播推流初始化设置 要进行直播推流,您必须开启直播加速 > 配置直播域名 > 直播推流,详情参考 快速开始。 如何获取推流地址 直播加速配置成功后,您可以通过以下方式获取对应的推流地址。 登录 视频直播控制台。 直播…

工作流实战_10_flowable 流程实例的删除

项目地址https://gitee.com/lwj/flowable.git代码分支flowable-base视频讲解地址https://space.bilibili.com/485524575/channel/detail?cid94579 用户名密码0000001test0000002test0000003test0000004test文章目录1. 演示2. 代码2.1. 删除实例命令2.2. 执行删除动作1. 演示 …

深入了解机器学习

摘要: 了解机器学习发展史、机器学习是什么?机器学习有什么?看看本文就够了。如今机器学习已经成为了这个时代的热门话题。机器学习已经存在了几十年,但直到最近我们才得以利用这项技术。接下来,让我们一起回顾一下机器…

python程序设计的基本步骤_Python程序设计课程教与学(54、72、80学时教学大纲)...

原标题:Python程序设计课程教与学(54、72、80学时教学大纲)《算法与程序设计》课程教学大纲 Programming and Algorithm Fundamentals (Python-based) 一.基本信息 课程学分:4 ; 面向专业:计算机…

百分点10周年乔迁新址 数据智能服务更上一层楼

戳蓝字“CSDN云计算”关注我们哦!作者 | 刘丹2019年8月,是百分点值得纪念和庆祝的日子,随着百分点团队的迅速扩大与蓬勃发展,全国各地业务开展的有声有色,业绩快速增长,在企业成立十周年之际,更…

用Python及深度学习实现iPhone X的FaceID功能

摘要: 本文主要是展示FaceID解锁机器的基本工作机制,采用的方法是基于人脸映射和孪生卷积神经网络,Github上附详细代码。对于果粉们来说,对新出的iPhone X讨论最多的是其解锁方式,TouchID的继承者——FaceID。对于新一…

工作流实战_11_flowable 流程实例 跟踪流程

项目地址https://gitee.com/lwj/flowable.git代码分支flowable-base视频讲解地址https://space.bilibili.com/485524575/channel/detail?cid94579 用户名密码0000001test0000002test0000003test0000004test文章目录1. 演示2. 代码分享1. 演示 2. 代码分享 public byte[] cre…

企业如何采用机器学习

摘要: 向机器学习专家学习如何理解机器学习开发生命周期,以及如何建立一个团队通过机器学习来解决他们的业务问题。毫无疑问,任何企业都可以利用机器学习的优势将机器学习应用到他们的业务过程中。而机器学习的意义将取决于它是如何被应用的&…

Spark精华问答 | spark的组件构成有哪些?

戳蓝字“CSDN云计算”关注我们哦!Spark是一个针对超大数据集合的低延迟的集群分布式计算系统,比MapReducer快40倍左右,是hadoop的升级版本,Hadoop作为第一代产品使用HDFS,第二代加入了Cache来保存中间计算结果&#xf…

binlog日志_mysql 重要日志文件总结

日志是所有应用的重要数据,MySQL 也有错误日志、查询日志、慢查询日志、事务日志等。本文简单总结下各种日志,以备查阅。二进制日志 binlog二进制日志 binlog 用于记录数据库执行的写入性操作(不包括查询)信息,以二进制的形式保存在磁盘中。使…