I would like to analyze and visualize the disk through put of certain processes over time to see how much data is written to disk and to see at which times a process does not utilize the whole disk performance capability. For example because its doing a CPU intensive tasks or because it accesses a lot of small files and the disk needs to do a lot of head repositioning.

I already know about this question: How can I monitor disk io. It shows how I can monitor disk IO per process. In particular iotop -aoP shows the cumulative IO per process. This is nice if I want to track for example how much data a process has already written since IO top was started. But it does a bad job in visualizing the data over time.

Part 1: Essentially I am looking for something similar to the network history in gnome-system-monitor but listed per process and not totally for the whole disk.

Secondly the process that writes to disk does not necessarily have to be the process that causes the IO. For example if I access an NTFS file-system, then the data is first written to mount.ntfs-3g which writes it to disk. So if I want to track the performance of a qemu process writing to an img file thats on an NTFS storage then I see all the IO happen on the mount.ntfs-3g process and non on the qemu process. I assume the data is piped from the qemu process to the mount.ntfs-3g processes before it is written do disk.

Part 2: So the second part of the question is if I can somehow visualize the IO only for the qemu process.


You can use the top command for a certain disk drive, or if you really want to be specific use iostat -xd /proc.

| improve this answer | |
  • I was looking rather for a graphical solution that gives me a chart. And your solution also does not consider a certain process but all in proc. – lanoxx Mar 3 '15 at 12:57

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