SLO/SLA 的常用计算方法
1. 基于不可用时长的方法
这种方法关注服务在特定时间段内的运行状态,通常用于传统IT系统和基础设施服务。
数学公式:
\(\text{SLO} = \frac{\text{总时间} - \text{不可用时间}}{\text{总时间}} \times 100\%\)
或等价表示为:
\(\text{可用性百分比} = \frac{\text{可用时间}}{\text{总时间}} \times 100\%\)
不可用时间计算:
- 一个"9"(90%):允许每年不可用时间约36.5天
- 两个"9"(99%):允许每年不可用时间约3.65天
- 三个"9"(99.9%):允许每年不可用时间约8.76小时
- 四个"9"(99.99%):允许每年不可用时间约52.56分钟
- 五个"9"(99.999%):允许每年不可用时间约5.26分钟
2. 基于不可用请求占比的方法
这种方法关注服务请求的成功率,更适合微服务架构和现代分布式系统,能更准确反映用户体验。
数学公式:
\(\text{服务水平百分比} = \frac{\text{成功请求数}}{\text{总请求数}} \times 100\%\)
或等价表示为:
\(\text{SLO} = \left(1 - \frac{\text{失败请求数}}{\text{总请求数}}\right) \times 100\%\)
常见表达形式:
- 对于API服务:可将HTTP 5xx错误计为失败请求
- 对于网络服务:可将超过阈值时间的请求计为失败请求
两种方法的区别与应用
-
时间法优势:计算简单直观,适用于需要连续运行的基础设施服务
-
请求法优势:更贴近用户实际体验,可反映系统在不同负载下的表现
-
现代实践:许多大规模服务结合使用两种方法,例如Google SRE实践中会同时考虑可用性与延迟指标
-
误差预算:无论采用哪种方法,现代SRE实践通常会定义"误差预算"(Error Budget),用于平衡可靠性与创新速度
这两种公式提供了衡量服务质量的不同视角,企业通常会根据服务特性和业务需求选择合适的方法或组合使用。
浙公网安备 33010602011771号