biostacks - Show disk I/O latency with initialization stacks. Uses bpftrace/eBPF.
Contents
Description
This tool shows disk I/O latency histograms for each block I/O initialization path. This can help reveal
the reason for different latencies, as some may be created by log flushing, others by application reads,
etc.
This works by attaching to block_io_start and block_rq_issue tracepoints.
Since this uses BPF, only the root user can use this tool.
Examples
Trace disk I/O latency with initialization stacks:
# biostacks.btFields
0th An initialization kernel stack trace (shown in "@[...]") is printed before each I/O histogram.
1st, 2nd
This is a range of I/O latency, in microseconds (shown in "[...)" set notation).
3rd A column showing the count of I/O in this range.
4th This is an ASCII histogram representing the count column.
Name
biostacks - Show disk I/O latency with initialization stacks. Uses bpftrace/eBPF.
Os
Linux
Overhead
The rate of biostacks should be low (bounded by device IOPS), such that the overhead of this tool is
expected to be negligible.
Requirements
CONFIG_BPF and bpftrace.
See Also
biosnoop.bt(8) USER COMMANDS 2019-07-12 biostacks.bt(8)
Source
This tool originated from the book "BPF Performance Tools", published by Addison Wesley (2019):
http://www.brendangregg.com/bpf-performance-tools-book.html
See the book for more documentation on this tool.
This version is in the bpftrace repository:
https://github.com/bpftrace/bpftrace
Also look in the bpftrace distribution for a companion _examples.txt file containing example usage,
output, and commentary for this tool.
Stability
Unstable - in development.
Synopsis
biostacks
