iostat, commonly provided by the sysstat package, reports CPU and block-device activity. Use repeated samples and application latency together: throughput or utilization alone does not establish whether storage is causing a user-visible problem.
Process Utilization · Lesson 5
I/O Monitoring
Learn how to use iostat samples to investigate CPU and block-device activity.
Collecting Useful Samples
Run extended device statistics at one-second intervals:
$ iostat -xz 1
On common implementations, the first report contains averages since boot and later reports cover each interval. The -x option adds extended fields, while -z suppresses inactive devices. Allow several intervals to capture normal and problematic periods.
What does the first iostat report commonly represent?
Reading CPU Fields
The CPU section commonly includes user (%user), system (%system), idle (%idle), I/O wait (%iowait), and virtual-machine steal (%steal) time. I/O wait is CPU idle time during which the system has an outstanding I/O request; it is not the percentage of a disk that is busy.
What does %iowait describe?
Reading Device Fields
Field names vary by sysstat version, but useful concepts include:
- Read and write operations or data per second show workload rate.
awaitreports average request latency, including queue and service time.- Average queue-size fields show requests waiting or being serviced.
%utilreports the percentage of elapsed time during which the device had I/O in progress.
High %util can indicate saturation for a simple serial device, but it does not translate directly into performance capacity for parallel storage, arrays, or virtual devices. Compare latency with the device design, workload pattern, and service objective.
Which field is most directly associated with average I/O request latency?
Correlating the Evidence
Map device names to mounts and backing devices before drawing conclusions:
$ lsblk -o NAME,TYPE,SIZE,FSTYPE,MOUNTPOINTS
$ findmnt
Then correlate iostat intervals with application response time, database or filesystem metrics, and process-level I/O. Device-mapper, RAID, containers, and network-backed storage can add layers that require their own tools.
What should you do after seeing high %util on a device?
Lesson complete
You finished I/O Monitoring
You can now use iostat as evidence in an I/O investigation.
Collect multiple extended-statistics intervals.
Distinguish CPU I/O wait from device busy time.
Interpret latency, queueing, throughput, and utilization together.
Map devices to workloads and verify application impact.
Keep your learning progress
Create a free account to save this lesson and continue learning on any device.
Create a free account