首页/系统/Linux 运维命令速查/PSI 压力指标:/proc/pressure
性能与监控48 条

PSI 压力指标:/proc/pressure

PSI(Pressure Stall Information)量化「多少时间在等资源」:cpu/io/memory 三类的 some/full 值比负载更贴近用户体验,是新一代关键指标。

Linux 运维命令速查系统更新于 2026-10-13

PSI 量化资源等待

PSI(Pressure Stall Information)把「任务因为等资源而被迫停下」的时间比例直接量化出来,分成 CPU、IO、内存三类。相比平均负载,它更贴近真实体验:负载高但任务都没等待,说明只是并行度高;负载不高但 IO 等待占比很高,说明磁盘是真瓶颈。数据来自内核在 /proc/pressure 下暴露的接口。

基本信息

适用平台Linux 内核 4.20 以上并要求开启 PSI 配置项
数据入口/proc/pressure/cpu、/proc/pressure/io、/proc/pressure/memory
字段构成some 与 full 两组,各自带 avg10、avg60、avg300 与累计 total
采集情况主流监控组件已普遍内建采集

典型使用场景

  • 判断「机器变慢」是 CPU、内存还是磁盘在拖后腿
  • 压测时观察资源争抢随并发上升的变化曲线
  • 排查负载不高但响应明显变慢的诡异现象
  • 给容量评估提供量化依据,而不是只看使用率
  • 定位内存回收压力是否已经影响到业务进程

直接读取

直接读取
cat /proc/pressure/cpu        # some avg10=0.02 avg60=0.01 avg300=0.00 total=123456
cat /proc/pressure/io
cat /proc/pressure/memory
watch -n1 'cat /proc/pressure/io'      # 持续观察秒级波动
for i in 1 2 3; do cat /proc/pressure/io | head -1; sleep 5; done   # 间隔采样
grep -o 'some avg60=[0-9.]*' /proc/pressure/io   # 脚本取字段

字段逐项读法

字段含义判断要点
some至少有一个任务因该资源停等的时间占比反映争抢开始出现的程度
full所有可运行任务都在等待的时间占比出现持续非零说明影响已经很明显
avg10最近 10 秒的平均值适合看瞬时尖峰,容易受单次抖动影响
avg60 / avg300最近 1 分钟与 5 分钟的平均值判断趋势与业务时段的关联性
total累计停等微秒数适合对比不同时间点的增量
PSI 反映的是「等待」而不指向具体设备:看到 IO 压力高,还要结合磁盘的利用率与平均等待时间才能定位到究竟哪块盘、哪个进程。

排查顺序

  • 连续采样几次,先判断压力是持续存在还是瞬时抖动
  • 依次读 CPU、IO、内存三类,找出压力最高的那一类作为主线索
  • IO 压力高时结合磁盘利用率与平均等待时间,定位到具体设备
  • 内存压力高时检查回收是否频繁、有没有进程被强制终止的记录
  • 锁定可疑进程后再分析它的读写模式是否能通过参数或架构优化
压力比例本身没有绝对好坏之分,与响应时间、错误率这类业务指标对照看才有说服力;单看数值高低很难判断严重程度。

易错点

  • 拿 avg10 的瞬时尖峰当故障结论,应先看 60 秒与 300 秒的平均趋势并对照业务时段
  • 把 PSI 当成设备级指标用:它只说压力,不指认具体磁盘或进程,需要继续下钻
  • 老内核或未开启对应配置项时文件不存在,监控里应做兼容判断而不是报错中断
  • 只采一次数据做判断,PSI 是时间比例,必须观察一段窗口才有意义

数据来源与参考

  • 内核文档:PSI(Documentation/accounting/psi.rst)
  • man 5 proc(pressure 接口)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌