If your Linux system gets slow down due to heavy disk I/O activities, you probably want to know which processes or users (in case of multi-user systems) are the culprit for such activities. You may also wish to monitor disk I/O trending over time as part of daily Linux system administration. Here I will introduce several disk I/O monitoring tools on Linux.
Monitor disk I/O on per-process basis
If you want to monitor disk I/O activities of individual Linux processes, you can try iotop. This tool shows a sorted list of the most I/O intensive processes in real time via top-like interface.
To install iotop on Ubuntu or Debian, run the following.
To install iotop on Fedora, run:
To install iotop on CentOS or RHEL, first set up RepoForge repository on your system, and then use yum command.
To monitor disk I/O with iotop:
Running iotop without any argument like above shows a list of all existing processes regardless of their disk I/O activities. If you want iotop to only show processes that are actually doing disk I/O, run the following instead.
Monitor disk I/O on per-disk basis
If you are interested in monitoring disk read/write rates of individual disks, you can use iostat. To use this tool, you need to run sysstat package.
To install sysstat on Ubuntu or Debian:
To install sysstat on CentOS, RHEL or Fedora:
To monitor disk I/O of individual disks with iostat:
Linux 3.2.0-29-generic-pae (my_host) 04/06/2013 _i686_ (2 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 2.11 0.08 3.20 3.65 0.00 90.96 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 55.77 1403.98 2138.71 4139635 6306020
Subscribe to Xmodulo
You can have daily Linux tutorials and FAQs delivered to your email inbox. Simply enter your email address below to subscribe to our mailing list. You will receive hands-on guides and carefully written tutorials related to Linux, everything for free.