3. 容量指标定义:六大核心水位

容量水位看板的核心在于选择正确的指标。在系统容量管理中,我们关注的是资源饱和度——即资源被消耗的程度,以及它离瓶颈还有多远。本章定义六大核心容量指标,它们覆盖了计算、存储、网络与中间件四大领域。

3.1 指标全景图

六大指标并非孤立存在,它们分别对应系统不同层面的资源瓶颈。下图展示了指标与系统组件的映射关系:

容量指标与系统组件映射 CPU 饱和度 内存使用率 磁盘 I/O 等待 网络带宽利用率 连接池水位 队列深度 计算层(CPU / 内存) 存储层(磁盘 / 文件系统) 网络层(带宽 / 连接) 中间件层(连接池 / 队列) 提示:一个资源可能对应多个指标,例如计算层同时包含 CPU 饱和度和内存使用率

3.2 指标定义与计算公式

每个指标都有明确的定义和采集方式。下表汇总了六大指标的核心信息:

指标名称 定义 计算公式 典型阈值
CPU 饱和度 CPU 处于非空闲状态的时间占比,反映计算资源的繁忙程度 100% - CPU 空闲率 警告 > 80%,危险 > 90%
内存使用率 已用内存占可用内存的比例,包括应用、缓存和内核占用 已用内存 / 总内存 × 100% 警告 > 80%,危险 > 90%
磁盘 I/O 等待 CPU 因等待磁盘 I/O 完成而处于空闲状态的时间百分比 iowait / (user + system + idle + iowait) × 100% 警告 > 30%,危险 > 50%
网络带宽利用率 当前网络流量占链路最大带宽的比例 当前吞吐量 / 链路带宽 × 100% 警告 > 70%,危险 > 85%
连接池水位 数据库或服务连接池中已使用的连接数占最大连接数的比例 活跃连接数 / 最大连接数 × 100% 警告 > 70%,危险 > 85%
队列深度 消息队列或任务队列中等待处理的任务数量 当前队列长度(值) 警告 > 1000,危险 > 5000(视系统而定)

关键区别:CPU 饱和度与 CPU 使用率不同。饱和度关注的是排队等待的程度,而使用率只反映繁忙比例。当 CPU 饱和度接近 100% 时,任务开始排队,响应时间急剧上升。

3.3 指标采集方式

不同指标的采集工具和命令各有侧重。以下是生产环境中常用的采集方法:

  • CPU 饱和度:top / htop 查看 idle 列;/proc/stat 计算;Prometheus node_cpu_seconds_total。
  • 内存使用率:free -m;/proc/meminfo;Prometheus node_memory_MemTotal_bytes 与 node_memory_MemAvailable_bytes。
  • 磁盘 I/O 等待:iostat -x 1 查看 %iowait;/proc/stat 中的 iowait 字段。
  • 网络带宽利用率:sar -n DEV;iftop;Prometheus node_network_receive_bytes_total 与 node_network_transmit_bytes_total。
  • 连接池水位:应用层暴露的 metrics 端点(如 Spring Boot Actuator /actuator/metrics);数据库 SHOW PROCESSLIST。
  • 队列深度:消息中间件管理 API(如 RabbitMQ Management Plugin、Kafka JMX MBean);应用层自定义指标。

3.4 指标关联分析

单一指标往往无法准确定位瓶颈。下图展示了六大指标之间的典型关联关系,帮助你在看板中建立联动分析逻辑:

六大指标关联分析模型 瓶颈判定 CPU 饱和度 ↑ 内存使用率 ↑ 网络带宽 ↑ 磁盘 I/O 等待 ↑ 连接池水位 ↑ 队列深度 ↑ 分析原则:当多个指标同时升高时,优先排查 I/O 等待和队列深度,它们往往是根因

实战建议:在看板中为每个指标设置三个水位区间——安全区(绿色)、关注区(黄色)、告警区(红色)。当指标进入关注区时,触发预扩容流程;进入告警区时,立即触发自动伸缩或人工介入。

3.5 指标选择避坑指南

在实际看板设计中,常见的指标选择误区包括:

  • 只选使用率,不选饱和度:CPU 使用率 80% 可能仍在安全范围,但 CPU 饱和度 80% 意味着 20% 的任务在排队,响应时间已劣化。
  • 忽略磁盘 I/O 等待:磁盘 I/O 等待高时,CPU 看似空闲,但系统吞吐量已受限于存储。
  • 网络带宽只看入站:出站带宽(如响应数据、日志推送)同样可能成为瓶颈。
  • 连接池只看当前数:需要同时关注等待获取连接的线程数,这才是真正的排队压力。
  • 队列深度只看长度:还需关注消费速率,如果消费速率大于生产速率,队列深度高只是暂时现象。

注意:不要将六大指标平均对待。在 CPU 密集型系统中,CPU 饱和度权重最高;在 I/O 密集型系统中,磁盘 I/O 等待和队列深度才是关键。看板设计应基于系统特征动态调整指标优先级。