Linux CPU Pressure, measured by Pressure Stall Information (PSI) in the kernel (4.20+), indicates how much time tasks wait for the CPU, unlike simple usage, showing true resource contention affecting performance, especially when tasks are stalled due to memory pressure ("thrashing") or I/O bottlenecks, viewable via /proc/pressure/cpu or tools like Netdata/Prometheus. High PSI values (avg10, avg60, avg300) mean tasks are waiting, even if usage looks low, signaling performance issues, often requiring deeper investigation into memory/I/O for the root cause
Common Causes & What the Output Means
- Some line: Time when at least some tasks are stalled.
- Full line: Time when all non-idle tasks are stalled (severe).
-
High PSI, Low Usage: Tasks are waiting, often due to:
- Memory Pressure: High kswapd activity moving pages to swap, causing page faults.
- I/O Pressure: Disk/network bottlenecks making processes wait.
- Thrashing: Constant memory page swapping, wasting CPU cycles
What is CPU Pressure?
- CPU Usage: Shows how much CPU is busy (running tasks).
- CPU Pressure: Shows how much CPU is idle because tasks are waiting for it (or other resources like memory/I/O)
How to Check CPU Pressure (PSI)
Kernel Files: Check /proc/pressure/cpu for percentages of time tasks waited (e.g., avg10 for 10s, avg60 for 60s, avg300 for 300s).
cat /proc/pressure/cpu
Support in XorMon
It will be supported since XmrMon v2.2
Examples