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.
77 lines
2.2 KiB
77 lines
2.2 KiB
.TH biosnoop 8 "2015-09-16" "USER COMMANDS"
|
|
.SH NAME
|
|
biosnoop \- Trace block device I/O and print details incl. issuing PID.
|
|
.SH SYNOPSIS
|
|
.B biosnoop
|
|
.SH DESCRIPTION
|
|
This tools traces block device I/O (disk I/O), and prints a one-line summary
|
|
for each I/O showing various details. These include the latency from the time of
|
|
issue to the device to its completion, and the PID and process name from when
|
|
the I/O was first created (which usually identifies the responsible process).
|
|
|
|
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.
|
|
|
|
This works by tracing various kernel blk_*() functions using dynamic tracing,
|
|
and will need updating to match any changes to these functions.
|
|
|
|
This makes use of a Linux 4.5 feature (bpf_perf_event_output());
|
|
for kernels older than 4.5, see the version under tools/old,
|
|
which uses an older mechanism
|
|
|
|
Since this uses BPF, only the root user can use this tool.
|
|
.SH REQUIREMENTS
|
|
CONFIG_BPF and bcc.
|
|
.SH EXAMPLES
|
|
.TP
|
|
Trace all block device I/O and print a summary line per I/O:
|
|
#
|
|
.B biosnoop
|
|
.SH FIELDS
|
|
.TP
|
|
TIME(s)
|
|
Time of the I/O, in seconds since the first I/O was seen.
|
|
.TP
|
|
COMM
|
|
Cached process name, if present. This usually (but isn't guaranteed) to identify
|
|
the responsible process for the I/O.
|
|
.TP
|
|
PID
|
|
Cached process ID, if present. This usually (but isn't guaranteed) to identify
|
|
the responsible process for the I/O.
|
|
.TP
|
|
DISK
|
|
Disk device name.
|
|
.TP
|
|
T
|
|
Type of I/O: R = read, W = write. This is a simplification.
|
|
.TP
|
|
SECTOR
|
|
Device sector for the I/O.
|
|
.TP
|
|
BYTES
|
|
Size of the I/O, in bytes.
|
|
.TP
|
|
LAT(ms)
|
|
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 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 SEE ALSO
|
|
disksnoop(8), iostat(1)
|