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
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. This tool allows you to monitor I/O statistics for each device or partition. 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 disk devices:
The above iostat command will report per-device I/O statistics, including # of read/write requests per second (noted as r/s, w/s), average read/write speed (in KB/s), average read/write wait time (in milliseconds), average size of requests (in sectors), and percentage of CPU time spent for I/O requests. The statistics are refreshed every time interval specified.
To monitor disk I/O of individual disk partitions:
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.