1. MTTR 基础概念:定义、区别与核心地位

在 SRE 与平台工程实践中,MTTR(Mean Time to Repair,平均修复时间)是衡量故障恢复速度的核心指标。它直接决定了服务中断对用户的影响时长,也是值班台(On-Call)性能调优的首要优化对象。

1.1 MTTR 定义

MTTR 指从系统发生故障到完全恢复服务所花费的平均时间。在平台工程语境下,MTTR 覆盖从告警触发、故障确认、根因定位、修复实施到验证恢复的完整闭环。

MTTR 计算公式:
MTTR = 总修复时间 ÷ 故障次数
其中“修复时间”通常从告警确认时刻开始计算,至服务恢复正常为止。
阶段 说明 典型耗时占比
告警确认 值班人员收到告警并确认故障 5% – 10%
故障定位 分析日志、指标、链路追踪,确定根因 40% – 60%
修复实施 执行回滚、扩容、配置变更或代码修复 20% – 30%
验证恢复 确认服务指标恢复正常,告警消除 5% – 10%
平台工程视角:MTTR 优化的最大杠杆在于缩短“故障定位”阶段。通过标准化可观测性数据、构建自动化诊断流水线,可将定位时间从小时级压缩到分钟级。

1.2 MTTR 与 MTBF / MTTF 的区别

这三个指标常被混淆,但分别衡量可靠性的不同维度。下表清晰对比三者的定义与关注点:

指标 全称 定义 关注点 优化方向
MTTR Mean Time to Repair 平均修复时间 恢复速度 缩短故障处理流程
MTBF Mean Time Between Failures 平均故障间隔时间 系统稳定性 提升代码质量与架构韧性
MTTF Mean Time to Failure 平均无故障时间(不可修复系统) 组件寿命 硬件选型与冗余设计
常见误区:部分团队将 MTBF 与 MTTF 混用。对于可修复系统(如微服务实例),应使用 MTBF;对于不可修复组件(如一次性传感器),才使用 MTTF。SRE 场景下绝大多数系统为可修复系统,MTBF 是更常用的稳定性指标。

三者关系可通过以下公式理解:

系统可用性 = MTBF / (MTBF + MTTR)

示例:
- 若 MTBF = 720 小时(30天),MTTR = 1 小时
  可用性 = 720 / (720 + 1) ≈ 99.86%
- 若 MTTR 缩短至 0.5 小时
  可用性 = 720 / (720 + 0.5) ≈ 99.93%

可见,即使 MTBF 不变,降低 MTTR 也能直接提升系统可用性。

1.3 MTTR 在 SRE 中的核心地位

在 SRE 的四大黄金信号(延迟、流量、错误、饱和度)之外,MTTR 是衡量故障响应效率的关键运营指标。其核心地位体现在以下三个层面:

  • 直接影响用户体验:MTTR 越长,用户受影响时间越长,直接导致流失与品牌声誉损失。
  • 决定 SLA/SLO 达成率:可用性计算公式中 MTTR 是分母项,缩短 MTTR 是提升可用性最直接的手段。
  • 衡量平台工程效能:值班台的自动化程度、可观测性建设水平、变更管理成熟度,最终都体现在 MTTR 上。
平台工程核心主张:通过构建内部开发者平台(IDP),将故障诊断与修复能力产品化、自助化,使值班人员从“救火队员”转变为“流程管理者”,系统性降低 MTTR。
故障生命周期与 MTTR 覆盖范围 故障发生 告警确认 根因定位 修复实施 恢复 MTTR 覆盖范围:从告警确认到服务恢复 MTBF(平均故障间隔时间)从本次恢复到下次故障发生 MTTR 越短 → 可用性越高 → 用户体验越好

1.4 平台工程对 MTTR 的重新定义

传统 SRE 将 MTTR 视为值班人员的个人技能指标。平台工程视角下,MTTR 被重新定义为平台能力指标:

  • 自动化修复率:平台能否自动执行常见故障的修复操作?
  • 诊断链路完整性:从告警到根因的链路是否被平台工具链覆盖?
  • 变更回滚速度:平台是否提供一键回滚或灰度发布能力?
实践建议:在值班台仪表盘中,将 MTTR 拆解为“定位时间”和“修复时间”两个子指标,分别设定 SLO。通常定位时间应占 MTTR 的 60% 以内,若超过则优先优化可观测性建设。