Free — no signup required

Interpreting I/O Pressure

2 min read

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.

This is one of 18 chapters

Every chapter is free — Kubernetes, Terraform, SRE, distributed systems, and more — with fast daily review built in.

Sign up free