I am conducting a performance experiment for a Linux program that takes input data, processes it, and writes data to a block device
Even though I know how much data the input is (for example, 1GB), I do not know exactly how much data is written to the block device since the program will process it (including deleting some intermediate data, write extra data).So this is not good to calculate the entire throughput for the block device.
I once used blktrace
, but it can easily get tons of data, which I am not sure is able to work for the past 1hr.
I know FIO
is able to benchmark IO device, but I specifically want to test the block IO device behavior under this program. So basically I am actually testing the combination of block IO device and the program instead of just the block IO device.
I thought about the du -sh
approach as well, but du -sh
is unable to catch the deleted data amount. Besides, can du -sh
catch the data written to the physical device? I mean, not to the file system.
Is there any other tool to use?
sysstat
package contains some utilities you might look in to like;iostat
andsar
. There is also a tool callediotop
that you may find useful. Several answers in a similar vein that may help you here: unix.stackexchange.com/questions/55212/…