1. SLO 与 Error Budget 基础概念
在基于 Error Budget 驱动的优先级调度策略中,SLO(Service Level Objective,服务等级目标)、SLI(Service Level Indicator,服务等级指标) 和 Error Budget(错误预算) 是三大核心支柱。理解三者之间的定义与关系,是构建可靠调度系统的前提。
1.1 核心定义
| 术语 | 英文全称 | 定义 | 典型示例 |
|---|---|---|---|
| SLO | Service Level Objective | 服务等级目标,是团队承诺的服务可靠性阈值,通常以百分比形式表示。 | 99.9% 的请求在 200ms 内完成 |
| SLI | Service Level Indicator | 服务等级指标,是实际测量服务质量的量化指标,用于评估是否满足 SLO。 | 请求延迟 P99 = 180ms |
| Error Budget | Error Budget | 错误预算,是 SLO 允许的最大不可用时间或错误率,计算公式为:1 - SLO。 | 99.9% SLO → 每日允许 86.4 秒不可用 |
关键理解: SLO 是目标,SLI 是测量值,Error Budget 是 SLO 与 100% 之间的“容错空间”。三者构成闭环:SLI 持续测量 → 对比 SLO → 计算剩余 Error Budget → 驱动决策。
1.2 三者的核心关系
三者的关系可以用一个简单的公式表达:
Error Budget = 1 - SLO
实际消耗 = 1 - SLI
剩余 Error Budget = SLO - SLI
当 SLI 持续高于 SLO 时,Error Budget 处于盈余状态,团队可以安全地进行新功能发布、作业调度等操作;当 SLI 接近或低于 SLO 时,Error Budget 耗尽,必须暂停非关键变更,优先执行稳定性保障作业。
1.3 关系流程图
1.4 典型场景对比
| 场景 | SLO | SLI(实际测量) | Error Budget 状态 | 调度决策 |
|---|---|---|---|---|
| 稳定期 | 99.9% | 99.95% | 盈余(剩余 0.05%) | 可执行低优先级作业 |
| 临界期 | 99.9% | 99.90% | 持平(剩余 0%) | 仅执行关键作业 |
| 故障期 | 99.9% | 99.80% | 耗尽(超支 0.1%) | 停止所有非恢复作业 |
实践要点: Error Budget 不是“惩罚机制”,而是决策信号。在 SRE 实践中,Error Budget 的剩余量直接决定作业调度的优先级——预算越充足,越可以执行探索性、优化性作业;预算越紧张,越应聚焦于稳定性保障。
1.5 作业优先级与 Error Budget 的映射
在调度策略中,Error Budget 的状态直接映射为作业优先级等级:
- 绿色区(预算充足 > 50%): 允许执行所有作业,包括低优先级批处理、实验性任务。
- 黄色区(预算紧张 10% ~ 50%): 仅允许执行中高优先级作业,暂停低优先级任务。
- 红色区(预算耗尽 < 10%): 仅允许执行 P0 级故障恢复和稳定性保障作业。
这种映射关系使得调度系统能够自动、动态地调整作业执行顺序,无需人工干预,从而实现“可靠性优先”的自动化运维。