第二章 SRE核心概念与SLI/SLO高频问答
本章聚焦面试中必考的SLI/SLO、错误预算、可用性计算等核心概念。掌握回答框架,能帮你系统展示SRE思维而非零散经验。以下先给出答题路径图,再通过3个典型问答拆解考察点与应对模板。
📌 知识速查表:SRE关键概念对比
| 概念 | 定义 | 常见指标示例 | 面试考点 |
|---|---|---|---|
| SLI (Service Level Indicator) | 服务实际测量指标 | 请求延迟P99、错误率 | 如何选择有效SLI |
| SLO (Service Level Objective) | 目标值或范围 | P99 ≤ 200ms, 错误率 ≤ 0.1% | 如何设定合理目标 |
| 错误预算 (Error Budget) | 可允许的不可用时间 / 请求比例 | SLO=99.9% → 日错误预算 = 86.4秒 | 预算耗尽后的决策逻辑 |
| 可用性 (Availability) | 成功请求占比 / 正常运行时间比 | (总请求-失败)/总请求 | 计算公式与多维度计算 |
🎯 面试问答一:请解释SLI和SLO的区别,你们团队如何确定SLI?
面试官考察点:对SRE基础概念的掌握、指标选择方法论、业务理解深度。
回答框架:
- 明确定义:SLI是测量指标,SLO是目标值。
- 选择维度:延迟、错误率、吞吐量、可用性。
- 用户视角:优先选择用户直接感知的指标。
- 实际案例:举例某个服务如何从APM工具中筛选SLI。
示例回答(80字):“SLI是服务实际表现的直接度量,比如请求P99延迟;SLO则是我们承诺的目标,比如P99 ≤ 200ms。我们通常优先选择与用户体验强相关的指标,如首页接口的延迟和错误率,再根据历史百分位设定SLO。”
可能追问:如果SLI有多种维度,你如何权衡优先级?
避坑提醒:不要只背定义,要结合具体业务(如电商、视频)说明选择逻辑;避免仅谈理论不谈实践。
避坑提醒:不要只背定义,要结合具体业务(如电商、视频)说明选择逻辑;避免仅谈理论不谈实践。
🎯 面试问答二:错误预算耗尽后,SRE应该做什么?
面试官考察点:错误预算的使用机制、风险平衡能力、工程决策力。
回答框架:
- 错误预算含义:剩余可犯错额度。
- 消耗殆尽时:触发“冻结期”——停止发布、聚焦可靠性。
- 例外处理:安全补丁、P0故障修复可继续发布。
- 复盘改进:分析预算消耗原因,降低下次风险。
示例回答(85字):“错误预算耗尽说明服务可靠性已低于SLO,此时应暂停所有非关键变更,集中精力修复根本问题。例如,我们会启动‘发布冻结’,只允许安全更新和故障修复。同时组织复盘,优化SLI或调整SLO,避免未来重复透支。”
可能追问:如果业务要求必须发布新功能,你会怎么做?
避坑提醒:不要回答“不惜一切代价发布”,要体现SRE的平衡思维;可以建议短期加宽SLO窗口或临时提高预算分配。
避坑提醒:不要回答“不惜一切代价发布”,要体现SRE的平衡思维;可以建议短期加宽SLO窗口或临时提高预算分配。
🎯 面试问答三:如何计算一个分布式系统的全年可用性?请给出公式与示例。
面试官考察点:可用性计算的深度、对多组件依赖的理解、故障隔离认知。
回答框架:
- 单组件可用性公式:可用性 = (总时间 - 不可用时间) / 总时间。
- 串联系统:各组件可用性相乘(最薄弱环节)。
- 并联系统:可用性 = 1 - (1-A1)*(1-A2)。
- 实际举例:依赖三个服务,每个99.9%,串联后 ≈ 99.7%。
示例回答(90字):“假设核心链路依赖A、B、C三个服务,各自可用性为99.9%,串联后可用性=0.999³≈99.7%。而通过冗余设计(如多AZ部署),可将并联部分提升至1-(0.001)²≈99.9999%。实际中我们会先计算关键路径的单点故障影响,再针对瓶颈做冗余。”
可能追问:熔断、降级如何影响整体可用性计算?
避坑提醒:公式只是基础,要体现架构理解;避免简单罗列数字,应结合故障场景说明计算逻辑。
避坑提醒:公式只是基础,要体现架构理解;避免简单罗列数字,应结合故障场景说明计算逻辑。
📁 项目案例:电商平台核心交易链路SLO优化
| 项目名称 | 电商下单链路SLO从99.9%提升至99.99% |
| 业务背景 | 大促期间订单丢失导致GMV损失,用户投诉激增 |
| 规模指标 | 日均订单5000万,峰值QPS 20万,调用链涉及15个微服务 |
| 技术栈 | K8s、Istio、Prometheus、Grafana、Redis、Kafka、MySQL |
| 核心难点 | 1) 多级依赖下的错误预算分配;2) 慢查询导致P99抖动;3) 自愈策略与人工操作脱节 |
| 面试高频追问 |
|
| 可迁移回答话术 | “我们根据用户感知的程度,将下单链路拆解为5个关键SLI(如订单创建失败率、支付确认延迟),每个SLI设定独立SLO,并通过错误预算串联。当某个子服务预算耗尽时,自动隔离该服务的发布权限,并触发降级预案。最终整体可用性从99.9%提升到99.99%,大促期间订单丢失减少90%。” |
💡 本章可迁移公式速记:
· 错误预算 = 1 - SLO(以小数表示)
· 串联可用性 = ∏ A_i · 并联可用性 = 1 - ∏ (1-A_i)
· 面试高频组合:SLI + SLO + 错误预算 + 可用性计算 = 一套完整的SRE价值叙事
· 错误预算 = 1 - SLO(以小数表示)
· 串联可用性 = ∏ A_i · 并联可用性 = 1 - ∏ (1-A_i)
· 面试高频组合:SLI + SLO + 错误预算 + 可用性计算 = 一套完整的SRE价值叙事