| .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 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) |