Calculate I/O wait time percentage and its effect on overall CPU responsiveness.
iowait is CPU idle time specifically attributable to waiting on outstanding I/O — the CPU had nothing else to run and the only reason it wasn't 'plain idle' is that a process on that CPU is blocked on disk or network I/O. As a simplified capacity model, treating iowait as directly subtracted from 100% gives an 'effective CPU' figure that highlights how much compute capacity is effectively unavailable due to I/O bottlenecks rather than genuine CPU demand — a system with sustained high iowait often benefits far more from faster storage or more caching than from more CPU cores.
Effective CPU capacity
iowait% = iowait_ticks / total_ticks × 100; cpu_effective% = 100 − iowait%
No — quite the opposite. High iowait means the CPU is idle specifically because it's waiting on I/O, so the bottleneck is the storage (or network) subsystem, not CPU compute capacity. Adding more CPU cores won't help; faster storage, better caching, or reducing I/O demand will.
Because the CPU genuinely isn't executing any instructions during that time — it's a sub-classification of idle that specifically flags 'idle, and there happens to be pending I/O from a process on this CPU', to distinguish it from ordinary idle with nothing pending, which is diagnostically useful even though both are technically 'not computing'.
Yes — per-core iowait can vary widely, and a single core showing high iowait due to one I/O-heavy process doesn't necessarily mean the whole system is I/O-constrained. Check per-core figures via `mpstat -P ALL` alongside `iostat -x` to correlate iowait with actual device-level latency and utilization.