系统稳定性指标:可用性 99.99%、SLA、MTBF、MTTR 定义与计算

稳定性指标是交易系统面试的必考题,也是衡量系统质量的核心标尺。可用性(Availability)、SLA(Service Level Agreement)、MTBF(Mean Time Between Failures) 和 MTTR(Mean Time To Repair) 构成稳定性工程的四大支柱。本节从定义、公式到面试应答框架,帮你一次打通。

明确定义 SLA / MTBF / MTTR 核心公式 A = MTBF/(MTBF+MTTR) 数据解读 99.99% ≈ 52.56 分钟/年 工程落地 监控 → 告警 → 应急 避坑要点 可用性 ≠ 可靠性

📊 核心指标对比表

指标英文全称定义计算公式典型值作用
SLAService Level Agreement服务等级协议可用性 = MTBF/(MTBF+MTTR)×100%99.99%定义目标
MTBFMean Time Between Failures平均无故障时间总运行时间 ÷ 故障次数8760 h(年)衡量可靠性
MTTRMean Time To Repair平均修复时间总维修时间 ÷ 故障次数5 – 30 min衡量恢复效率
可用性Availability系统正常运行时间比例MTBF/(MTBF+MTTR)×100%99.99% – 99.995%综合衡量
💡 面试高频记忆点
  • 99.99% = 全年故障 ≤ 52.56 分钟
  • MTBF 越大越好,MTTR 越小越好
  • SLA 是承诺,可用性 是结果

🎯 面试问答卡片

Q1:请解释系统可用性 99.99% 的含义,以及如何计算?
🎯 考察点:基础概念理解、公式掌握、工程意义转化
📐 回答框架:
  1. 明确定义:SLA / MTBF / MTTR 分别是什么
  2. 给出公式:可用性 = MTBF / (MTBF + MTTR) × 100%
  3. 代入数据:99.99% → 年故障时间 52.56 分钟
  4. 解释意义:衡量系统连续服务能力的核心指标
💬 示例回答:
99.99% 可用性意味着全年故障时间不超过 52.56 分钟。计算公式为 A = MTBF / (MTBF + MTTR) × 100%,MTBF 是平均无故障时间,MTTR 是平均修复时间。这是交易系统稳定性考核的核心标准。
🔍 可能追问:从 99.99% 提升到 99.999% 需要付出哪些成本?
⚠️ 避坑提醒:勿混淆可用性与可靠性;勿忽略计划内维护窗口对可用性的影响。
Q2:SLA、MTBF、MTTR 三个指标如何关联?在稳定性保障中各自的作用?
🎯 考察点:指标间关联关系、系统性思维、工程应用能力
📐 回答框架:
  1. 独立解释每个指标的定义
  2. 展示关联公式:A = MTBF/(MTBF+MTTR)
  3. 说明协同作用:SLA 定目标,MTBF 提可靠性,MTTR 提恢复力
  4. 举例说明:某系统 MTBF=720h,MTTR=2h → 可用性 99.72%
💬 示例回答:
SLA 定义可用性目标,MTBF 衡量系统可靠性,MTTR 衡量故障恢复效率。三者通过公式 A = MTBF/(MTBF+MTTR) 关联。例如 SLA 要求 99.99%,则需同时提升 MTBF(如冗余设计)和降低 MTTR(如自动化恢复)。
🔍 可能追问:如果 MTBF 很高但 MTTR 也很高,可用性会怎样?
⚠️ 避坑提醒:勿孤立看待各指标;要说明三者如何联动影响系统稳定性。
Q3:在交易系统中,如何设计指标监控体系来保障 SLA 达成?
🎯 考察点:监控体系设计、SLA 落地实践、故障应急能力
📐 回答框架:
  1. 指标分层:基础设施层 / 应用层 / 业务层
  2. 阈值与 SLO 设定:依据 SLA 拆解为可量化 SLO
  3. 监控与告警:多级告警(P0/P1/P2),避免告警风暴
  4. 应急响应:故障分级 + 升级机制 + 故障自愈
💬 示例回答:
采用三层监控:基础设施(CPU/网络/磁盘)、应用层(接口耗时/P99 延迟/错误率)、业务层(交易成功率/资金差错率)。设置 SLO 为 99.99%,配置 P0 级 5 分钟响应、15 分钟恢复的应急 SLA,并通过混沌工程持续验证。
🔍 可能追问:SLA 违约后如何处理?有哪些补偿或免责机制?
⚠️ 避坑提醒:勿只谈理论监控;需结合交易系统具体场景(如交易链路、资金安全、清算时效)。
第一轮 · 基础概念 什么是 SLA?MTBF 和 MTTR 分别衡量什么? 第二轮 · 计算推导 如何计算可用性?99.99% 这个数字怎么来的? 第三轮 · 工程实践 如何通过架构和运维手段保障 99.99% 达成? 第四轮 · 异常处理 SLA 违约如何定责?补偿与免责机制怎么设计? 第五轮 · 架构设计 如何设计多活架构、故障自愈体系来支撑高可用?
🧭 面试官追问逻辑 以上五轮追问层层递进:从 概念 → 计算 → 实践 → 异常 → 架构,考察的是候选人对稳定性指标的 全链路理解深度。准备时每个层级都要有真实项目案例支撑。

🏗️ 项目实战案例

项目名称:某证券核心交易系统稳定性保障项目
业务背景日交易量峰值 500 万笔,要求全年可用性 99.995%,涉及证券、期货、期权多品种。
规模指标日均交易额超 200 亿,500+ 台服务器,30+ 微服务,覆盖 200+ 营业部。
技术栈Kubernetes、Prometheus + Grafana、ELK、Kafka、MySQL 集群、Redis 哨兵。
核心难点极端行情下系统雪崩、故障自愈时效不足、SLA 量化粒度粗、跨机房容灾延迟。
面试高频追问
  • 如何设计多活架构?两地三中心 vs 三地五中心选型?
  • 故障演练怎么做?混沌工程如何引入?
  • 容量评估方法?压测模型如何贴近真实行情?
  • MTTR 从 15 分钟降到 3 分钟具体做了哪些改进?
可迁移回答话术“在 XX 项目中,我们通过 混沌工程 + 自动弹性伸缩 + 故障自愈平台,将 MTTR 从 15 分钟降至 3 分钟,可用性从 99.98% 提升至 99.995%,全年 SLA 违约次数从 12 次降至 0 次。”
⚠️ 项目面试注意 讲述项目时一定要带上量化结果(MTTR 降低 X 倍,可用性提升 Y 个百分点),同时说明你在其中的个人角色(架构设计 / 故障演练 / 监控体系搭建),避免只说“我们团队”而模糊个人贡献。