The Thrashing Detector
In cloud environments, disk performance is frequently the hidden bottleneck. A virtual machine's disk is often a network-attached block device with significant latency and throughput limits. PSI I/O pressure makes this bottleneck visible and quantifiable.
If /proc/pressure/io shows high numbers, it proves that your application is I/O-bound — tasks are spending more time waiting for the storage subsystem than doing computation. This distinction is critical for choosing the right remediation.
Case Study — Database Server Diagnosis:
| Observation | CPU Usage | I/O Pressure | Diagnosis | Fix |
|---|---|---|---|---|
| Scenario A | 90% | ~0% | Queries are computationally expensive (sorting, aggregation, math) | Optimize queries, add CPU cores |
| Scenario B | 5% | 80% | Queries are reading cold data from disk; CPU is idle waiting for I/O | Add RAM (for buffer pool caching), switch to NVMe, add read replicas |
| Scenario C | 60% | 60% | Mixed workload; both resources are contended | Profile individual query types; likely needs both |
Scenario B is the classic trap: an engineer sees 5% CPU usage and concludes "the system has plenty of headroom." But PSI reveals the system is nearly paralyzed — just not by CPU. Adding more CPU cores in Scenario B would accomplish nothing. The bottleneck is the disk, and PSI proves it.
full I/O pressure is particularly dangerous because it means the disk queue is so saturated that no task can make progress. This can happen during backup jobs, bulk imports, or when a noisy neighbor on a shared cloud disk exhausts the provisioned IOPS limit.