Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

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.

share|improve this question
add comment

1 Answer

up vote 12 down vote accepted

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.

share|improve this answer
    
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
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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