iostat, also known as input/output statistics, is a popular Linux system monitoring tool that can be used to collect statistics of input and output devices. It allows users to identify performance issues of local disk, remote disk, and system information. The iostat creates reports, the CPU Utilization report, the Device Utilization report, and the Network Filesystem report.
In this tutorial, we will learn how to install iostat on Ubuntu Linux and how to use it. This guide is compatible with all Ubuntu versions between 22.04 and 16.04.
Prerequisite
- Ubuntu desktop or server installed on your system.
- Non-root user with sudo privileges setup on your system
Install iostat
By default, iostat is included with sysstat package in Ubuntu. You can easily install it by just running the following command:
sudo apt install sysstat -y
Once sysstat is installed, you can proceed to the next step.
iostat Basic Example
Let’s start by running the iostat command without any argument. This will displays information about the CPU usage, and I/O statistics of your system:
iostat
You should see the following output:
Linux 3.19.0-25-generic (Ubuntu-PC) Saturday 16 December 2017 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
22.67 0.52 6.99 1.88 0.00 67.94
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 15.15 449.15 119.01 771022 204292
The first line displays the Linux kernel version and hostname in the above output. The next two lines display CPU statistics like average CPU usage, the percentage of time the CPU was idle and waited for I/O response, the percentage of waiting time of virtual CPU, and the percentage of time the CPU is idle. The next two lines display the device utilization report, like the number of blocks read and written per second, and the total block reads and writes per second.
By default, iostat displays the report with the current date. If you want to display the current time, run the following command:
iostat -t
You should see the following output:
Linux 3.19.0-25-generic (Ubuntu-PC) Saturday 16 December 2017 _x86_64_ (4 CPU)
Saturday 16 December 2017 09:44:55 IST
avg-cpu: %user %nice %system %iowait %steal %idle
21.37 0.31 6.93 1.28 0.00 70.12
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 9.48 267.80 79.69 771022 229424
To check the version of the iostat, run the following command:
iostat -V
Output:
sysstat version 10.2.0
(C) Sebastien Godard (sysstat orange.fr)
You can list out all the options available with iostat command using the following command:
iostat --help
Output:
Usage: iostat [ options ] [ [ ] ]
Options are:
[ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ]
[ -j { ID | LABEL | PATH | UUID | ... } ]
[ [ -T ] -g ] [ -p [ [,...] | ALL ] ]
[ [...] | ALL ]
iostat Advance Usage Example
If you want to view only the device report only once, run the following command:
iostat -d
You should see the following output:
Linux 3.19.0-25-generic (Ubuntu-PC) Saturday 16 December 2017 _x86_64_ (4 CPU)
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 12.18 353.66 102.44 771022 223320
To view the device report continuously for every 5 seconds, for 3 times:
iostat -d 5 3
You should see the following output:
Linux 3.19.0-25-generic (Ubuntu-PC) Saturday 16 December 2017 _x86_64_ (4 CPU)
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 11.77 340.71 98.95 771022 223928
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 2.00 0.00 8.00 0 40
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.60 0.00 3.20 0 16
If you want to view the statistics of specific devices, run the following command:
iostat -p sda
You should see the following output:
Linux 3.19.0-25-generic (Ubuntu-PC) Saturday 16 December 2017 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
21.69 0.36 6.98 1.44 0.00 69.53
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 11.00 316.91 92.38 771022 224744
sda1 0.07 0.27 0.00 664 0
sda2 0.01 0.05 0.00 128 0
sda3 0.07 0.27 0.00 648 0
sda4 10.56 315.21 92.35 766877 224692
sda5 0.12 0.48 0.02 1165 52
sda6 0.07 0.32 0.00 776 0
You can also view the statistics of multiple devices with the following command:
iostat -p sda, sdb, sdc
If you want to display the device I/O statistics in MB/second, run the following command:
iostat -m
You should see the following output:
Linux 3.19.0-25-generic (Ubuntu-PC) Saturday 16 December 2017 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
21.39 0.31 6.94 1.30 0.00 70.06
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 9.67 0.27 0.08 752 223
If you want to view the extended information for a specific partition (sda4), run the following command:
iostat -x sda4
You should see the following output:
Linux 3.19.0-25-generic (Ubuntu-PC) Saturday 16 December 2017 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
21.26 0.28 6.87 1.19 0.00 70.39
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda4 0.79 4.65 5.71 2.68 242.76 73.28 75.32 0.35 41.80 43.66 37.84 4.55 3.82
If you want to display only the CPU usage statistics, run the following command:
iostat -c
You should see the following output:
Linux 3.19.0-25-generic (Ubuntu-PC) Saturday 16 December 2017 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
21.45 0.33 6.96 1.34 0.00 69.91