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

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.
Trace this PID only.

# btrfsdist
# btrfsdist -p 181
# 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 column).

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

btrfsslower(8)

2016-02-15 USER COMMANDS