The blktrace command can also send the tracing data over the network so that it is stored on a different device.
For this, start blktrace on the host system that is going to hold the data as follows:
$ sudo blktrace -l
And on the target device, run another instance as follows:
# blktrace -d /dev/mmcblk2 -h <host_ip>
Also on the target, but on a different SSH connection, you can now execute the specific workload you want to trace:
# dd if=/dev/urandom of=/mnt/home/root/random-10k-file bs=1k count=10
conv=fsync 10+0 records in 10+0 records out 10240 bytes (10 kB) copied, 0.00585167 s, 1.7 MB/s
Once it finishes, interrupt the blktrace on the target with Ctrl + C. A summary will be printed at both the target and the host. On the host, a new directory with the tracing data has been created with the format:
<ipaddress>-<date>-<time>
You can now run blkparse on the host to process the gathered data by providing the directory path and the device name:
$ blkparse -D <directory-name> mmcblk2