biotop [-h] [-C] [-r MAXROWS] [-p PID] [interval] [count]
This is top for disks.
This traces block device I/O (disk I/O), and prints a per-process summary every interval (by default, 1 second). The summary is sorted on the top disk consumers by throughput (Kbytes). The PID and process name shown are measured from when the I/O was first created, which usually identifies the responsible process.
For efficiency, this uses in-kernel eBPF maps to cache process details (PID and comm) by I/O request, as well as a starting timestamp for calculating I/O latency, and the final summary.
This works by tracing various kernel blk_*() functions using dynamic tracing, and will need updating to match any changes to these functions.
Since this uses BPF, only the root user can use this tool.
CONFIG_BPF and bcc.
Don't clear the screen.
- -r MAXROWS
Maximum number of rows to print. Default is 20.
- -p PID
Trace this PID only.
Interval between updates, seconds.
Number of interval summaries.
- Summarize block device I/O by process, 1 second screen refresh:
- Don't clear the screen:
# biotop -C
- 5 second summaries, 10 times only:
# biotop 5 10
The contents of /proc/loadavg
Cached process ID, if present. This usually (but isn't guaranteed) to identify the responsible process for the I/O.
Cached process name, if present. This usually (but isn't guaranteed) to identify the responsible process for the I/O.
Direction: R == read, W == write. This is a simplification.
Major device number.
Minor device number.
Disk device name.
Number of I/O during the interval.
Total Kbytes for these I/O, during the interval.
Average time for the I/O (latency) from the issue to the device, to its completion, in milliseconds.
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 bcc.
Also look in the bcc distribution for a companion _examples.txt file containing example usage, output, and commentary for this tool.
Unstable - in development.
Brendan Gregg, Rocky Xing
top(1) by William LeFebvre
biosnoop(8), biolatency(8), iostat(1)