2. MTTR 基础概念

2.1 MTTR 定义

MTTR(Mean Time to Repair,平均修复时间) 是衡量系统从发生故障到完全恢复服务所消耗的平均时间。在 SRE 实践中,MTTR 是核心可靠性指标之一,直接反映团队对故障的响应与修复效率。

MTTR 公式:
MTTR = 总修复时间 ÷ 故障次数
示例: 某月发生 4 次故障,修复时间分别为 15min、20min、10min、15min,则 MTTR = (15+20+10+15) ÷ 4 = 15 分钟。

MTTR 并非仅指“修好代码”的时间,而是从故障发生到服务完全恢复正常所经历的全部阶段。SRE 团队通常将 MTTR 拆解为四个核心构成要素,以便精准定位瓶颈。

2.2 MTTR 构成要素

阶段 定义 典型耗时占比 优化方向
检测(Detection) 从故障发生到监控系统发出告警的时间 20% – 30% 缩短监控粒度、提升告警准确率
诊断(Diagnosis) 从收到告警到定位根因的时间 30% – 50% 自动化诊断、可观测性建设
修复(Repair) 从定位根因到执行修复操作的时间 15% – 25% 自助修复脚本、服务降级/熔断
验证(Verification) 从修复完成到确认服务完全恢复的时间 5% – 10% 自动化验证、健康检查
关键洞察: 诊断阶段通常占据 MTTR 的最大比例。通过服务降级与熔断机制,可以在诊断未完成时先恢复核心功能,从而大幅压缩修复与验证时间。
MTTR 四阶段时间线 检测 告警触发 诊断 根因定位 修复 降级/熔断 验证 健康检查 诊断阶段通常耗时最长(30%–50%),是 MTTR 优化的首要突破口 服务降级与熔断可在诊断未完成时提前进入修复阶段,显著缩短 MTTR

2.3 MTTR 与系统可用性的关系

系统可用性(Availability)通常用 SLA(Service Level Agreement) 中的“几个九”来衡量。MTTR 与 MTBF(平均故障间隔时间)共同决定可用性:

可用性公式:
Availability = MTBF ÷ (MTBF + MTTR) × 100%
示例: 若 MTBF = 720 小时(30 天),MTTR = 1 小时,则可用性 = 720 ÷ 721 ≈ 99.86%(约两个九)。

从公式可以看出,降低 MTTR 可以直接提升可用性,尤其在 MTBF 固定的情况下,MTTR 的微小改善就能带来可用性等级的跃升。

可用性等级 年停机时间 MTTR 目标(MTBF=720h) 典型场景
99.9%(三个九) 8.76 小时 ≤ 43 分钟 企业级应用
99.99%(四个九) 52.56 分钟 ≤ 4.3 分钟 金融交易系统
99.999%(五个九) 5.26 分钟 ≤ 26 秒 电信核心网
注意: 仅靠降低 MTTR 无法达到五个九可用性,还需要配合 MTBF 的提升(即减少故障发生频率)。服务降级与熔断主要作用于 MTTR 的修复与验证阶段,是快速止损的关键手段。
MTTR 对可用性的影响(MTBF=720h) 0 10min 30min 60min 120min MTTR 99.9% 99.99% 99.999% MTTR=10min 可用性≈99.998% MTTR=60min 可用性≈99.86% MTTR 每降低 50%,可用性可提升约一个数量级(在 MTBF 固定条件下)

2.4 自助服务与 MTTR 优化的关联

自助服务能力(如自动化降级、一键熔断、预置修复脚本)直接作用于 MTTR 的 修复 与 验证 阶段:

  • 自助降级: 非核心功能自动关闭,核心链路保持可用,避免全站宕机。
  • 自助熔断: 检测到依赖服务异常时自动切断流量,防止级联故障。
  • 自助验证: 修复后自动执行健康检查与回归测试,无需人工确认。
实战建议: 将服务降级与熔断操作封装为自助服务 API 或 ChatOps 命令,使 SRE 或开发人员可在 30 秒内完成修复操作,将 MTTR 从小时级压缩到分钟级。