This can be used to characterize the distribution of block device (disk) I/O sizes. To study block device I/O in more detail, see biosnoop.bt(8).
This uses the tracepoint:block:block_rq_issue tracepoint, and is a simple example of bpftrace.
Since this uses BPF, only the root user can use this tool.
CONFIG_BPF and bpftrace.
- Trace block I/O and summarize as a histogram by process:
A process name (shown in "@[...]") is printed before each I/O histogram.
- 1st, 2nd
This is a range of I/O sizes, in Kbytes (shown in "[...)" set notation).
A column showing the count of I/O in this range.
This is an ASCII histogram representing the count column.
Since block device I/O usually has a relatively low frequency (< 10,000/s), the overhead for this tool is expected to be low or negligible. For high IOPS storage systems, test and quantify before use.
This is from bpftrace.
Also look in the bpftrace distribution for a companion _examples.txt file containing example usage, output, and commentary for this tool.
This is a bpftrace version of the bcc tool of the same name.
Unstable - in development.