Reading /proc/pressure
PSI answers a question load average cannot: how much time was actually lost waiting for a resource.
$ cat /proc/pressure/io
some avg10=12.44 avg60=8.21 avg300=3.90 total=41235891
full avg10=4.10 avg60=2.88 avg300=1.02 total=9128374
some vs full
some is the share of time at least one task was stalled on the resource. full is the share where every runnable task was stalled — nothing productive happened at all.
full above a few percent is a real problem. some being high while full stays near zero usually just means one unlucky task, and the box is fine.
Why load average is not this
Load average counts runnable and uninterruptible tasks. It cannot distinguish sixteen threads happily using sixteen cores from four threads thrashing on swap. PSI measures lost time directly, which is the thing you actually care about.
Also available per-cgroup at
/sys/fs/cgroup/<name>/{cpu,io,memory}.pressure. That is usually where you want to look — it tells you which workload is stalling, not just that something is.