可用性等级是什么
把「几个 9」换算成停机时长更便于沟通与决策:99% 每月允许约 7 小时不可用,99.9% 约 43 分钟,99.99% 约 4 分钟。谈目标之前要先定义口径——按请求成功率、按整分钟可用,还是按业务事务成功,不同口径算出的结果不可直接比较,也直接决定需要多少投入。
基本信息
| 常见等级 | 99% / 99.9% / 99.95% / 99.99% |
|---|---|
| 换算基准 | 按月 30 天、按年 365 天 |
| 核心口径 | 请求成功率 / 时间可用 / 业务事务 |
| 计算方式 | 1 - 不可用比例(需先定义不可用) |
| 观测手段 | 拨测、up 指标、业务成功率 |
| 关联概念 | SLO、错误预算 |
典型使用场景
- 与业务方沟通 SLA 目标时,用停机时长替代百分比更直观
- 定义 SLO 并据此设置告警阈值与错误预算
- 评估架构改造(多活、容灾)能换来几个 9 的提升
- 复盘时对照目标判断一次故障是否消耗完当月预算
- 按地域或运营商细分可用性,发现局部用户被掩盖的不可用
- 为新服务设定与业务重要性匹配的可用性目标
用 PromQL 近似计算可用性
用 PromQL 近似计算可用性
# 以拨测成功率近似(30 天窗口)
avg_over_time(probe_success{job="blackbox-http"}[30d])
# 或以 up 的分钟均值
avg_over_time(up{job="api"}[30d])
# 按地域细分,避免局部不可用被平均值掩盖
avg by (region) (avg_over_time(up{job="api"}[30d]))停机允许值(按 30 天计)
| 可用性 | 每年 | 每月 | 每周 |
|---|---|---|---|
| 99% | 3.65 天 | 7 小时 12 分钟 | 1 小时 41 分钟 |
| 99.9% | 8 小时 46 分钟 | 43 分钟 12 秒 | 10 分钟 5 秒 |
| 99.95% | 4 小时 23 分钟 | 21 分钟 36 秒 | 5 分钟 2 秒 |
| 99.99% | 52 分钟 34 秒 | 4 分钟 19 秒 | 1 分钟 0 秒 |
可用性口径要先定义:按请求成功率、按整分钟可用还是按业务事务;不同口径的结果不可直接比较,报告里必须写明。
计划内维护是否计入不可用要事先声明:口径不清时,同一次维护在不同团队嘴里会得出完全不同的可用性数字。
错误预算(1 - SLO)是可用性目标最实用的用法:预算没用完可以放心发布,用完了就该暂停变更先做稳定性。
越高的可用性等级投入呈指数增长:99.99% 通常需要多活与自动化故障切换,目标要与业务价值匹配,而不是越高越好。