xfsdist.bt(8)

πŸ“¦
version 0.27.0 Β· 3 versions
  • 0.27.0 Β· alpine 3.24, arch rolling, centos-stream 10, centos-stream 9, debian trixie, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu questing, ubuntu resolute, ubuntu stonking (latest)
  • 0.14.0 Β· ubuntu jammy
  • 0.20.2 Β· ubuntu noble
, in alpine 3.24, arch rolling, centos-stream 10, centos-stream 9, debian trixie, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu questing, ubuntu resolute, ubuntu stonking

✨ xfsdist.bt(8) β€” the XFS latency tea ✨

Hey bestie, this is the manual page for xfsdist.bt (manual name: xfsdist.bt, section 8) πŸŽ€ Let me spill it!

πŸ’– NAME

xfsdist.bt β€” Summarize XFS operation latency. Uses bpftrace/eBPF. ✨

🧚 SYNOPSIS

xfsdist.bt

🌸 DESCRIPTION

okay so this tool summarizes the time (aka latency) spent in common XFS file operations: reads, writes, opens, and syncs πŸ“– and it shows you all of it as a power-of-2 histogram πŸ“Š It uses an in-kernel eBPF map to store the histogram, which is lowkey so efficient πŸ’…

Since this works by tracing the xfs_file_operations interface functions, it will need updating to match any changes to those functions. Not me being dramatic, it's just the truth πŸ™ˆ

Since this uses BPF, only the root user can use this tool πŸ”₯ no cap.

πŸŽ€ REQUIREMENTS

You need CONFIG_BPF and bpftrace. That's the whole list, periodt ✨

πŸ¦‹ EXAMPLES

Trace XFS operation time, and print a summary on Ctrl-C:

# xfsdist.bt

πŸ“Š FIELDS

  • 0th β€” The operation name (shown in "@[...]") gets printed before each I/O histogram πŸ’œ
  • 1st, 2nd β€” This is a range of latency, in microseconds (shown in "[...)" set notation) πŸ“
  • 3rd β€” A column showing the count of operations in this range πŸ’…
  • 4th β€” This is an ASCII histogram representing the count column ✨

⚠️ OVERHEAD

Heads up bestie: this adds low-overhead instrumentation to these XFS operations, including reads and writes from the file system cache. Those reads and writes can be super frequent (it depends on the workload, eg, 1M/sec), and at that point the overhead of this tool may become noticeable 😭 Measure and quantify before use.

🌈 SOURCE

This is from bpftrace.

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 🧚

This is a bpftrace version of the bcc tool of the same name. The bcc tool may provide more options and customizations 🫢

https://github.com/iovisor/bcc

πŸ’» OS

Linux 🐧

πŸ§ͺ STABILITY

Unstable β€” still in development πŸ™ˆ

πŸ‘‘ AUTHOR

Brendan Gregg πŸ’–

πŸ”— SEE ALSO


Bye bestie, that's the whole tea from xfsdist.bt(8), straight from the USER COMMANDS section, dated 2018-09-08 🌸πŸ’