btrfsdist - Summarize btrfs operation latency. Uses Linux eBPF/bcc.
btrfsdist [-h] [-T] [-N] [-d] [interval] [count]
This tool summarizes time (latency) spent in common btrfs file operations:
reads, writes, opens, and syncs, and presents it as a power-of-2 histogram. It
uses an in-kernel eBPF map to store the histogram for efficiency.
Since this works by tracing the btrfs_file_operations interface functions, it
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.
- Print usage message.
- Don't include timestamps on interval output.
- Output in milliseconds.
- -p PID
- Trace this PID only.
- Trace btrfs operation time, and print a summary on
- # btrfsdist
- Trace PID 181 only:
- # btrfsdist -p 181
- Print 1 second summaries, 10 times:
- # btrfsdist 1 10
- 1 second summaries, printed in milliseconds
- # btrfsdist -m 1
- Range of milliseconds for this bucket.
- Range of microseconds for this bucket.
- Number of operations in this time range.
- ASCII representation of the distribution (the count
This adds low-overhead instrumentation to btrfs writes and fsyncs, as well as
all system reads and opens (due to the current implementation of the
btrfs_file_operations interface). Particularly, all reads and writes from the
file system cache will incur extra overhead while tracing. Such reads and
writes can be very frequent (depending on the workload; eg, 1M/sec), at which
point the overhead of this tool may become noticeable. Measure and quantify
This is from bcc.
Also look in the bcc distribution for a companion _examples.txt file containing
example usage, output, and commentary for this tool.
Unstable - in development.