怎么排查线上故障

发布时间:2021-10-21 16:40:56 作者:iii
来源:亿速云 阅读:172

这篇文章主要介绍“怎么排查线上故障”,在日常操作中,相信很多人在怎么排查线上故障问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么排查线上故障”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

前言

说起线上故障,程序员应该都经历过,从故障处理恢复过程中我们能快速提高。踩坑多了,慢慢也就成了大牛。这道题也是大厂的面试官们特别喜欢问的问题之一,从候选人对这道题的回答过程中,面试官至少能获取到两个方面的反馈。第一是你平时负责的项目是不是核心项目,如果你说你负责的是后管系统,出了问题重启就OK了,那结果只能是出门右转了。第二是候选人系统化处理问题的能力。你是如何快速止血;如何一步步快速定位到具体问题;故障前的准备工作是否充分,风险点有没有紧急应对方案。

下面我们就一起来聊聊线上故障的排查过程

快速止血

在分布式系统环境中,最重要的就是快速止血。在互联网公司呆过的同学知道,恐怖的复盘大会往往第一个问题就是为什么故障花了半个小时,业务都投诉了才知道。或者是为什么花了15分钟才知道是慢SQL问题,被按在地上摩擦的不要不要的。

原因是在分布式系统中,故障很容易产生“多米诺骨牌效应”。比如一个基建服务因为一个慢sql导致请求响应变慢,就会导致上游的请求堆积,线程无法释放,进而导致上线的系统也变的很慢,出现大量error。这个雪崩过程有时候很快,到时候测试,运维,上游系统的负责人在各种电话,信息轰炸你的时候,这时候的你肯定是

怎么办?如果问题定位了很长时间还没定位到,那就只能先用杀手锏了:

故障排查过程

前面说到如果前一天有上线,然后出现故障回滚了,这种情况十有八九是回归测试不彻底,影响之前的逻辑了,最坏情况就是一堆人一行行去扒代码。现在我们讨论的是如果生产服务变得很慢,error告警不断增加的情况下怎么处理?

怎么排查线上故障

1.查询整机 首先通过top命令查看整体情况,比较重要的指标有Load AVg,CPU usage,每个进程的CPU和MEM。
怎么排查线上故障
也可以通过uptime查看精简版
怎么排查线上故障

2.CPU 通过vmstat工具查询CPU的情况,vmstat包含两个参数,第一个参数是采样隔间时间,但是是秒,第二个参数是采样次数。如:

vmstat -n 2 3

表示每隔2秒采样一次,一共采样3次

怎么排查线上故障

  1. proces

  1. cpu

3.内存

freefree -gfree -m

一般应用程序可用内存/系统物理内存<20%代表内存不足,需要增加内存

4.硬盘

df -h

怎么排查线上故障

5.磁盘IO

iostat -xdk 2 3

大部分场景下如果系统慢,一是CPU导致,还有一个就磁盘IO。常用的排查工具用iostat,参数含义跟vmstat一致

6.网络IO

ifstat l

ifstat命令如果不支持需要安装,可以查看各个网卡的in,out;观察网络负载情况;网络情况是否正正常等

CPU占用过高分析思路

ps -mp 进程ID -o THREAD,tid,time

-m表示显示所有的线程,-p进程使用cpu的时间,-o后面是自定义参数

printf "%x\n" 线程ID
jstat 进程PID | grep 16进制线程tid

以上排查过程读者可以在本地跑一个死循环的程序,跟着步骤one by one分析一遍,肯定会有所收获

系统上线前的风险评估及应急方案

为了出现故障时能够有条理的处理,事先必须有完善的准备工作。

故障复盘

终于说到最核心的了,对程序员来说,每次线上事故踩坑都是一次大的成长,为了茁壮成长,事后复盘必不可少

常见的复盘流程三部曲

到此,关于“怎么排查线上故障”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. 线上故障处理原则
  2. xshell连接故障排查

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

服务器

上一篇:Linux中Bash命令怎么用

下一篇:Node.js服务性能翻倍秘密是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》