3. 容量水位概念:容量、水位、阈值、预留量、利用率的核心定义与度量单位
在构建服务目录平台的容量水位巡检体系之前,必须统一对核心概念的定义。容量管理领域存在大量易混淆的术语,若定义不清晰,后续的 Rego 策略将无法准确表达巡检规则。本节将围绕五个核心概念——容量、水位、阈值、预留量和利用率,给出精确的工程定义及其度量单位。
3.1 核心概念定义与度量单位
| 概念 | 英文 | 定义 | 典型度量单位 | 示例 |
|---|---|---|---|---|
| 容量 | Capacity | 资源在理想状态下能够提供的最大服务能力或存储空间上限。 | GiB、vCPU、QPS、IOPS | 云盘总容量 500 GiB |
| 水位 | Water Level | 资源当前已使用的量,反映资源消耗的实时状态。 | GiB、vCPU、QPS、IOPS | 当前已用空间 320 GiB |
| 阈值 | Threshold | 预先设定的告警或触发动作的边界值,通常以百分比或量表示。 | %、GiB、vCPU | 水位 ≥ 80% 触发告警 |
| 预留量 | Reservation | 为保障业务突发、故障转移或未来增长而保留的不可用资源量。 | GiB、vCPU | 保留 50 GiB 用于故障切换 |
| 利用率 | Utilization | 水位与容量之比,反映资源的使用效率,通常以百分比表示。 | % | 利用率 = 320 / 500 = 64% |
工程提示:在 OPA/Rego 策略中,
capacity 和 water_level 通常作为输入数据(input)传入,而 threshold 和 reservation 作为策略参数(parameters)定义,utilization 则由 Rego 规则动态计算得出。
3.2 概念关系与计算模型
五个概念之间存在严格的数学关系,理解这些关系是编写巡检策略的基础。核心公式如下:
利用率(%)= (水位 / 容量)× 100%
可用容量 = 容量 - 预留量
有效利用率(%)= (水位 / (容量 - 预留量))× 100%
告警条件:水位 ≥ 容量 × 阈值百分比
其中,有效利用率是实际巡检中更关键的指标,因为它扣除了预留量,反映了真正可被业务使用的资源压力。
关键区别:“水位”是量,“利用率”是相对比例。水位高不一定代表风险高,若容量也大,利用率可能仍在安全范围内。巡检策略应优先关注“有效利用率”而非单纯的水位值。
3.3 容量水位概念关系图
下图展示了五个核心概念之间的逻辑关系与计算流向:
3.4 不同资源类型的度量差异
在实际的服务目录平台中,不同资源类型的容量水位度量方式存在差异,巡检策略需要针对性地适配:
| 资源类型 | 容量度量 | 水位度量 | 典型阈值 | 预留量策略 |
|---|---|---|---|---|
| 云硬盘 | GiB | 已用空间 GiB | 80% / 90% | 保留 5% 用于文件系统元数据 |
| CPU | vCPU 核数 | 已分配 vCPU 核数 | 75% / 85% | 保留 10% 用于调度突发 |
| 内存 | GiB | 已分配 GiB | 80% / 90% | 保留 15% 用于 OS 和缓存 |
| 网络带宽 | Mbps / Gbps | 实时吞吐量 | 70% / 85% | 保留 20% 用于流量突发 |
| 数据库连接数 | 最大连接数 | 当前活跃连接数 | 75% / 90% | 保留 10% 用于管理操作 |
避坑指南:不要对所有资源类型使用统一的阈值。例如,网络带宽的突发特性决定了其阈值应低于磁盘利用率阈值。在 Rego 策略中,建议将阈值参数化,按资源类型分别定义。
3.5 水位巡检中的关键指标计算示例
以一个实际的服务目录平台场景为例,展示如何计算并判断容量水位状态:
// 输入数据(input)
{
"resource_type": "cloud_disk",
"capacity_gib": 500,
"water_level_gib": 320,
"reservation_gib": 25,
"threshold_pct": 80
}
// Rego 策略计算
utilization := (input.water_level_gib / input.capacity_gib) * 100
// 结果: 64%
effective_capacity := input.capacity_gib - input.reservation_gib
// 结果: 475 GiB
effective_utilization := (input.water_level_gib / effective_capacity) * 100
// 结果: 67.37%
// 告警判定
violation := effective_utilization >= input.threshold_pct
// 结果: false (67.37% < 80%)
上述计算表明,虽然水位值(320 GiB)较高,但扣除预留量后的有效利用率(67.37%)仍在安全范围内,无需触发告警。这正是引入“预留量”概念的价值所在。
3.6 容量水位状态分类
基于上述概念,可以将资源状态划分为四个等级,便于巡检策略输出清晰的告警级别:
- 健康(Green):有效利用率 < 安全阈值(如 70%),资源充裕,无需关注。
- 关注(Yellow):有效利用率 ≥ 安全阈值但 < 告警阈值(如 70% ~ 80%),需纳入观察。
- 告警(Orange):有效利用率 ≥ 告警阈值但 < 紧急阈值(如 80% ~ 90%),需触发告警并准备扩容。
- 紧急(Red):有效利用率 ≥ 紧急阈值(如 90%),资源即将耗尽,需立即介入。
实践建议:在服务目录平台的 OPA 策略中,建议将这四个状态映射为 Rego 的
deny、warn、info 等不同严重级别,以便与告警系统(如 Prometheus Alertmanager)无缝集成。