What is iostat?
4 iostat examples
Syntax and Options
Related Commands
What is iostat?
Iostat command reports CPU and I/O statistics. iostat command is used during performance analysis to narrow down the problematic areas in the system.
Sample output of iostat command and its explanation:
$ iostat Linux 2.6.31-17-generic (sathiya-laptop) 05/25/10 _i686_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 25.99 0.78 7.43 12.77 0.00 53.03 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 27.40 797.19 201.27 800902 202208 sr0 0.03 1.24 0.00 1248 0
The first line displays general information — Linux kernel version, hostname etc.,
Next two lines displays CPU statistics, in which the first 3 column displays average CPU usage. The 4th column displays the percentage of time the CPU were idle and waited for I/O response. 5th column displays percentage of waiting time of virtual CPU. 6th column displays the percentage of time the CPU is idle.
Remaining line displays the device utilization report. First line in that is headers, such as number of Transfer per second, number of blocks read per second, blocks write per second, total block reads, total block writes.
4 iostat Examples
Continuous execution of iostat with specific interval
Execute iostat continuously at specific interval, and up to N times
$ iostat interval count
Execute iostat every 10 seconds for 5 times.
$ iostat 10 5 Linux 2.6.31-17-generic (sathiya-laptop) 05/25/10 _i686_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 24.24 1.51 7.49 4.97 0.00 61.79 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 14.06 249.94 121.22 1337998 648912 sr0 0.01 0.23 0.00 1248 0 avg-cpu: %user %nice %system %iowait %steal %idle 13.13 0.00 6.21 0.60 0.00 80.06 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 2.51 4.01 28.86 40 288 sr0 0.00 0.00 0.00 0 0 avg-cpu: %user %nice %system %iowait %steal %idle 11.11 0.00 5.71 0.00 0.00 83.18 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 0.30 0.00 3.20 0 32 sr0 0.00 0.00 0.00 0 0 avg-cpu: %user %nice %system %iowait %steal %idle 11.61 0.00 6.51 0.40 0.00 81.48 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 4.10 0.00 68.87 0 688 sr0 0.00 0.00 0.00 0 0 avg-cpu: %user %nice %system %iowait %steal %idle 15.03 0.00 5.91 0.20 0.00 78.86 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 1.50 0.00 30.46 0 304 sr0 0.00 0.00 0.00 0 0
View only the device report
View only the device report only once.
$ iostat -d Linux 2.6.31-17-generic (sathiya-laptop) 05/25/10 _i686_ (1 CPU) Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 12.17 207.67 108.62 1352766 707584 sr0 0.00 0.19 0.00 1248 0
View the device report continuously for every 2 seconds, for 5 times.
$ iostat -d 2 5 Linux 2.6.31-17-generic (sathiya-laptop) 05/25/10 _i686_ (1 CPU) Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 11.12 186.33 100.49 1358494 732640 sr0 0.00 0.17 0.00 1248 0 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 2.00 108.00 0.00 216 0 sr0 0.00 0.00 0.00 0 0 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 5.00 0.00 96.00 0 192 sr0 0.00 0.00 0.00 0 0 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 1.01 0.00 8.04 0 16 sr0 0.00 0.00 0.00 0 0 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 0.00 0.00 0.00 0 0 sr0 0.00 0.00 0.00 0 0
View device statistics for particular devices
When you have multiple devices, and wanted information only about certain devices then you can do that with -p option.
$ iostat -p sda Linux 2.6.31-17-generic (sathiya-laptop) 05/25/10 _i686_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 23.71 0.91 8.63 3.20 0.00 63.55 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 9.72 154.75 90.78 1375518 806888 sda1 0.00 0.11 0.00 946 0 sda2 0.00 0.00 0.00 14 0 sda3 4.74 115.66 30.38 1028073 270024 sda4 0.01 0.17 0.00 1522 0 sda5 4.96 38.75 60.40 344427 536864
For viewing multiple devices statistics, you can use
$ iostat -p sda, sdb
View extended statistics report
You can view extended statistics report using -x option.
$ iostat -x sda Linux 2.6.31-17-generic (sathiya-laptop) 05/25/10 _i686_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 23.20 0.73 8.62 2.75 0.00 64.70 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 3.65 7.00 4.99 3.64 131.34 85.14 25.10 0.35 40.25 4.55 3.93
Syntax and Options
iostat [ -c ] [ -d ] [ -N ] [ -n ] [ -h ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ] [ device […] | ALL ] [ -p [ device [,…] | ALL ] ] [ interval [ count ] ]
Short Option | Option Description |
---|---|
-c | Display the CPU utilization report |
-d | Display the device utilization report |
-h | Make the NFS report displayed by option -n easier to read by a human |
-k | Display statistics in kilobytes per second instead of blocks per second. Data dis-played are valid only with kernels 2.4 and later |
-m | Display statistics in megabytes per second instead of blocks or kilobytes per sec-ond. Data displayed are valid only with kernels 2.4 and later |
-N | Display the registered device mapper names for any device mapper devices. Usefulfor viewing LVM2 statistics |
-n | Display the network filesystem (NFS) report. This option works only with kernel2.6.17 and later |
-p [ { device [,…] | ALL } ] | The -p option displays statistics for block devices and all their partitions that are used by the system. If a device name is entered on the command line, then statistics for it and all its partitions are displayed. Last, the ALL keyword indicates that statistics have to be displayed for all the block devices and partitions defined by the system, including those that have never been used. Note that this option works only with post 2.5 kernels |
-t | Print the time for each report displayed. The timestamp format may depend on thevalue of the S_TIME_FORMAT environment variable (see below) |
-V | Print version number then exit |
-x | Display extended statistics. This option works with post 2.5 kernels since it needs /proc/diskstats file or a mounted sysfs to get the statistics. This option may also work with older kernels (e.g. 2.4) only if extended statistics are available in /proc/partitions (the kernel needs to be patched for that) |
-z | Tell iostat to omit output for any devices for which there was no activity duringthe sample period |
Related Commands
mpstat
vmstat
sar