简介: 有哪些常见的线上故障?如何快速定位问题?本文详细总结工作中的经验,从服务器、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
结果是:
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)结果参数
后续还有 tomcat,mysql,日志,业务的各种问题。
该篇文章转载自阿里云论坛