biotop-bpfcc8
Block device (disk) i/o by process top.
Usage
biotop [-h]
[-C]
[-r
MAXROWS]
[-p
PID]
[interval]
[count]
Overview
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.
Requirements
CONFIG_BPF and bcc.
Options
-
-C -
Don't clear the screen.
-
-r MAXROWS -
Maximum number of rows to print. Default is 20.
-
-p PID -
Trace this PID only.
- interval
-
Interval between updates, seconds.
- count
-
Number of interval summaries.
Examples
- Summarize block device I/O by process, 1 second screen refresh:
-
#
biotop
- Don't clear the screen:
-
# biotop -C
- 5 second summaries, 10 times only:
-
# biotop 5 10
Fields
- loadavg:
-
The contents of /proc/loadavg
- PID
-
Cached process ID, if present. This usually (but isn't guaranteed) to identify the responsible process for the I/O.
- COMM
-
Cached process name, if present. This usually (but isn't guaranteed) to identify the responsible process for the I/O.
- D
-
Direction: R == read, W == write. This is a simplification.
- MAJ
-
Major device number.
- MIN
-
Minor device number.
- DISK
-
Disk device name.
- I/O
-
Number of I/O during the interval.
- Kbytes
-
Total Kbytes for these I/O, during the interval.
- AVGms
-
Average time for the I/O (latency) from the issue to the device, to its completion, in milliseconds.
Overhead
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.
Source
This is from bcc.
-
https://github.com/iovisor/bcc
Also look in the bcc distribution for a companion _examples.txt file containing example usage, output, and commentary for this tool.
OS
Linux
Stability
Unstable - in development.
Inspiration
top(1) by William LeFebvre
History
- Debian 13 (Trixie) to Debian 12 (Bookworm): the text shown here
- Debian 11 (Bullseye) to Debian 10 (Buster)
-p since Debian 12 (Bookworm).