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 容量水位概念关系图

下图展示了五个核心概念之间的逻辑关系与计算流向:

容量水位核心概念关系图 容量 (Capacity) 最大服务能力上限 水位 (Water Level) 当前已使用量 预留量 (Reservation) 保留不可用资源 利用率 (Utilization) 水位 / 容量 × 100% 阈值 (Threshold) 告警边界条件 分母 分子 扣减 比较 有效利用率 = 水位 / (容量 - 预留量) × 100% 巡检策略应优先基于有效利用率进行告警判定

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)无缝集成。