Java线程堆栈
- 一次线程堆栈信息
资源不足导致性能下降原因
大量线程停在同样的调用上下文中
原因
多个锁导致的锁链分析
很多线程在等待不同的锁 有的锁竞争可能由于另外一个锁对象竞争导致 需要找到根源
案例分析
WebAPI性能瓶颈
线上表现
1、连接阻塞比较多RECQ(接收的队列) 2、超时日志疯狂打印 3、通过重启webapi进程临时缓解压力
解决步骤
线上故障处理方式
- 保留现场
比如通过jstack保存堆栈快照信息
- 恢复服务
第一时间恢复服务 比如restart、reboot
- 排查解决
- 验证
常规操作
- 重启
- 回滚
- 降级
- 摘机
现象收集&故障定位
异常处理原则
错误永远无法避免 且发生的角度永远无法预期 在故障发生时尽可能维持系统核心功能的可用性