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
Do you want to receive Linux FAQs, detailed tutorials and tips published at Xmodulo? Enter your email address below, and we will deliver our Linux posts straight to your email box, for free. Delivery powered by Google Feedburner.