You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
2.5 KiB
106 lines
2.5 KiB
.TH biotop 8 "2016-02-06" "USER COMMANDS"
|
|
.SH NAME
|
|
biotop \- Block device (disk) I/O by process top.
|
|
.SH SYNOPSIS
|
|
.B biotop [\-h] [\-C] [\-r MAXROWS] [interval] [count]
|
|
.SH DESCRIPTION
|
|
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.
|
|
.SH REQUIREMENTS
|
|
CONFIG_BPF and bcc.
|
|
.SH OPTIONS
|
|
.TP
|
|
\-C
|
|
Don't clear the screen.
|
|
.TP
|
|
\-r MAXROWS
|
|
Maximum number of rows to print. Default is 20.
|
|
.TP
|
|
interval
|
|
Interval between updates, seconds.
|
|
.TP
|
|
count
|
|
Number of interval summaries.
|
|
.SH EXAMPLES
|
|
.TP
|
|
Summarize block device I/O by process, 1 second screen refresh:
|
|
#
|
|
.B biotop
|
|
.TP
|
|
Don't clear the screen:
|
|
#
|
|
.B biotop -C
|
|
.TP
|
|
5 second summaries, 10 times only:
|
|
#
|
|
.B biotop 5 10
|
|
.SH FIELDS
|
|
.TP
|
|
loadavg:
|
|
The contents of /proc/loadavg
|
|
.TP
|
|
PID
|
|
Cached process ID, if present. This usually (but isn't guaranteed) to identify
|
|
the responsible process for the I/O.
|
|
.TP
|
|
COMM
|
|
Cached process name, if present. This usually (but isn't guaranteed) to identify
|
|
the responsible process for the I/O.
|
|
.TP
|
|
D
|
|
Direction: R == read, W == write. This is a simplification.
|
|
.TP
|
|
MAJ
|
|
Major device number.
|
|
.TP
|
|
MIN
|
|
Minor device number.
|
|
.TP
|
|
DISK
|
|
Disk device name.
|
|
.TP
|
|
I/O
|
|
Number of I/O during the interval.
|
|
.TP
|
|
Kbytes
|
|
Total Kbytes for these I/O, during the interval.
|
|
.TP
|
|
AVGms
|
|
Average time for the I/O (latency) from the issue to the device, to its
|
|
completion, in milliseconds.
|
|
.SH 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.
|
|
.SH SOURCE
|
|
This is from bcc.
|
|
.IP
|
|
https://github.com/iovisor/bcc
|
|
.PP
|
|
Also look in the bcc distribution for a companion _examples.txt file containing
|
|
example usage, output, and commentary for this tool.
|
|
.SH OS
|
|
Linux
|
|
.SH STABILITY
|
|
Unstable - in development.
|
|
.SH AUTHOR
|
|
Brendan Gregg
|
|
.SH INSPIRATION
|
|
top(1) by William LeFebvre
|
|
.SH SEE ALSO
|
|
biosnoop(8), biolatency(8), iostat(1)
|