DOKK / manpages / debian 12 / bpfcc-tools / biolatency-bpfcc.8.en
biolatency(8) System Manager's Manual biolatency(8)

biolatency - Summarize block device I/O latency as a histogram.

biolatency [-h] [-F] [-T] [-Q] [-m] [-D] [-F] [-e] [-j] [-d DISK] [interval [count]]

biolatency traces block device I/O (disk I/O), and records the distribution of I/O latency (time). This is printed as a histogram either on Ctrl-C, or after a given interval in seconds.

The latency of disk I/O operations is measured from when requests are issued to the device up to completion. A -Q option can be used to include time queued in the kernel.

This tool uses in-kernel eBPF maps for storing timestamps and the histogram, for efficiency.

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.

-h Print usage message.

Include timestamps on output.
Output histogram in milliseconds.
Print a histogram per disk device.
Print a histogram per set of I/O flags.
Print a histogram dictionary
Show extension summary(total, average)
Trace this disk only
Output interval, in seconds.
Number of outputs.

# biolatency
# biolatency 1 10
include timestamps on output: # biolatency -mT 1
# biolatency -Q
# biolatency -D
# biolatency -j
# biolatency -e

Microsecond range
Millisecond range
How many I/O fell into this range
An ASCII bar chart to visualize the distribution (count column)

This traces kernel functions and maintains in-kernel timestamps and a histogram, which are asynchronously copied to user-space. This method is very efficient, and the overhead for most storage I/O rates (< 10k IOPS) should be negligible. If you have a higher IOPS storage environment, test and quantify the overhead before use.

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.

Linux

Unstable - in development.

Brendan Gregg, Rocky Xing

biosnoop(8)

2020-12-30 USER COMMANDS