Performance Monitoring Using Dstat

Sun 22 May 2011 Category: Linux

I'd like to introduce the utility 'dstat'. Dstat provides detailed statistics about what is currently happening on your Linux box.

Dstat allows you to monitor the system load, disk troughput, disk io, network bandwith, and many more items.

Dstat is so valuable because it provides you with all required information on a single row that updates every so often. It is a great tool for debugging system performance. An example of the output of dstat:


Click on this image to view the dstat output at the original size. It will tell you a small story on what happened on the system.

As you can see, a copy action is going on between two disks. Then suddenly, some other process is writing data to the source disk. Both read and write performance drops. As soon as the additional writing process stops, the read and write performance of the still running copy process returns back to normal.

The real benefit of this utility is that it clearly provides almost all information you might want to know in a single line.

One of the most used options are the disk throughput and network throughput columns. By default, dstat displays the aggregated throughput for all disks and network cards. You can bypass this behavior by specifying individual disks or network devices with the -D or -N option, like:

dstat -D sda,sdb -N eth0,eth1 20

Please note that the '20' argument at the end specifies how often the screen gets updated. Thus every single row is the average of that 20 second time frame.

For a full overview of all options that are available, issue the 'dstat --list' command.

You may find it very useful.