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.