线上故障处理流程
保存现场关注点:
- 硬件环境:CPU、内存、硬盘、网络,相关命令:top -pH,sar,pidstat,vmstat,dstat,du -sh ,df -h,iotop
- 操作系统资源:文件描述符/链接数 ss -s,netstat
- jvm:线程数,ygc 频率、时长,ogc/fgc频率、时长,线程快照 jstack -l,堆信息jmap -heap,jmap -dump
- 应用状态:各接口进入流量速度、各接口流出请求速度、流出请求响应时间变化
一般过程:
主要考虑点
- 区分是逻辑问题还是性能问题。
- 性能问题先区分内因和外因:首先考虑外因,流量问题。其次是内因,再次分内因和外因,内因为服务自身代码或运行资源问题,外因为外部依赖。
- 谨慎考虑扩容,盲目扩容容易直接击垮下游。在外部流量激增和依赖性能骤降都不应考虑扩容方案
- 先止损,后定位。
- 分清核心链路和非核心链路,强依赖以及弱依赖,四个象限,四种不同 的决策思路
与时间赛跑
- 核心链路单一决策点执行时间不宜超过10分钟,超过请升级(involve 更高level 的同事)或直接执行下一步判断,整体不宜超过15分钟。
- 非核心链路单一决策点执行时间不宜超过15分钟,超过请升级(involve 更高level 的同事)或直接执行下一步判断,整体不宜超过30分钟。
- 定时类不宜超过下次执行周期的一半
备注与提醒
- 事前没有思考和准备的基本就是躺平等死,想在事前,做在事前。