DB常见问题排查方法
一般情况下,系统多多少少都会遇到点问题,那么遇到问题之后我们怎么定位原因呢?在这里我只说如何定位DB的问题。
看这篇文章有个前提:监控数据要完整!监控数据要完整!!监控数据要完整!!!
比如下面这个
乍一看,有个性能抖动,如何知道系统是不是有问题,可以通过以下途径知悉:
- 应用日志
- 监控报警
- 用户感知
无论是监控报警,还是用户感知,归根结底还得回归应用,从应用日志发现到底是哪个接口异常,接口异常的原因无外乎以下几种情况:
- 系统异常,比如超出负载
- 网络问题,比如网卡爆满,网络丢包
- io问题,比如刷磁盘,io调度算法设置问题
- 文件系统问题,比如内核bug
- DB问题,比如包含上面的几种情况,烂SQL问题
假如说上面几种情况排查完毕后没有异常,或者通过日志一眼就发现是DB问题,到底是什么问题呢?通常情况下,我会这样做:
- 打开监控页面查看"性能"
如果没有监控,我也没办法了,只能根据应用报错猜了。
下面请睁大眼睛:
1. 查看出问题时间点整体性能
2. 通过异常,找出问题点
《医学的真相》说:“在医学中很多突破都是从研究例外开始。”
老罗也说“在平常的学习中,最珍贵的东西不是那些符合理论的东西,恰恰是那些看着奇怪,例外的东西,现有的理论往往解释不了,你千万不能忽略他,因为它是下一个创新的苗子。”
这里也不例外,比如先看整体qps,tps有没有变化,网络有没有抖动等等,总之就是发现和其他时间段不一样的趋势。这个就是问题点所在,就拿第一张图举例子,我们看到rt飙高,一般来说rt飙高通常情况有以下几种原因:
- 烂SQL 线上90%以上基本是这个原因
- 硬件问题 线上出现过,但是不多
- 文件系统bug
- MySQL bug
- 网络问题
关于烂SQL其实有各种各样的,您可以到网上搜出一大堆,这里就不累述了,以后有时间的话,我可能会写写;
MySQL bug如果排除了烂SQL,有一些诡异的问题是可以怀疑是MySQL的bug的,可以查看bug list;
再次是网络问题,如果确定既不是烂SQL,系统的qps很高的话,如果系统有时不时的抖动,可以查看网络监控;
最后网络问题和文件系统问题出现的几率真是少之又少,但也不排除,只能具体问题具体分析了;
DB常见问题排查方法的更多相关文章
- ffmpeg编码常见问题排查方法
播放问题排查: 一旦我们遇到视频播放不了,第一件事,就是要找几个别的播放器也播放看看,做一下对比测试,或者对码流做一些基础分析,以便更好的定位问题的源头,而各个平台比较常见的播放/分析工具有如下几个: ...
- SQL Server同步复制问题排查方法
1.应用复制的命令时在订阅服务器上找不到该行 解决方法:用系统存储过程sp_browsereplcmds(返回分发数据库中存储的可读版本复制命令的结果集,并将其用作诊断工具. 此存储过程在分发服务器上 ...
- JAVA线上常见问题排查手段(小结)
在平时开发过程中,对于线上问题的排查以及系统的优化,免不了和Linux进行打交道.每逢大促和双十一,对系统的各种压测性能测试,优化都是非常大的一次考验.抽空整理了一下自己在线上问题排查以及系统优化的一 ...
- CentOS 7 执行 yum 命令失败问题的排查方法
一个执着于技术的公众号 简介 本文主要为大家讲解 CentOS 7系统中执行yum命令失败等常见问题的排查方法. 1.执行yum命令报404错误 1)检查yum仓库是否配置正确,可以到阿里云下载rep ...
- Linux安全事件应急响应排查方法总结
Linux安全事件应急响应排查方法总结 Linux是服务器操作系统中最常用的操作系统,因为其拥有高性能.高扩展性.高安全性,受到了越来越多的运维人员追捧.但是针对Linux服务器操作系统的安全事件也非 ...
- WIN7(VISTA)系统无法上网问题排查方法
WIN7(VISTA)系统无法上网问题排查方法 一.无法通过DHCP自动获取到IP 1. 确认正确配置路由器的DHCP功能 a.一般租期建议设置为1-3小时,推荐设置1小时. b.DHCP地址池不要和 ...
- Chrome JS内存泄漏排查方法(Chrome Profiles)
原文网址:http://blog.csdn.net/kaitiren/article/details/19974269 JS内存泄漏排查方法(Chrome Profiles) Google Ch ...
- 库不存在的排查方法:ImportError: No module named selenium2Library
解决办法: 把selenium2Library改成Selenium2Library 安装下面四个: python-2.7.13.amd64.msi robotframework-ride-1.5. ...
- 【Crash】C++程序崩溃排查方法
windows下C++程序release版本崩溃错误排查方法. 一个你精心设计的24小时不间断运行,多线程的程序,突然运行了几个月后崩了,此问题是非常难以排查的,也是很头疼的问题. 现利用Google ...
随机推荐
- java.lang.IllegalArgumentException: No converter found for return value of type: class com.smart.result.Page
今天学习了一下spring boot 中的mybatis,用mybatis来增删改查用户,获取用户,添加用户,修改用户,删除用户,修改用户,都是可以的,但是获取带分页的用户列表,一直抛出这个java. ...
- Syncthing源码解析 - 源码目录说明!
Syncthing是一个免费开源的p2p软件,Go语言编写的! 官网:https://syncthing.net/ 源码:https://github.com/syncthing/syncthing/ ...
- 指针版P3690 【模板】Link Cut Tree (动态树)
题面 传送门 题解 鉴于数组版实在是太慢我用指针版重新写了一遍 代码基本是借鉴了lxl某道关于\(LCT\)的题 //minamoto #include<bits/stdc++.h> #d ...
- 洛谷P4250 [SCOI2015]小凸想跑步(半平面交)
题面 传送门 题解 设\(p\)点坐标为\(x_p,y_p\),那么根据叉积可以算出它与\((i,i+1)\)构成的三角形的面积 为了保证\(p\)与\((0,1)\)构成的面积最小,就相当于它比其它 ...
- [ActionScript3.0] 使用FileReferenceList处理多个文件上载
package { import flash.display.Sprite; import flash.events.DataEvent; import flash.events.Event; imp ...
- 快速搭建微信小程序开发环境
1.工具软件: 注:本文介绍的工具软件已分享到百度云盘,直接下载并按照本文介绍安装即可. 开发工具 v0.7 百度云链接: https://pan.baidu.com/s/1jIQ7i8A密码: aq ...
- 理解 atime,ctime,mtime (下)
话不多说,开始下篇. # 前言 通过 "理解 atime,ctime,mtime (上)" 我们已经知道了atime 是文件访问时间:ctime是文件权限改变时间:mtime是文件 ...
- 微信小程序ofo小黄车+thinkphp5.0打造全栈应用
原文地址:https://www.imooc.com/article/20310 ofo至今还没有微信小程序(很费解),每次用ofo都得去支付宝,很不方便,我用微信用的比较多,无意间在简书上面看到某人 ...
- 2016级算法期末上机-I.难题·ModricWang's Fight with DDLs III
1126 ModricWang's Fight with DDLs III 思路 由于题目中已经说明了时间经过了正无穷,因此初始位置是不重要的,并且每条边.每个点的地位是均等的.因此到达每个点的概率就 ...
- 通过源码看原理之 selenium
# selenium的历史1. selenium1.x:这个时候的selenium,使用的是JavaScript注入技术与浏览器打交道,需要Selenium RC启动一个Server,将操作Web元素 ...