平台项目~ 数据库问题分析模块

数据库问题排查模块
一 简介 在平台如何实现针对数据库的问题排查
二 页面设计
   1 第一块内容
     设计
     通过 processlist返回前端
    1 过滤了sleep线程和slave dump线程
    2 按照time时间倒序进行排序
    3 增加了lock关键字过滤
    分析
    1 通过 time时间定位最耗时的慢sql
    2 通过关键字查看是否有MDL锁导致后续请求的阻塞
2 第二块内容
   设计
   通过 processlist针对数据库DB进行归类统计
  分析
  1 可能存在这样的情况,不同的业务不同的库都存在一个实例下,这样根据不同DB的连接统计定位业务
3 第三块内容
  设计
  通过processlist针对数据库总访问数进行归类统计
  分析
  通过非sleep进程的统计与最大链接数的对比来定位是否是sleep线程导致的连接数耗尽
4 第四块内容
  设计
  通过 innodb_trx表针对锁持有事务进行统计
  分析
  1 正在执行的事务,持有的锁,可能导致其他事务的等待,锁设计的不合理
  2 长时间未提交的事务,可能导致其他事务的等待

三 总结

   1 平台的问题是当连接不上数据库的时候是无法进行分析,这是一点不足(可能出现连接数耗尽的情况)

   2 只能捕捉瞬时,不能对之前的问题进行分析,以后会着手解决

      

原文地址:https://www.cnblogs.com/danhuangpai/p/11250514.html