2. 容量水位概念
2.1 容量水位的定义
容量水位(Capacity Watermark)是衡量系统资源使用程度与剩余能力的量化指标,它直接反映基础设施或应用组件在当前负载下距离容量瓶颈的“距离”。在 SRE 实践中,容量水位通常以百分比形式表达,例如“CPU 水位 72%”表示 CPU 已使用其额定容量的 72%,剩余 28% 可用于应对突发流量或业务增长。
容量水位不同于简单的资源监控指标,它强调“相对于额定上限的比例关系”,因此天然具备可比较性和可预测性。不同资源(CPU、内存、磁盘、网络)的额定上限定义方式不同,但水位口径必须统一,才能形成有效的容量基线。
2.2 为什么需要容量水位
没有容量水位,运维团队只能看到零散的监控曲线,无法回答以下关键问题:
- 容量是否健康? —— 当前水位是否在安全区间?
- 何时需要扩容? —— 按当前增长趋势,多久会达到瓶颈?
- 扩容多少合适? —— 水位基线应预留多少缓冲?
- 故障是否与容量相关? —— 故障发生时水位是否已超阈值?
容量水位将分散的监控数据转化为统一的“健康度语言”,让 SRE、开发、业务团队能够基于同一套口径讨论容量规划。在 GameDay 演练中,容量水位是判断“系统是否处于容量风险状态”的核心判据,也是混沌工程注入压力后验证容量弹性的关键观测指标。
2.3 容量水位的核心指标
容量水位覆盖四大基础资源:CPU、内存、磁盘、网络。每类资源的额定上限定义、水位计算方式、典型瓶颈特征各不相同,下表给出完整对比:
| 资源类型 | 额定上限定义 | 水位计算公式 | 典型瓶颈特征 | GameDay 关注点 |
|---|---|---|---|---|
| CPU | 物理核数 × 频率 × 超线程系数(或 vCPU 配额) | CPU 使用率(user + system + iowait)/ 额定上限 | 高负载时响应延迟飙升、请求排队 | 突发流量下 CPU 是否快速逼近 100% |
| 内存 | 物理内存总量(或容器/VM 分配上限) | (已用内存 + 缓存 + 缓冲区)/ 额定上限 | OOM Killer 触发、Swap 频繁换入换出 | 内存泄漏场景下水位是否持续攀升 |
| 磁盘 | 磁盘总容量(或分区/卷分配上限) | 已用磁盘空间 / 总容量 | 磁盘写满导致服务只读、日志丢失 | 日志暴增或数据积压时磁盘水位变化 |
| 网络 | 网卡带宽(或连接数/吞吐量上限) | 当前带宽使用量 / 额定带宽 | 丢包率上升、TCP 重传、连接超时 | 流量突增时带宽是否打满、连接池是否耗尽 |
2.4 容量水位分层模型
容量水位并非单一数值,而是从“资源层”到“服务层”再到“业务层”的分层体系。下图展示了容量水位的三层模型及其在 GameDay 演练中的映射关系:
2.5 容量水位口径基线
“口径基线”是指容量水位计算时所采用的统一标准,包括额定上限的取值方式、水位计算的时间窗口、以及安全阈值的定义。没有统一口径,不同团队对同一系统的容量判断可能截然不同。下表列出常见的口径基线要素:
| 口径要素 | 说明 | 推荐基线值 |
|---|---|---|
| 额定上限 | 资源可使用的最大理论值(非瞬时峰值) | CPU: vCPU 数 × 100%;内存: 物理总量 - 系统保留;磁盘: 分区总容量;网络: 网卡带宽 |
| 水位计算窗口 | 取平均值、P99 还是最大值?窗口时长? | CPU/内存: 5 分钟平均值;磁盘: 实时值;网络: 1 分钟平均带宽 |
| 安全水位阈值 | 触发告警或自动动作的水位边界 | CPU 80%、内存 75%、磁盘 85%、网络 70% |
| 危险水位阈值 | 必须立即介入的紧急水位 | CPU 95%、内存 90%、磁盘 95%、网络 90% |
| 水位趋势预测 | 基于历史数据预测未来水位 | 线性回归 + 7 天窗口,预测未来 24 小时水位 |
2.6 容量水位在 Grafana 中的可视化映射
在 Grafana 中,容量水位通常以“百分比仪表盘”或“时间序列 + 阈值线”的形式呈现。下图展示了一个典型的容量水位仪表盘布局,包含四个核心资源的实时水位与基线对比:
2.7 容量水位在 GameDay 中的典型应用
在 GameDay 演练中,容量水位是“压力注入 → 观测 → 决策”闭环的核心数据源。典型流程如下:
- 基线记录: 演练前记录各资源的安全水位基线(如 CPU 40%、内存 50%)。
- 压力注入: 通过混沌工程工具(如 Chaos Mesh、Litmus)注入 CPU 压力、内存泄漏或网络延迟。
- 水位观测: 在 Grafana 仪表盘中实时观察水位变化,对比安全阈值和危险阈值。
- 自动响应: 水位突破安全阈值时触发告警;突破危险阈值时触发自动扩容或降级。
- 复盘分析: 演练结束后,对比水位变化曲线与业务指标,评估容量规划的合理性。