连接MySQL程序闲置卡顿_是什么造成了数据库的卡顿

93497055a3ca35044f3c61dc92acbec9.png

目录

一、背景

MongoDB 提供了非常强大的性能分析及监控的命令,诸如 mongostat、mongotop 可以让我们对数据库的运行态性能了如指掌。

然而,这次我们在性能环境上就遇到一个非常棘手的问题:

某服务接口在 1-5分钟内偶现超时导致业务失败!

在接口调用上返回超时属于前端的判断,通常是设置的一个阈值(比如 3s)。

由于问题是偶现,且没办法发现有明显的规律,很难直接判断出原因。

而平台在做了微服务拆分之后,问题定位的难度加大了不少,且当前的调用链功能也不够完善。

二、问题定界

业务诊断

在一番分析后,梳理出接口调用的关系图如下:

1c4ebab939e99a01a9eb74062519cec4.png

其中,服务A 通过 RPC调用服务B的接口,而服务B 又通过 MongoDB 进行数据读写。

MongoManager 是 用于管理 MongoDB 的一个代理服务,主要是实现一些数据备份、监控的任务。

在采集了一些数据之后,我们基本把问题范围锁定到了 MongoDB 数据库上面,这些手段包括:

通过对服务A、服务B的接口监控进行观测

通过wiredshark 抓包,分析 DB读写上的响应包时延

通过CommandListener,将1s 以上的慢操作指标进行输出

从接口监控及 wiredshark 抓包结果中确认到,DB 操作的响应时间都出现了偶现的超长(3s以上)。

而通过 CommandListener 将慢操作输出统计后,得到的图表如下:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值