3、PSI 指标分类详解:some 指标与 full 指标的区别、avg10/avg60/avg300 时间窗口含义

PSI(Pressure Stall Information)是 Linux 内核 4.20 引入的实时资源压力度量体系。要正确设定告警阈值,必须先理解 PSI 的两大分类维度:资源维度(some vs. full)和时间窗口维度(avg10 / avg60 / avg300)。

3.1 some 指标 vs. full 指标:资源压力的两种视角

PSI 为 CPU、内存、IO 三类资源分别输出 some 和 full 两个压力值。它们的核心区别在于:任务是否完全停滞。

指标 含义 典型场景 告警敏感度
some 至少有一个任务因资源不足而等待,但系统仍有其他任务在运行 CPU 争抢、内存回收、IO 排队 中——表示资源开始紧张
full 所有可运行任务都在等待该资源,CPU 空转或完全阻塞 内存 OOM 边缘、IO 死锁、CPU 完全饱和 高——表示资源严重过载
关键认知:some 是“有人饿着”,full 是“全员饿着”。告警阈值设定时,full 指标通常应比 some 指标设置更低的阈值(更敏感),因为 full 状态对业务延迟的破坏性更大。
some vs. full 资源压力对比 some vs. full 资源压力对比 some 压力 至少一个任务在等待 其他任务仍可运行 例:CPU 排队、内存回收 full 压力 所有可运行任务都在等待 CPU 空转 / 完全阻塞 例:OOM 边缘、IO 死锁 告警阈值设定建议 some 阈值:10% ~ 30%(资源紧张预警) full 阈值:1% ~ 10%(严重过载告警)

3.2 avg10 / avg60 / avg300:三个时间窗口的衰减平均

PSI 不直接输出瞬时值,而是使用指数加权移动平均(EWMA)计算三个时间窗口的压力百分比。每个指标后缀代表不同的衰减半衰期:

时间窗口 半衰期 敏感度 适用场景
avg10 约 10 秒 高——反映瞬时抖动 突发流量、短时毛刺检测
avg60 约 60 秒 中——反映短期趋势 常规告警、分钟级异常
avg300 约 300 秒 低——反映长期基线 容量规划、慢速泄漏
实践要点:avg10 适合做“快速响应告警”,但容易误报;avg300 适合做“趋势分析”,但响应慢。推荐将 avg60 作为主要告警窗口,avg10 作为辅助确认,avg300 作为容量基线。
avg10 / avg60 / avg300 时间窗口衰减特性 avg10 / avg60 / avg300 时间窗口衰减特性 avg10 avg60 avg300 压力百分比 时间 → avg10 对突发敏感(红色),avg60 平衡响应与稳定(蓝色),avg300 反映长期趋势(绿色)

3.3 组合解读:some/full × 时间窗口

实际监控中,PSI 指标是 资源 × some/full × 时间窗口 的三维矩阵。以内存为例,内核输出如下 6 个值:

# cat /proc/pressure/memory
some avg10=2.34 avg60=1.89 avg300=1.45 total=12345678
full avg10=0.12 avg60=0.08 avg300=0.05 total=987654

解读规则:

  • some avg10 > 10%:内存回收导致部分任务抖动,可能触发短时延迟。
  • full avg10 > 1%:内存严重不足,大量任务被阻塞,需立即介入。
  • some avg300 持续上升:内存使用量在缓慢增长,可能存在泄漏。
  • full avg60 从 0 跳变到 5%:突发性内存压力,可能是大页分配或 cgroup 限制。
常见误区:不要只关注 some 而忽略 full。很多团队只设置 some avg10 > 30% 的告警,结果 full 已经飙到 10% 以上才收到通知,此时业务已受损。建议将 full 指标的告警阈值设置为 some 的 1/3 到 1/5。

3.4 阈值设定参考速查表

资源 指标 avg10 阈值 avg60 阈值 avg300 阈值 告警级别
CPU some > 20% > 15% > 10% Warning
full > 5% > 3% > 2% Critical
内存 some > 10% > 8% > 5% Warning
full > 2% > 1% > 0.5% Critical
IO some > 30% > 20% > 15% Warning
full > 10% > 5% > 3% Critical
最佳实践:以上阈值适用于通用场景。对于延迟敏感型业务(如交易系统、实时音视频),建议将阈值整体下调 30%~50%;对于批处理或离线计算,可适当上调 20%~30%。最终阈值需结合业务压测和故障复盘持续调优。