Occasionally, something on my system starts hammering the disk. I would like to log data that would let me know about I/O usage per process, then I could go back to it later and see what keeps doing this. How should I go about solving this problem? Bonus points for solving this for arbitrary block devices.


I would give iotop a try (Linux only). It is pretty good at giving you the processes with high I/O transfers, but iotop is more for displaying the current status than logging.

For logging, sar is always a good tool for performance aspects.

  • guichaz.free.fr/iotop – elmarco Aug 12 '10 at 18:56
  • 1
    worth noting that iotop is linux only. (at least I'm 99% sure it is) – xenoterracide Aug 12 '10 at 22:23
  • sar is also available on all unix versions that I ever worked with. – txwikinger Aug 13 '10 at 13:58
  • 2
    On Ubuntu systems (this might apply to all Linuxes), there is some debate weather iotop works correctly. See bugs.launchpad.net/ubuntu/+source/linux/+bug/493156 – Stefan Lasiewski Dec 17 '10 at 23:21
  • @Stefan: From what I read that will only affect distributions that have configured their kernel with CONFIG_TASK_DELAY_ACCT enabled. Is there something else in the thread I missed? – Steven D Dec 17 '10 at 23:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.