MTBF/MTTR/MTTF 指标
可用性不只关乎「系统正常运行的时间」,还关乎「系统故障后多久能恢复」。
MTBF 和 MTTR 是两个从运维角度衡量系统可靠性的核心指标。它们把「可用性」这个抽象数字,拆解成了两个可操作的管理目标:少出故障(MTBF)+ 快修故障(MTTR)。
三个关键指标的定义
MTTF(Mean Time To Failure)
平均故障前时间。衡量一个新系统(或修复后的系统)在发生故障前的平均运行时间。
MTBF(Mean Time Between Failures)
平均故障间隔时间。衡量系统在两次故障之间的平均运行时间。
MTTR(Mean Time To Repair / Recovery)
平均修复/恢复时间。衡量从故障发生到服务恢复正常所需的平均时间。
可用性的新视角
传统公式:
这个公式揭示了一个关键洞察:提升可用性有两个方向——要么让故障更少(提高 MTTF),要么让修复更快(降低 MTTR)。
不同场景下的指标侧重
MTTF vs MTBF 的选择
大多数生产系统都是可修复系统,使用 MTBF 更准确。但 MTTF 常用于硬件可靠性比较。
不同规模系统的合理 MTTR
MTTR 分解与优化
MTTR 不是单一数字,它的每个组成部分都可以单独优化:
检测时间优化
诊断时间优化
诊断时间通常占 MTTR 的最大比例。优化方向:
- 完善日志链路:从请求入口到数据库查询,每一步都有日志
- 链路追踪:分布式请求的完整调用链可追溯
- 故障知识库:积累常见故障的处理手册
- On-Call 指南:故障发生时,明确第一步做什么、第二步做什么
修复时间优化
验证时间优化
- 自动化冒烟测试
- 流量自动切换验证
- 关键功能健康检查自动化
MTBF 与 MTTR 的权衡
关键洞察:在 MTTR 上的投入往往比在 MTBF 上的投入更划算。
- 要把 MTBF 从 1000 小时提升到 2000 小时,可能需要翻倍的基础设施成本
- 要把 MTTR 从 60 分钟降到 15 分钟,通常只需要改进监控和自动化流程
真实案例:Netflix 的 MTTR 优化
Netflix 在 2012 年公开的数据显示,他们通过以下方式将 MTTR 从小时级降到分钟级:
- 全面监控:每个服务的每个操作都有指标
- 自动化故障转移:检测到故障后自动切换到健康实例
- Chaos Engineering:主动注入故障,验证恢复能力
- 故障知识库:每次故障都有详细复盘文档
本章总结
核心要点:
- MTTF 是「平均故障前时间」,衡量系统能无故障运行多久
- MTBF 是「平均故障间隔」,MTTF + MTTR = MTBF
- MTTR 是「平均修复时间」,可分解为检测 + 诊断 + 修复 + 验证
- 提升可用性有两个方向:提高 MTBF(减少故障)和降低 MTTR(加快修复)
- MTTR 优化通常比 MTBF 优化更划算:自动化恢复能力的投入产出比更高
理解了可用性的度量方法,下一节我们将讲解如何用「N 个 9」量化可用性等级,以及不同等级背后的成本差异。