一文搞懂 SLI SLO SLA

143 阅读4分钟

前言

年后回来第一周小组周会上领导抛出了一个问题,‘有人知道 SLI SLO SLA 是什么吗?’,大家噤若寒蝉,看来大家的手里的工作没有跟这块相关的。恰好,本人最近在做(之家好UV)相关的治理工作,对这三个概念略有见解,于是简单输出了一波,由于时间限制,没有展开去讲,于是毛遂自荐在下次周会上单独分享这块知识,说干就干,收集知识点,整理文档,查阅之家 SLI 指标,与业界做对比,利用休息时间两天整理完毕!

SLI SLO SLA 是什么?

实际生活中,往往也会有一些在意的"指标":

image1.png 例如:作为餐厅管理者,为量化服务指标,会关注以下核心点:

  • 餐厅菜品的味道
  • 上菜时间
  • 上菜错误率
  • 客流量
  • 点单等待时间

针对这些指标,制定对应的标准(目标):

  • 关于味道的客诉率小于 95%
  • 上菜时间 ≤ 30 分钟
  • 每月上菜错误率 < 1%
  • 日均客流量 > 1000
  • 顾客取号到点单平均时间

若未达到承诺标准(如超时上菜),需补偿顾客(如免单或赠送优惠券)。

image2.png

类比技术服务中的概念

  • SLI(指标):接口响应时间(如上菜时间)
  • SLO(目标):30 分钟内上菜、错误率 < 1%(对应 QPS 10000、错误率 1%)
  • SLA(协议):若未达标则赔偿(如云服务可用性不足时补贴费用)

技术服务中的定义

SLA(服务等级协议)

关键指标:用于评估服务质量的实际表现。

DIV@2x.png

SLO(服务等级目标)

SLI 的预期目标(内部管理用),通常以百分比和时间范围定义:

  • 通常是一个百分比,并与一个时间范围挂钩。比如,月度、季度、年度等。通常用一连串9来度量(平均值 or 百分位)。如果脱离了时间的度量,SLO的意义就不大了。
  • 90%:这意味着10%的停机时间,也就是说在过去的30天里停机了3天。
  • 99%:意味着在过去30天中有1%,或者说7.2小时的停机时间。
  • 99.9%:意味着0.1%,或者说43.2分钟的停机时间。
  • 99.95%:意味着0.05%,或者说21.6分钟的停机时间。
  • 99.99%(4个9的正常运行时间):意味着0.01%,或者说4.32分钟的停机时间。
  • 99.999%(5个9的正常运行时间):意味着0.001%,或者说26秒的停机时间。

示例

  • 本月系统 99% 的实际可用性 -> 服务在 99% 的时间内是可用的
  • 确保本月系统的实际可用性为 99.97%
  • 95% 的请求在 200 毫秒内完成
  • 98% 的请求成功处理
  • 错误率低于 0.1%
  • 每分钟平均QPS > 100,000/s
  • 99% 访问延迟 < 500ms
  • 99% 每分钟带宽 > 200 MB/s

详细说明

  • SLO:由 SLI 组成,提供性能、质量、可靠性的形式化描述
  • SLA:对用户的承诺(如 99.9% 正常运行时间,未达标则退款)

核心概念总结

  • SLA → Service Level Agreement → 服务等级协议
  • SLO → Service Level Objective → 服务等级目标
  • SLI → Service Level Indicator → 服务等级指标

示例

  • SLI:请求延迟
  • SLO:99% 请求 < 5ms
  • SLA:若 99.9% 请求未在 5ms 内完成,退还费用

为什么需要 SLA/SLO/SLI?

image3.png


大厂案例

  1. 阿里云归档存储协议链接
  2. 华为云 SLA链接
  3. 腾讯云 SLA链接

之家 SLI 指标

APP & WEB 指标

序号服务分类SLO阈值目标SLI指标指标口径SLI告警计算口径TP99计算逻辑
1App层应用可用性 ≤0.08%App 闪退率闪退次数 / App启动次数同左正序
2流畅度 ≤0.01%严重卡顿率卡顿时间总和 / 页面总时长同左正序
3页面秒开率 ≥98%App 页面秒开率1秒内展示次数 / 总展示次数同左倒序
4Web层页面秒开率 ≥90%Web 页面秒开率白屏时间 ≤1800ms 次数 / 总展示次数同左倒序
5页面正确率 ≥99.9%Web 页面正确率非4xx&5xx 请求次数 / 总请求次数同左倒序