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.
1 Answer
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.
-
- 1worth noting that iotop is linux only. (at least I'm 99% sure it is)xenoterracide– xenoterracide2010-08-12 22:23:29 +00:00Commented Aug 12, 2010 at 22:23
- sar is also available on all unix versions that I ever worked with.txwikinger– txwikinger2010-08-13 13:58:30 +00:00Commented Aug 13, 2010 at 13:58
- 2On Ubuntu systems (this might apply to all Linuxes), there is some debate weather
iotopworks correctly. See bugs.launchpad.net/ubuntu/+source/linux/+bug/493156Stefan Lasiewski– Stefan Lasiewski2010-12-17 23:21:22 +00:00Commented Dec 17, 2010 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– Steven D2010-12-17 23:52:09 +00:00Commented Dec 17, 2010 at 23:52