iostat - How does %util affect %idle and %iowait

The meaning of three concepts:

%util:The previous answer has clearly described the meaning of idle.

%idle:The system is idle, that is, there is no running process.

%iowait: For a given CPU, the I/O wait time is the time during which that CPU was idle (i.e. didn’t execute any tasks) and there was at least one outstanding disk I/O operation requested by a task scheduled on that CPU (at the time it generated that I/O request).

High %util means that IO is busy, and the rate of the IO system is much lower than the processing rate of the CPU, so:

1) If the system has some CPU-intensive tasks running, the CPU will run other tasks while the IO is waiting, the CPU usage is high, and the %idle is low. At the same time %iowait is low (iowait indicates the proportion of IO transmission when IDLE)

2) If the system has no tasks to run, the CPU is idle when IO waits, this time the CPU usage is low, %idle is high, %iowait is high.


%iowait, which is the time spent waiting for availability.