Distributed Systems

分布式系统线上排障时,我会先检查的 9 件事

遇到复杂故障时,最重要的不是立刻猜根因,而是快速收拢不确定性。

毛宝龙2026/8/66 min

线上故障最大的风险,往往不是“修得慢”,而是“越修越乱”。

我会先做一轮非常机械的收敛动作:

1. 统一时间线

先确保所有人看的时间区间一致。没有统一时间线,日志与监控很容易各说各话。

2. 划出受影响范围

受影响的是单机、单可用区、单租户,还是全局?这个信息会极大影响排查顺序。

3. 看最近变更

包括:

  • 代码发布
  • 配置变更
  • 资源扩缩容
  • 上游依赖升级

4. 看有没有“卡住”的共享资源

例如:

  • 线程池被打满
  • 连接池泄漏
  • 下游请求排队
  • 锁竞争异常

5. 判断是容量问题还是行为问题

容量问题通常和压力上升相关,行为问题则可能在流量不变时也突然出现。

6. 比较正常实例与异常实例

差异对比几乎总能带来线索,尤其是在配置、负载、调用链和资源利用率上。

7. 确认是不是“二次故障”

很多系统不是主问题最致命,而是降级策略、重试风暴或缓存击穿把事情放大了。

8. 给出临时止血路径

止血不是投降,而是争取分析空间。

9. 最后再写结论

结论应该建立在证据链上,而不是建立在“最像”的直觉上。

Discussion

评论与点赞

GitHub

评论与点赞

正在加载互动内容...