线上故障如何快速排查?来看这套技巧大全

简介: 有哪些常见的线上故障?如何快速定位问题?本文详细总结工作中的经验 , 从服务器、JAVA应用、数据库、redis、网络和业务六个层面分享线上故障排查的思路和技巧 。较长 , 同学们可收藏后再看 。

线上故障如何快速排查?来看这套技巧大全

文章插图
 
前言线上定位问题是 , 主要靠监控和日志 。一旦超出监控的范围 , 则排查思路很重要 , 按照流程化的思路来定位问题 , 能够让我们在定位问题时从容、淡定 , 快速的定位到线上的问题 。
线上故障如何快速排查?来看这套技巧大全

文章插图
 
线上问题定位思维导图
一 服务器层面1.1 磁盘1.1.1 问题现象当磁盘容量不足的时候 , 应用时常会抛出如下的异常信息:
java.io.IOException: 磁盘空间不足或是类似如下告警信息:
线上故障如何快速排查?来看这套技巧大全

文章插图
 
1.1.2 排查思路1.1.2.1 利用 df 查询磁盘状态利用以下指令获取磁盘状态:
df -h结果是:
线上故障如何快速排查?来看这套技巧大全

文章插图
 
可知 / 路径下占用量最大 。
1.1.2.2 利用 du 查看文件夹大小利用以下指令获取目录下文件夹大小:
du -sh *结果是:
线上故障如何快速排查?来看这套技巧大全

文章插图
 
可知root文件夹占用空间最大 , 然后层层递推找到对应的最大的一个或数个文件夹 。
1.1.2.3 利用 ls 查看文件大小利用以下指令获取目录下文件夹大小:
ls -lh结果是:
线上故障如何快速排查?来看这套技巧大全

文章插图
 
可以找到最大的文件是日志文件 , 然后使用rm指令进行移除以释放磁盘 。
1.1.3 相关命令1.1.3.1 df主要是用于显示目前在 linux 系统上的文件系统磁盘使用情况统计 。
(1)常用参数
启动参数:
线上故障如何快速排查?来看这套技巧大全

文章插图
 
(2)结果参数
线上故障如何快速排查?来看这套技巧大全

文章插图
 

线上故障如何快速排查?来看这套技巧大全

文章插图
 
1.1.3.2 du
主要是为了显示目录或文件的大小 。
(1)常用参数
启动参数:
线上故障如何快速排查?来看这套技巧大全

文章插图
 
(2)结果参数
线上故障如何快速排查?来看这套技巧大全

文章插图
 
1.1.3.3 ls
主要是用于显示指定工作目录下的内容的信息 。
(1)常用参数
启动参数:
线上故障如何快速排查?来看这套技巧大全

文章插图
 
(2)结果参数
线上故障如何快速排查?来看这套技巧大全

文章插图
 
1.2 CPU过高1.2.1 问题现象当CPU过高的时候 , 接口性能会快速下降 , 同时监控也会开始报警 。
1.2.2 排查思路1.2.2.1 利用 top 查询CPU使用率最高的进程利用以下指令获取系统CPU使用率信息:
top结果是:
线上故障如何快速排查?来看这套技巧大全

文章插图
 
从而可以得知pid为14201的进程使用CPU最高 。
1.2.3 相关命令1.2.3.1 top(1)常用参数
启动参数:
线上故障如何快速排查?来看这套技巧大全

文章插图
 
top进程内指令参数:
线上故障如何快速排查?来看这套技巧大全

文章插图
 
(2)结果参数
线上故障如何快速排查?来看这套技巧大全

文章插图
 

线上故障如何快速排查?来看这套技巧大全

文章插图
 
二 应用层面2.1 Tomcat假死案例分析2.1.1 发现问题监控平台发现某个Tomcat节点已经无法采集到数据 , 连上服务器查看服务器进程还在 , netstat -anop|grep 8001端口也有监听 , 查看日志打印时断时续 。
线上故障如何快速排查?来看这套技巧大全

文章插图
 
2.2.2 查询日志查看NG日志 , 发现有数据进入到当前服务器(有8001和8002两个Tomcat) , NG显示8002节点访问正常 , 8001节点有404错误打印 , 说明Tomcat已经处于假死状态 , 这个Tomcat已经不能正常工作了 。


推荐阅读