btrfsslower(8) System Manager's Manual btrfsslower(8)

# [NAME](#NAME)

btrfsslower - Trace slow btrfs file operations, with per-event details.

# [SYNOPSIS](#SYNOPSIS)

**btrfsslower \[-h] \[-j] \[-p PID] \[min\_ms] \[-d DURATION]**

# [DESCRIPTION](#DESCRIPTION)

This tool traces common btrfs file operations: reads, writes, opens, and syncs. It measures the time spent in these operations, and prints details for each that exceeded a threshold.

WARNING: See the OVERHEAD section.

By default, a minimum millisecond threshold of 10 is used. If a threshold of 0 is used, all events are printed (warning: verbose).

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.

# [REQUIREMENTS](#REQUIREMENTS)

CONFIG\_BPF and bcc.

# [OPTIONS](#OPTIONS)

-p PID Trace this PID only.

[min\_ms](#min_ms)

Minimum I/O latency (duration) to trace, in milliseconds. Default is 10 ms.

[-d DURATION](#d)

Total duration of trace in seconds.

# [EXAMPLES](#EXAMPLES)

[Trace synchronous file reads and writes slower than 10 ms:](#Trace)

\# **btrfsslower**

[Trace slower than 1 ms:](#Trace~2)

\# **btrfsslower 1**

[Trace slower than 1 ms, and output just the fields in parsable format (csv):](#Trace~3)

\# **btrfsslower -j 1**

[Trace all file reads and writes (warning: the output will be verbose):](#Trace~4)

\# **btrfsslower 0**

[Trace slower than 1 ms, for PID 181 only:](#Trace~5)

\# **btrfsslower -p 181 1**

[Trace for 10 seconds only:](#Trace~6)

\# **btrfsslower -d 10**

# [FIELDS](#FIELDS)

[TIME(s)](#TIME%28s%29)

Time of I/O completion since the first I/O seen, in seconds.

[COMM](#COMM)

Process name.

[PID](#PID)

Process ID.

[T](#T)

Type of operation. R == read, W == write, O == open, S == fsync.

[OFF\_KB](#OFF_KB)

File offset for the I/O, in Kbytes.

[BYTES](#BYTES)

Size of I/O, in bytes.

[LAT(ms)](#LAT%28ms%29)

Latency (duration) of I/O, measured from when it was issued by VFS to the filesystem, to when it completed. This time is inclusive of block device I/O, file system CPU cycles, file system locks, run queue latency, etc. It's a more accurate measure of the latency suffered by applications performing file system I/O, than to measure this down at the block device interface.

[FILENAME](#FILENAME)

A cached kernel file name (comes from dentry-&gt;d\_name.name).

[ENDTIME\_us](#ENDTIME_us)

Completion timestamp, microseconds (-j only).

[OFFSET\_b](#OFFSET_b)

File offset, bytes (-j only).

[LATENCY\_us](#LATENCY_us)

Latency (duration) of the I/O, in microseconds (-j only).

# [OVERHEAD](#OVERHEAD)

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. If this continues to be a problem, consider switching to a tool that prints in-kernel summaries only, such as [btrfsdist(8)](/man/enterprise-packages/bcc/btrfsdist.8).

Note that the overhead of this tool should be less than [fileslower(8)](/man/enterprise-packages/bcc/fileslower.8), as this tool targets btrfs functions only, and not all file read/write paths (which can include socket I/O).

# [SOURCE](#SOURCE)

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.

# [OS](#OS)

Linux

# [STABILITY](#STABILITY)

Unstable - in development.

# [AUTHOR](#AUTHOR)

Brendan Gregg

# [SEE ALSO](#SEE_ALSO)

[btrfsdist(8)](/man/enterprise-packages/bcc/btrfsdist.8), [biosnoop(8)](/man/enterprise-packages/bcc/biosnoop.8), [funccount(8)](/man/enterprise-packages/bcc/funccount.8), [fileslower(8)](/man/enterprise-packages/bcc/fileslower.8)

2016-02-15 USER COMMANDS

---

Document: btrfsslower(8) from bcc 0.37.0-r3 (Chainguard OS)
Source: https://github.com/iovisor/bcc
