知识卡片

MTBF和MTTR:高可用工程的两个独立投入维度

普通读书笔记卡

内容

实现高可用性可以拆成两件相对独立的事,各自对应一个可测量的指标:一是 “提升平均失效时间”(MTBF,Mean Time Between Failures)——想办法让故障 更少发生,靠的是恰当的配置、监控、规范流程、安全保障这类预防性措施, 很多导致宕机的原因(尤其是人为错误)其实是可以被提前避免的;二是 “降低平均恢复时间”(MTTR,Mean Time To Recovery)——接受”故障终究会 发生”这个前提,把精力放在”一旦发生了,多快能恢复”上,靠的是系统里 预先建好的冗余和故障转移能力。把这两件事拆成两个独立维度来看待的 价值在于,它们需要的投入方式完全不同,也各自有独立的度量方式,不能 混在一起笼统地说”要做高可用”——一个团队可能花了很多精力在防止故障 发生(严格的变更流程、完善的监控告警),却在真正出故障时手忙脚乱、 迟迟恢复不了,这说明只投入了MTBF这一侧;反过来,就算故障恢复机制 再完善,故障本身发生得过于频繁,也会不断消耗这套恢复机制、拖累整体 可用性。书中特别指出,”降低恢复时间”这一侧,尤其是靠冗余和故障转移 能力实现快速恢复,通常是投入回报率最高、也最容易被低估和忽视的环节 ——技术上的冗余架构固然重要,但同样重要的是团队本身对故障处理流程的 熟练度:训练有素的人员、经过实际演练的应急文档,往往比工具本身更 决定恢复速度的上限。

参考来源

- 位置:《高性能MySQL:第3版》第12章"高可用性"12.3节"如何实现高可用 性"、12.3.2节"降低平均恢复时间(MTTR)"(源文件: _epub-src/OEBPS/Text/part0019.xhtml) - 结论依据:原文明确"可以通过同时进行以下两步来获得高可用性。首先, 可以尝试避免导致宕机的原因来减少宕机时间……第二,尽量保证在发生 宕机时能够快速恢复……这两个维度的高可用性可以通过两个相关的度量 来确定:平均失效时间(MTBF)和平均恢复时间(MTTR)……第二步—— 通过冗余快速恢复——很不幸,这里是最应该注意的地方,但预防措施的 投资回报率会很高",直接给出MTBF/MTTR两个独立维度及各自的投入 重点。 - 原始内容:可以通过同时进行以下两步来获得高可用性……这两个维度的 高可用性可以通过两个相关的度量来确定:平均失效时间(MTBF)和 平均恢复时间(MTTR)。