I/O Monitoring
100%

Process Utilization · Lesson 5

I/O Monitoring

Learn how to use iostat samples to investigate CPU and block-device activity.

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.

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.
  • await reports average request latency, including queue and service time.
  • Average queue-size fields show requests waiting or being serviced.
  • %util reports 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
Next Lesson
Back to Process Utilization