3. PSI 指标解读:some 与 full 的区别、avg10/avg60/avg300 的含义、total 累计值的作用
在设定 PSI 漂移告警阈值之前,必须准确理解 PSI 指标的三个核心维度:压力类型(some vs full)、时间窗口(avg10/avg60/avg300) 以及 累计统计(total)。这三个维度共同决定了告警的灵敏度与准确性。
3.1 some 与 full:压力类型的本质区别
PSI 将资源压力分为两个级别,分别对应不同的系统行为:
| 指标 | 含义 | 触发条件 | 典型场景 |
|---|---|---|---|
| some | 至少有一个任务因资源不足而等待 | 资源争用开始发生,部分任务进入等待状态 | CPU 单核过载、内存少量回收、IO 队列轻度堆积 |
| full | 所有可运行任务均因资源不足而等待 | 资源完全耗尽,系统吞吐量急剧下降 | CPU 全部核满载、内存严重不足触发 OOM、IO 设备饱和 |
关键认知:some 是“开始疼”,full 是“已经瘫痪”。告警阈值设定时,some 用于早期预警,full 用于紧急响应。
以下 SVG 展示了 some 与 full 在系统资源队列中的行为差异:
3.2 avg10 / avg60 / avg300:时间窗口的含义
PSI 为每个压力类型提供了三个时间窗口的统计值,分别代表不同时间尺度下的平均压力:
| 窗口 | 全称 | 统计周期 | 用途 |
|---|---|---|---|
| avg10 | 10 秒滑动平均 | 最近 10 秒 | 实时监控、瞬时尖峰检测 |
| avg60 | 60 秒滑动平均 | 最近 60 秒 | 短期趋势、毛刺过滤 |
| avg300 | 300 秒滑动平均 | 最近 5 分钟 | 中长期基线、漂移识别 |
实践建议:avg10 用于快速告警,avg60 用于确认趋势,avg300 用于基线漂移检测。三个窗口配合使用,可以有效避免误报和漏报。
以下 SVG 展示了三个时间窗口在压力曲线上的作用:
3.3 total 累计值的作用
total 是 PSI 指标中的累计等待时间(单位:微秒),从系统启动或指标重置开始累加。它不直接用于告警阈值,但具有以下关键作用:
- 计算平均压力:通过 total 差值除以时间间隔,可以精确计算任意时间段的平均压力。
- 验证告警准确性:当 avg 指标出现异常时,通过 total 的增量可以确认是否真实发生了压力事件。
- 长期趋势分析:total 的增长率变化可以反映系统资源压力的长期漂移趋势。
注意:total 值会持续增长,不能直接用于阈值告警。必须通过差分计算(delta total / delta time)转换为压力百分比后使用。
3.4 三个维度的综合应用
在实际告警阈值设定中,需要将三个维度组合使用:
| 告警场景 | 压力类型 | 时间窗口 | total 辅助 |
|---|---|---|---|
| CPU 瞬时尖峰 | some | avg10 | 验证增量 |
| 内存持续压力 | full | avg60 | 确认趋势 |
| IO 漂移检测 | some + full | avg300 | 计算增长率 |
核心公式:压力百分比 = (total_end - total_start) / (time_end - time_start) × 100%。这是将 total 转换为可用告警指标的基础。