CLOVER🍀

That was when it all began.

Ubuntu Linux 24.04 LTSでBPF Compiler Collection(BCC)のツールが入れられるようになっていたという話

これは、なにをしたくて書いたもの?

以前、Rocky Linux 9でBPF Compiler Collection(BCC)のツールに含まれるtcptopを使ってみました。

Rocky Linux 9.4でBPF Compiler Collection(BCC)のtcptopを使って転送状況を確認をしてみる - CLOVER🍀

この時はUbunutu Linuxの標準リポジトリーからインストールすると古すぎて動作しなかったのですが、今やってみると
少し状況が変わっているようなので確認してみたいと思います。

BCC自体はこちらです。

GitHub - iovisor/bcc: BCC - Tools for BPF-based Linux IO analysis, networking, monitoring, and more

環境

今回の環境はこちら。Ubuntu Linux 24.04 LTSです。

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 24.04 LTS
Release:        24.04
Codename:       noble


$ uname -srvmpio
Linux 6.8.0-53-generic #55-Ubuntu SMP PREEMPT_DYNAMIC Fri Jan 17 15:37:52 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

tcptopが使える

最初に気づいたのは、BCCツールに含まれているtcptopが使えたことです。

$ sudo tcptop-bpfcc

コマンド名に-bpfccが入っていますけど。

Ubuntu Linux 24.04 LTSにインストールされているBCCツールのパッケージを確認してみる

では、パッケージを確認してみます。

$ apt-file search -F $(which tcptop-bpfcc)
bpfcc-tools: /usr/sbin/tcptop-bpfcc

bpfcc-toolsですね。現時点だと、0.29.1がインストールされているようです。

$ apt show bpfcc-tools
Package: bpfcc-tools
Version: 0.29.1+ds-1ubuntu7
Priority: optional
Section: misc
Source: bpfcc
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Ritesh Raj Sarraf <rrs@debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 2,885 kB
Depends: python3-bpfcc (>= 0.29.1+ds-1ubuntu7), python3-netaddr, python3:any
Homepage: https://github.com/iovisor/bcc
Download-Size: 687 kB
APT-Manual-Installed: no
APT-Sources: http://archive.ubuntu.com/ubuntu noble/main amd64 Packages
Description: tools for BPF Compiler Collection (BCC)
 BPF Compiler Collection (BCC) is a toolkit for creating efficient
 kernel tracing and manipulation programs
 .
 It makes use of extended BPF (Berkeley Package Filter) and provides tools
 for BPF based Linux IO analysis, networking, monitoring and more
 .
 This package provides the command-line tools and examples

bpfcc-tools : Noble (24.04) : Ubuntu

どんなコマンドがインストールされたのか、確認してみます。

$ dpkg -L bpfcc-tools | grep ^/usr/sbin/
/usr/sbin/argdist-bpfcc
/usr/sbin/bashreadline-bpfcc
/usr/sbin/bindsnoop-bpfcc
/usr/sbin/biolatency-bpfcc
/usr/sbin/biolatpcts-bpfcc
/usr/sbin/biopattern-bpfcc
/usr/sbin/biosnoop-bpfcc
/usr/sbin/biotop-bpfcc
/usr/sbin/bitesize-bpfcc
/usr/sbin/bpflist-bpfcc
/usr/sbin/btrfsdist-bpfcc
/usr/sbin/btrfsslower-bpfcc
/usr/sbin/cachestat-bpfcc
/usr/sbin/cachetop-bpfcc
/usr/sbin/capable-bpfcc
/usr/sbin/cobjnew-bpfcc
/usr/sbin/compactsnoop-bpfcc
/usr/sbin/cpudist-bpfcc
/usr/sbin/cpuunclaimed-bpfcc
/usr/sbin/criticalstat-bpfcc
/usr/sbin/dbslower-bpfcc
/usr/sbin/dbstat-bpfcc
/usr/sbin/dcsnoop-bpfcc
/usr/sbin/dcstat-bpfcc
/usr/sbin/deadlock-bpfcc
/usr/sbin/dirtop-bpfcc
/usr/sbin/drsnoop-bpfcc
/usr/sbin/execsnoop-bpfcc
/usr/sbin/exitsnoop-bpfcc
/usr/sbin/ext4dist-bpfcc
/usr/sbin/ext4slower-bpfcc
/usr/sbin/filegone-bpfcc
/usr/sbin/filelife-bpfcc
/usr/sbin/fileslower-bpfcc
/usr/sbin/filetop-bpfcc
/usr/sbin/funccount-bpfcc
/usr/sbin/funcinterval-bpfcc
/usr/sbin/funclatency-bpfcc
/usr/sbin/funcslower-bpfcc
/usr/sbin/gethostlatency-bpfcc
/usr/sbin/hardirqs-bpfcc
/usr/sbin/inject-bpfcc
/usr/sbin/javacalls-bpfcc
/usr/sbin/javaflow-bpfcc
/usr/sbin/javagc-bpfcc
/usr/sbin/javaobjnew-bpfcc
/usr/sbin/javastat-bpfcc
/usr/sbin/javathreads-bpfcc
/usr/sbin/killsnoop-bpfcc
/usr/sbin/klockstat-bpfcc
/usr/sbin/kvmexit-bpfcc
/usr/sbin/llcstat-bpfcc
/usr/sbin/mdflush-bpfcc
/usr/sbin/memleak-bpfcc
/usr/sbin/mountsnoop-bpfcc
/usr/sbin/mysqld_qslower-bpfcc
/usr/sbin/netqtop-bpfcc
/usr/sbin/nfsdist-bpfcc
/usr/sbin/nfsslower-bpfcc
/usr/sbin/nodegc-bpfcc
/usr/sbin/nodestat-bpfcc
/usr/sbin/offcputime-bpfcc
/usr/sbin/offwaketime-bpfcc
/usr/sbin/oomkill-bpfcc
/usr/sbin/opensnoop-bpfcc
/usr/sbin/perlcalls-bpfcc
/usr/sbin/perlflow-bpfcc
/usr/sbin/perlstat-bpfcc
/usr/sbin/phpcalls-bpfcc
/usr/sbin/phpflow-bpfcc
/usr/sbin/phpstat-bpfcc
/usr/sbin/pidpersec-bpfcc
/usr/sbin/ppchcalls-bpfcc
/usr/sbin/profile-bpfcc
/usr/sbin/pythoncalls-bpfcc
/usr/sbin/pythonflow-bpfcc
/usr/sbin/pythongc-bpfcc
/usr/sbin/pythonstat-bpfcc
/usr/sbin/rdmaucma-bpfcc
/usr/sbin/readahead-bpfcc
/usr/sbin/reset-trace-bpfcc
/usr/sbin/rubycalls-bpfcc
/usr/sbin/rubyflow-bpfcc
/usr/sbin/rubygc-bpfcc
/usr/sbin/rubyobjnew-bpfcc
/usr/sbin/rubystat-bpfcc
/usr/sbin/runqlat-bpfcc
/usr/sbin/runqlen-bpfcc
/usr/sbin/runqslower-bpfcc
/usr/sbin/shmsnoop-bpfcc
/usr/sbin/slabratetop-bpfcc
/usr/sbin/sofdsnoop-bpfcc
/usr/sbin/softirqs-bpfcc
/usr/sbin/solisten-bpfcc
/usr/sbin/sslsniff-bpfcc
/usr/sbin/stackcount-bpfcc
/usr/sbin/statsnoop-bpfcc
/usr/sbin/syncsnoop-bpfcc
/usr/sbin/syscount-bpfcc
/usr/sbin/tclcalls-bpfcc
/usr/sbin/tclflow-bpfcc
/usr/sbin/tclobjnew-bpfcc
/usr/sbin/tclstat-bpfcc
/usr/sbin/tcpaccept-bpfcc
/usr/sbin/tcpcong-bpfcc
/usr/sbin/tcpconnect-bpfcc
/usr/sbin/tcpconnlat-bpfcc
/usr/sbin/tcpdrop-bpfcc
/usr/sbin/tcplife-bpfcc
/usr/sbin/tcpretrans-bpfcc
/usr/sbin/tcprtt-bpfcc
/usr/sbin/tcpstates-bpfcc
/usr/sbin/tcpsubnet-bpfcc
/usr/sbin/tcpsynbl-bpfcc
/usr/sbin/tcptop-bpfcc
/usr/sbin/tcptracer-bpfcc
/usr/sbin/threadsnoop-bpfcc
/usr/sbin/tplist-bpfcc
/usr/sbin/trace-bpfcc
/usr/sbin/ttysnoop-bpfcc
/usr/sbin/ucalls
/usr/sbin/uflow
/usr/sbin/ugc
/usr/sbin/uobjnew
/usr/sbin/ustat
/usr/sbin/uthreads
/usr/sbin/vfscount-bpfcc
/usr/sbin/vfsstat-bpfcc
/usr/sbin/virtiostat-bpfcc
/usr/sbin/wakeuptime-bpfcc
/usr/sbin/xfsdist-bpfcc
/usr/sbin/xfsslower-bpfcc
/usr/sbin/zfsdist-bpfcc
/usr/sbin/zfsslower-bpfcc

数は134個ありました…。

Ubuntu Linux 22.04 LTSではどうなっているのか?

Ubuntu Linux 22.04 LTSの状況は変わっていないのかな?ということで確認してみました。

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.5 LTS
Release:        22.04
Codename:       jammy

こちらでは、18.0から変わっていませんでしたね。

$ apt show bpfcc-tools
Package: bpfcc-tools
Version: 0.18.0+ds-2
Priority: optional
Section: universe/misc
Source: bpfcc
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Ritesh Raj Sarraf <rrs@debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 2,585 kB
Depends: python3-bpfcc (>= 0.18.0+ds-2), python3-netaddr, python3:any
Homepage: https://github.com/iovisor/bcc
Download-Size: 627 kB
APT-Sources: https://mirrors.edge.kernel.org/ubuntu jammy/universe amd64 Packages
Description: tools for BPF Compiler Collection (BCC)
 BPF Compiler Collection (BCC) is a toolkit for creating efficient
 kernel tracing and manipulation programs
 .
 It makes use of extended BPF (Berkeley Package Filter) and provides tools
 for BPF based Linux IO analysis, networking, monitoring and more
 .
 This package provides the command-line tools and examples

bpfcc-tools : Jammy (22.04) : Ubuntu

実行しようとすると、やっぱり失敗しますが…。

というわけで、

Rocky Linux 9では?

ちなみに、現在のRocky Linux 9ではどのバージョンのBCCツールがインストールされるのかも確認してみました。

$ cat /etc/redhat-release
Rocky Linux release 9.5 (Blue Onyx)

0.30.0でした。

$ dnf info bcc-tools
メタデータの期限切れの最終確認: 0:00:31 前の 2025年02月11日 15時27分38秒 に実施しました。
利用可能なパッケージ
名前         : bcc-tools
バージョン   : 0.30.0
リリース     : 7.el9_5
Arch         : x86_64
サイズ       : 479 k
ソース       : bcc-0.30.0-7.el9_5.src.rpm
リポジトリー : appstream
概要         : Command line tools for BPF Compiler Collection (BCC)
URL          : https://github.com/iovisor/bcc
ライセンス   : ASL 2.0
説明         : Command line tools for BPF Compiler Collection (BCC)

0.30.0

$ sudo dnf install bcc-tools

ドキュメントとCのソースを除くと132個ありました。2個差がありますね…なんでしょう…。

$ rpm -ql bcc-tools | grep ^/usr/share/bcc/tools/ | grep -vE '^/usr/share/bcc/tools/doc|\.c$'
/usr/share/bcc/tools/argdist
/usr/share/bcc/tools/bashreadline
/usr/share/bcc/tools/bindsnoop
/usr/share/bcc/tools/biolatency
/usr/share/bcc/tools/biolatpcts
/usr/share/bcc/tools/biopattern
/usr/share/bcc/tools/biosnoop
/usr/share/bcc/tools/biotop
/usr/share/bcc/tools/bitesize
/usr/share/bcc/tools/bpflist
/usr/share/bcc/tools/cachestat
/usr/share/bcc/tools/cachetop
/usr/share/bcc/tools/capable
/usr/share/bcc/tools/cobjnew
/usr/share/bcc/tools/compactsnoop
/usr/share/bcc/tools/cpudist
/usr/share/bcc/tools/cpuunclaimed
/usr/share/bcc/tools/dbslower
/usr/share/bcc/tools/dbstat
/usr/share/bcc/tools/dcsnoop
/usr/share/bcc/tools/dcstat
/usr/share/bcc/tools/deadlock
/usr/share/bcc/tools/dirtop
/usr/share/bcc/tools/drsnoop
/usr/share/bcc/tools/execsnoop
/usr/share/bcc/tools/exitsnoop
/usr/share/bcc/tools/ext4dist
/usr/share/bcc/tools/ext4slower
/usr/share/bcc/tools/f2fsslower
/usr/share/bcc/tools/filegone
/usr/share/bcc/tools/filelife
/usr/share/bcc/tools/fileslower
/usr/share/bcc/tools/filetop
/usr/share/bcc/tools/funccount
/usr/share/bcc/tools/funcinterval
/usr/share/bcc/tools/funclatency
/usr/share/bcc/tools/funcslower
/usr/share/bcc/tools/gethostlatency
/usr/share/bcc/tools/hardirqs
/usr/share/bcc/tools/javacalls
/usr/share/bcc/tools/javaflow
/usr/share/bcc/tools/javagc
/usr/share/bcc/tools/javaobjnew
/usr/share/bcc/tools/javastat
/usr/share/bcc/tools/javathreads
/usr/share/bcc/tools/killsnoop
/usr/share/bcc/tools/klockstat
/usr/share/bcc/tools/kvmexit
/usr/share/bcc/tools/lib
/usr/share/bcc/tools/lib/ucalls
/usr/share/bcc/tools/lib/uflow
/usr/share/bcc/tools/lib/ugc
/usr/share/bcc/tools/lib/uobjnew
/usr/share/bcc/tools/lib/ustat
/usr/share/bcc/tools/lib/uthreads
/usr/share/bcc/tools/llcstat
/usr/share/bcc/tools/mdflush
/usr/share/bcc/tools/memleak
/usr/share/bcc/tools/mountsnoop
/usr/share/bcc/tools/mysqld_qslower
/usr/share/bcc/tools/netqtop
/usr/share/bcc/tools/nfsdist
/usr/share/bcc/tools/nfsslower
/usr/share/bcc/tools/nodegc
/usr/share/bcc/tools/nodestat
/usr/share/bcc/tools/offcputime
/usr/share/bcc/tools/offwaketime
/usr/share/bcc/tools/oomkill
/usr/share/bcc/tools/opensnoop
/usr/share/bcc/tools/perlcalls
/usr/share/bcc/tools/perlflow
/usr/share/bcc/tools/perlstat
/usr/share/bcc/tools/phpcalls
/usr/share/bcc/tools/phpflow
/usr/share/bcc/tools/phpstat
/usr/share/bcc/tools/pidpersec
/usr/share/bcc/tools/ppchcalls
/usr/share/bcc/tools/profile
/usr/share/bcc/tools/pythoncalls
/usr/share/bcc/tools/pythonflow
/usr/share/bcc/tools/pythongc
/usr/share/bcc/tools/pythonstat
/usr/share/bcc/tools/rdmaucma
/usr/share/bcc/tools/readahead
/usr/share/bcc/tools/reset-trace
/usr/share/bcc/tools/rubycalls
/usr/share/bcc/tools/rubyflow
/usr/share/bcc/tools/rubygc
/usr/share/bcc/tools/rubyobjnew
/usr/share/bcc/tools/rubystat
/usr/share/bcc/tools/runqlat
/usr/share/bcc/tools/runqlen
/usr/share/bcc/tools/runqslower
/usr/share/bcc/tools/shmsnoop
/usr/share/bcc/tools/slabratetop
/usr/share/bcc/tools/sofdsnoop
/usr/share/bcc/tools/softirqs
/usr/share/bcc/tools/solisten
/usr/share/bcc/tools/sslsniff
/usr/share/bcc/tools/stackcount
/usr/share/bcc/tools/statsnoop
/usr/share/bcc/tools/swapin
/usr/share/bcc/tools/syncsnoop
/usr/share/bcc/tools/syscount
/usr/share/bcc/tools/tclcalls
/usr/share/bcc/tools/tclflow
/usr/share/bcc/tools/tclobjnew
/usr/share/bcc/tools/tclstat
/usr/share/bcc/tools/tcpaccept
/usr/share/bcc/tools/tcpcong
/usr/share/bcc/tools/tcpconnect
/usr/share/bcc/tools/tcpconnlat
/usr/share/bcc/tools/tcpdrop
/usr/share/bcc/tools/tcplife
/usr/share/bcc/tools/tcpretrans
/usr/share/bcc/tools/tcprtt
/usr/share/bcc/tools/tcpstates
/usr/share/bcc/tools/tcpsubnet
/usr/share/bcc/tools/tcpsynbl
/usr/share/bcc/tools/tcptop
/usr/share/bcc/tools/tcptracer
/usr/share/bcc/tools/threadsnoop
/usr/share/bcc/tools/tplist
/usr/share/bcc/tools/trace
/usr/share/bcc/tools/ttysnoop
/usr/share/bcc/tools/vfscount
/usr/share/bcc/tools/vfsstat
/usr/share/bcc/tools/virtiostat
/usr/share/bcc/tools/wakeuptime
/usr/share/bcc/tools/wqlat
/usr/share/bcc/tools/xfsdist
/usr/share/bcc/tools/xfsslower

BCCってなんでしたっけ?どんなコマンドが使える?

話をUbuntu Linux 24.04 LTSに戻します。

ここでの前提は、BCCツールの0.29.1ですね。

GitHub - iovisor/bcc at v0.29.1

BPF Compiler Collection(BCC)とはそもそもなんでしたか?というところですが、BCCは効率的にカーネルをトレースしたり
操作するプログラムを作成するためのツールキットです。

Linux 3.15で追加された拡張Berkeley Packet Filters(eBPF)を使っており、BCCが使う多くの機能はLinux 4.1以降が
必要になります。

BCCを使うとCのカーネルinstrumentationや、PythonLuaをフロントエンドにしたBPFプログラムの作成が容易になるそうで、
単体で使えるツールも含まれています。

用途はパフォーマンス分析やネットワークトラフィック制御ですね。

コンテンツとしては以下になります。

BPF Compiler Collection (BCC) / Contents

そのうちのツールの外観です。

パスがtoolsで始まるものがツールなのですが、その説明を見ているといろんなことができるようでおもしろそうです。

ツールはPythonで実装されているようで、例もついています。

たとえば、MySQLPostgreSQLしきい値より遅いクエリーをトレースするdbslower。

tools/dbslower: Trace MySQL/PostgreSQL queries slower than a threshold. Examples.

https://github.com/iovisor/bcc/blob/v0.29.1/tools/dbslower.py

例を見ると使い方が書かれています。

https://github.com/iovisor/bcc/blob/v0.29.1/tools/dbslower_example.txt

OpenSSLが読み書きするデータをスニッフィングするsslsniff。

tools/sslsniff: Sniff OpenSSL written and readed data. Examples.

https://github.com/iovisor/bcc/blob/v0.29.1/tools/sslsniff.py

https://github.com/iovisor/bcc/blob/v0.29.1/tools/sslsniff_example.txt

高級言語におけるGC、スレッド生成、オブジェクトのアロケーション、例外などのイベントを収集するustat。

tools/ustat: Collect events such as GCs, thread creations, object allocations, exceptions and more in high-level languages. Examples.

https://github.com/iovisor/bcc/blob/v0.29.1/tools/lib/ustat.py

https://github.com/iovisor/bcc/blob/v0.29.1/tools/lib/ustat_example.txt

README.mdで一覧を見るのと、あとはtoolsディレクトリー内にコマンドと例が置かれているので、こちらを見てみると
よいでしょう。

https://github.com/iovisor/bcc/tree/v0.29.1/tools

チュートリアルはこちらにあります。

https://github.com/iovisor/bcc/blob/v0.29.1/docs/tutorial.md

チュートリアル内では、先にこちらのブログエントリーを読んでおくことを勧めているので、まずは目を通しておくとよいかと。

Linux Performance Analysis in 60,000 Milliseconds | by Netflix Technology Blog | Netflix TechBlog

参考)

第688回 eBPFのコンパイラーに対応したツールでさまざまな挙動を可視化する | gihyo.jp

コマンドの一覧と説明を抽出してみる

最後に、どんなコマンドがあるかヘルプの説明とともに並べてみます。

ヘルプを表示するとこんな感じになるのですが、

$ tcptop-bpfcc --help
usage: tcptop-bpfcc [-h] [-C] [-S] [-p PID] [--cgroupmap CGROUPMAP] [--mntnsmap MNTNSMAP] [-4 | -6] [interval] [count]

Summarize TCP send/recv throughput by host

positional arguments:
  interval              output interval, in seconds (default 1)
  count                 number of outputs

options:
  -h, --help            show this help message and exit
  -C, --noclear         don't clear the screen
  -S, --nosummary       skip system summary line
  -p PID, --pid PID     trace this PID only
  --cgroupmap CGROUPMAP
                        trace cgroups in this BPF map only
  --mntnsmap MNTNSMAP   trace mount namespaces in this BPF map only
  -4, --ipv4            trace IPv4 family only
  -6, --ipv6            trace IPv6 family only

examples:
    ./tcptop           # trace TCP send/recv by host
    ./tcptop -C        # don't clear the screen
    ./tcptop -p 181    # only trace PID 181
    ./tcptop --cgroupmap mappath  # only trace cgroups in this BPF map
    ./tcptop --mntnsmap mappath   # only trace mount namespaces in the map
    ./tcptop -4        # trace IPv4 family only
    ./tcptop -6        # trace IPv6 family only

これを全部並べてもなんなので、usageと次の説明のサマリーだけ抽出したいと思います。

ちなみに、コマンドによっては自分の環境ではこんな感じに失敗するものもあるので、そういうものは単に[Failure]とのみ
出力することにします。

$ bitesize-bpfcc --help
/virtual/main.c:12:1: warning: declaration of 'struct tracepoint__block__block_rq_issue' will not be visible outside of this function [-Wvisibility]
   12 | TRACEPOINT_PROBE(block, block_rq_issue)
      | ^
/virtual/include/bcc/helpers.h:1437:46: note: expanded from macro 'TRACEPOINT_PROBE'
 1437 | int tracepoint__##category##__##event(struct tracepoint__##category##__##event *args)
      |                                              ^
<scratch space>:161:1: note: expanded from here

〜省略〜

こんなスクリプトを用意。

show.py

import subprocess

for line in sorted(subprocess.getoutput("dpkg -L  bpfcc-tools").splitlines()):
    if line.startswith("/usr/sbin/"):
        command = line

        help = subprocess.getoutput(f"{command} --help")

        print(f"#### {command.lstrip('/usr/sbin/')}")
        print()

        if help.startswith("usage"):
            summary = ""
            usage = ""
            
            for help_line in help.splitlines():
                if help_line.startswith("usage:") or help_line.startswith(" "):
                    usage += help_line + "\n"
                    continue

                if help_line.strip():
                    summary = help_line
                    break

            print(summary.strip())
            print()

            print(f"```shell\n{usage}```")
            print()
        else:
            print(f"[Failure]")

実行。

$ python3 show.py

以下に実行結果から生成した結果を貼っておきます。説明がなかったり、説明が2行以上になっていると結果がおかしなことに
なっていますが、今回はこれでもいいかなと。

コマンド名とブラウザの翻訳で見れば意味はだいたいわかるでしょう。あとは直接ヘルプやドキュメントを見てもいいので。

argdist-bpfcc

Trace a function and display a summary of its parameter values.

usage: argdist-bpfcc [-h] [-p PID] [-t TID] [-z STRING_SIZE] [-i INTERVAL]
                     [-d DURATION] [-n COUNT] [-v] [-c] [-T TOP]
                     [-H specifier] [-C specifier] [-I header]

ashreadline-bpfcc

Print entered bash commands from all running shells

usage: bashreadline-bpfcc [-h] [-s [SHARED]]

dsnoop-bpfcc

Trace TCP binds

usage: bindsnoop-bpfcc [-h] [-t] [-w] [-p PID] [-P PORT] [-E] [-U] [-u UID]
                       [--count] [--cgroupmap CGROUPMAP] [--mntnsmap MNTNSMAP]

olatency-bpfcc

Summarize block device I/O latency as a histogram

usage: biolatency-bpfcc [-h] [-T] [-Q] [-m] [-D] [-F] [-e] [-j] [-d DISK]
                        [interval] [count]

olatpcts-bpfcc

Monitor IO latency distribution of a block device

usage: biolatpcts-bpfcc [-h] [-i INTERVAL]
                        [-w {from-rq-alloc,after-rq-alloc,on-device}]
                        [-p PCT,...] [-j] [--verbose]
                        DEV

opattern-bpfcc

Show block device I/O pattern.

usage: biopattern-bpfcc [-h] [-d DISK] [interval] [count]

osnoop-bpfcc

Trace block I/O

usage: biosnoop-bpfcc [-h] [-Q] [-d DISK] [-P]

otop-bpfcc

Block device (disk) I/O by process

usage: biotop-bpfcc [-h] [-C] [-r MAXROWS] [-p PID] [interval] [count]

tesize-bpfcc

[Failure]

pflist-bpfcc

Display processes currently using BPF programs and maps

usage: bpflist-bpfcc [-h] [-v]

trfsdist-bpfcc

Summarize btrfs operation latency

usage: btrfsdist-bpfcc [-h] [-T] [-m] [-p PID] [interval] [count]

trfsslower-bpfcc

Trace common btrfs file operations slower than a threshold

usage: btrfsslower-bpfcc [-h] [-j] [-p PID] [-d DURATION] [min_ms]

cachestat-bpfcc

Count cache kernel function calls

usage: cachestat-bpfcc [-h] [-T] [interval] [count]

cachetop-bpfcc

Show Linux page cache hit/miss statistics including read and write hit % per

usage: cachetop-bpfcc [-h] [-p PID] [interval]

capable-bpfcc

Trace security capability checks

usage: capable-bpfcc [-h] [-v] [-p PID] [-K] [-U] [-x] [--cgroupmap CGROUPMAP]
                     [--mntnsmap MNTNSMAP] [--unique]

cobjnew-bpfcc

Summarize object allocations in high-level languages.

usage: uobjnew [-h] [-l {c,java,ruby,tcl}] [-C TOP_COUNT] [-S TOP_SIZE] [-v]
               pid [interval]

compactsnoop-bpfcc

Trace compact zone

usage: compactsnoop-bpfcc [-h] [-T] [-p PID] [-d DURATION] [-K] [-e]

cpudist-bpfcc

Summarize on- and off-CPU time per task as a histogram.

usage: cpudist-bpfcc [-h] [-O] [-T] [-m] [-P] [-L] [-p PID] [-I] [-e]
                     [interval] [count]

cpuunclaimed-bpfcc

Sample CPU run queues and calculate unclaimed idle CPU

usage: cpuunclaimed-bpfcc [-h] [-j] [-J] [-T] [interval] [count]

criticalstat-bpfcc

Trace long critical sections

usage: criticalstat-bpfcc [-h] [-p] [-i] [-d DURATION]

dbslower-bpfcc

positional arguments:

usage: dbslower-bpfcc [-h] [-v] [-p [PID ...]] [-x PATH] [-m THRESHOLD]
                      {mysql,postgres}

dbstat-bpfcc

positional arguments:

usage: dbstat-bpfcc [-h] [-v] [-p [PID ...]] [-m THRESHOLD] [-u] [-i INTERVAL]
                    {mysql,postgres}

dcsnoop-bpfcc

Trace directory entry cache (dcache) lookups

usage: dcsnoop-bpfcc [-h] [-a]

dcstat-bpfcc

[Failure]

deadlock-bpfcc

Detect potential deadlocks (lock inversions) in a running binary.

usage: deadlock-bpfcc [-h] [--binary BINARY] [--dump-graph DUMP_GRAPH]
                      [--verbose] [--lock-symbols LOCK_SYMBOLS]
                      [--unlock-symbols UNLOCK_SYMBOLS] [-t THREADS]
                      [-e EDGES] [-s STACKTRACES]
                      pid

dirtop-bpfcc

File reads and writes by process

usage: dirtop-bpfcc [-h] [-C] [-r MAXROWS]
                    [-s {all,reads,writes,rbytes,wbytes}] [-p PID] -d ROOTDIRS
                    [interval] [count]

drsnoop-bpfcc

Trace direct reclaim

usage: drsnoop-bpfcc [-h] [-T] [-U] [-p PID] [-t TID] [-u UID] [-d DURATION]
                     [-n NAME] [-v]

execsnoop-bpfcc

Trace exec() syscalls

usage: execsnoop-bpfcc [-h] [-T] [-t] [-x] [--cgroupmap CGROUPMAP]
                       [--mntnsmap MNTNSMAP] [-u USER] [-q] [-n NAME]
                       [-l LINE] [-U] [--max-args MAX_ARGS] [-P PPID]

exitsnoop-bpfcc

Trace all process termination (exit, fatal signal)

usage: exitsnoop-bpfcc [-h] [-t] [--utc] [-p PID] [--label LABEL] [-x]
                       [--per-thread]

ext4dist-bpfcc

Summarize ext4 operation latency

usage: ext4dist-bpfcc [-h] [-T] [-m] [-p PID] [interval] [count]

ext4slower-bpfcc

Trace common ext4 file operations slower than a threshold

usage: ext4slower-bpfcc [-h] [-j] [-p PID] [min_ms]

filegone-bpfcc

Trace why file gone (deleted or renamed)

usage: filegone-bpfcc [-h] [-p PID]

filelife-bpfcc

Trace lifecycle of file

usage: filelife-bpfcc [-h] [-p PID]

fileslower-bpfcc

Trace slow synchronous file reads and writes

usage: fileslower-bpfcc [-h] [-p PID] [-a] [min_ms]

filetop-bpfcc

File reads and writes by process

usage: filetop-bpfcc [-h] [-a] [-C] [-r MAXROWS]
                     [-s {all,reads,writes,rbytes,wbytes}] [-p PID]
                     [interval] [count]

funccount-bpfcc

Count functions, tracepoints, and USDT probes

usage: funccount-bpfcc [-h] [-p PID] [-i INTERVAL] [-d DURATION] [-T] [-r]
                       [-D] [-c CPU]
                       pattern

funcinterval-bpfcc

Time interval and print latency as a histogram

usage: funcinterval-bpfcc [-h] [-p PID] [-i INTERVAL] [-d DURATION] [-T] [-u]
                          [-m] [-v]
                          pattern

funclatency-bpfcc

Time functions and print latency as a histogram

usage: funclatency-bpfcc [-h] [-p PID] [-i INTERVAL] [-d DURATION] [-T] [-u]
                         [-m] [-F] [-r] [-l LEVEL] [-v]
                         pattern

funcslower-bpfcc

Trace slow kernel or user function calls.

usage: funcslower-bpfcc [-h] [-p PID] [-m MIN_MS] [-u MIN_US] [-a ARGUMENTS]
                        [-T] [-t] [-v] [-f] [-U] [-K]
                        function [function ...]

gethostlatency-bpfcc

Show latency for getaddrinfo/gethostbyname[2] calls

usage: gethostlatency-bpfcc [-h] [-p PID]

hardirqs-bpfcc

Summarize hard irq event time as histograms

usage: hardirqs-bpfcc [-h] [-T] [-N] [-C] [-d] [-c CPU] [interval] [outputs]

ject-bpfcc

Fail specified kernel functionality when call chain and predicates are met

usage: inject-bpfcc [-h] [-I header] [-P probability] [-v] [-c COUNT]
                    {kmalloc,bio,alloc_page} spec

javacalls-bpfcc

Summarize method calls in high-level languages.

usage: ucalls [-h] [-l {java,perl,php,python,ruby,tcl,none}] [-T TOP] [-L]
              [-S] [-v] [-m]
              pid [interval]

javaflow-bpfcc

Trace method execution flow in high-level languages.

usage: uflow [-h] [-l {java,perl,php,python,ruby,tcl}] [-M METHOD] [-C CLAZZ]
             [-v]
             pid

javagc-bpfcc

Summarize garbage collection events in high-level languages.

usage: ugc [-h] [-l {java,node,python,ruby}] [-v] [-m] [-M MINIMUM]
           [-F FILTER]
           pid

javaobjnew-bpfcc

Summarize object allocations in high-level languages.

usage: uobjnew [-h] [-l {c,java,ruby,tcl}] [-C TOP_COUNT] [-S TOP_SIZE] [-v]
               pid [interval]

javastat-bpfcc

Activity stats from high-level languages.

usage: ustat [-h] [-l {java,node,perl,php,python,ruby,tcl}] [-C]
             [-S {cload,excp,gc,method,objnew,thread}] [-r MAXROWS] [-d]
             [interval] [count]

javathreads-bpfcc

Trace thread creation/destruction events in high-level languages.

usage: uthreads [-h] [-l {c,java,none}] [-v] pid

killsnoop-bpfcc

Trace signals issued by the kill() syscall

usage: killsnoop-bpfcc [-h] [-x] [-p PID] [-T TPID] [-s SIGNAL]

klockstat-bpfcc

options:

usage: klockstat-bpfcc [-h] [-d DURATION | -i INTERVAL] [-n LOCKS] [-s STACKS]
                       [-c CALLER] [-S SORT] [-p PID] [-t TID]
                       [--stack-storage-size STACK_STORAGE_SIZE]

kvmexit-bpfcc

Display kvm_exit_reason and its statistics at a timed interval

usage: kvmexit-bpfcc [-h] [-p PID] [-t TID | -T TIDS | -v VCPU | -a]
                     [duration]

llcstat-bpfcc

Summarize cache references and misses by PID

usage: llcstat-bpfcc [-h] [-c SAMPLE_PERIOD] [-t] [duration]

mdflush-bpfcc

[Failure]

memleak-bpfcc

Trace outstanding memory allocations that weren't freed.

usage: memleak-bpfcc [-h] [-p PID] [-t] [-a] [-o OLDER] [-c COMMAND]
                     [--combined-only] [--wa-missing-free] [-s SAMPLE_RATE]
                     [-T TOP] [-z MIN_SIZE] [-Z MAX_SIZE] [-O OBJ] [--percpu]
                     [--sort SORT] [--symbols-prefix SYMBOLS_PREFIX]
                     [interval] [count]

mountsnoop-bpfcc

trace mount() and umount() syscalls

usage: mountsnoop-bpfcc [-h] [-P] [--cgroupmap CGROUPMAP]
                        [--mntnsmap MNTNSMAP]

mysqld_qslower-bpfcc

[Failure]

etqtop-bpfcc

options:

usage: netqtop-bpfcc [-h] [--name NAME] [--interval INTERVAL] [--throughput]

fsdist-bpfcc

Summarize NFS operation latency

usage: nfsdist-bpfcc [-h] [-T] [-m] [-p PID] [interval] [count]

fsslower-bpfcc

Trace READ, WRITE, OPEN, GETATTR and COMMIT NFS calls slower than a threshold,supports NFSv{3,4}

usage: nfsslower-bpfcc [-h] [-j] [-p PID] [min_ms]

odegc-bpfcc

Summarize garbage collection events in high-level languages.

usage: ugc [-h] [-l {java,node,python,ruby}] [-v] [-m] [-M MINIMUM]
           [-F FILTER]
           pid

odestat-bpfcc

Activity stats from high-level languages.

usage: ustat [-h] [-l {java,node,perl,php,python,ruby,tcl}] [-C]
             [-S {cload,excp,gc,method,objnew,thread}] [-r MAXROWS] [-d]
             [interval] [count]

offcputime-bpfcc

Summarize off-CPU time by stack trace

usage: offcputime-bpfcc [-h] [-p PID | -t TID | -u | -k] [-U | -K] [-d] [-f]
                        [-s] [--stack-storage-size STACK_STORAGE_SIZE]
                        [-m MIN_BLOCK_TIME] [-M MAX_BLOCK_TIME]
                        [--state STATE]
                        [duration]

offwaketime-bpfcc

Summarize blocked time by kernel stack trace + waker stack

usage: offwaketime-bpfcc [-h] [-p PIDS | -t TIDS | -u | -k] [-U | -K] [-d]
                         [-f] [--stack-storage-size STACK_STORAGE_SIZE]
                         [-m MIN_BLOCK_TIME] [-M MAX_BLOCK_TIME]
                         [--state STATE]
                         [duration]

oomkill-bpfcc

[Failure]

opensnoop-bpfcc

Trace open() syscalls

usage: opensnoop-bpfcc [-h] [-T] [-U] [-x] [-p PID] [-t TID]
                       [--cgroupmap CGROUPMAP] [--mntnsmap MNTNSMAP] [-u UID]
                       [-d DURATION] [-n NAME] [-e] [-f FLAG_FILTER] [-F]
                       [-b BUFFER_PAGES]

perlcalls-bpfcc

Summarize method calls in high-level languages.

usage: ucalls [-h] [-l {java,perl,php,python,ruby,tcl,none}] [-T TOP] [-L]
              [-S] [-v] [-m]
              pid [interval]

perlflow-bpfcc

Trace method execution flow in high-level languages.

usage: uflow [-h] [-l {java,perl,php,python,ruby,tcl}] [-M METHOD] [-C CLAZZ]
             [-v]
             pid

perlstat-bpfcc

Activity stats from high-level languages.

usage: ustat [-h] [-l {java,node,perl,php,python,ruby,tcl}] [-C]
             [-S {cload,excp,gc,method,objnew,thread}] [-r MAXROWS] [-d]
             [interval] [count]

phpcalls-bpfcc

Summarize method calls in high-level languages.

usage: ucalls [-h] [-l {java,perl,php,python,ruby,tcl,none}] [-T TOP] [-L]
              [-S] [-v] [-m]
              pid [interval]

phpflow-bpfcc

Trace method execution flow in high-level languages.

usage: uflow [-h] [-l {java,perl,php,python,ruby,tcl}] [-M METHOD] [-C CLAZZ]
             [-v]
             pid

phpstat-bpfcc

Activity stats from high-level languages.

usage: ustat [-h] [-l {java,node,perl,php,python,ruby,tcl}] [-C]
             [-S {cload,excp,gc,method,objnew,thread}] [-r MAXROWS] [-d]
             [interval] [count]

pidpersec-bpfcc

[Failure]

ppchcalls-bpfcc

Summarize ppc hcall counts and latencies.

usage: ppchcalls-bpfcc [-h] [-p PID] [-t TID] [-i INTERVAL] [-d DURATION]
                       [-T TOP] [-x] [-e ERRNO] [-L] [-m] [-P] [-l]
                       [--hcall HCALL]

profile-bpfcc

Profile CPU stack traces at a timed interval

usage: profile-bpfcc [-h] [-p PID | -L TID] [-U | -K]
                     [-F FREQUENCY | -c COUNT] [-d] [-a] [-I] [-f]
                     [--hash-storage-size HASH_STORAGE_SIZE]
                     [--stack-storage-size STACK_STORAGE_SIZE] [-C CPU]
                     [--cgroupmap CGROUPMAP] [--mntnsmap MNTNSMAP]
                     [duration]

pythoncalls-bpfcc

Summarize method calls in high-level languages.

usage: ucalls [-h] [-l {java,perl,php,python,ruby,tcl,none}] [-T TOP] [-L]
              [-S] [-v] [-m]
              pid [interval]

pythonflow-bpfcc

Trace method execution flow in high-level languages.

usage: uflow [-h] [-l {java,perl,php,python,ruby,tcl}] [-M METHOD] [-C CLAZZ]
             [-v]
             pid

pythongc-bpfcc

Summarize garbage collection events in high-level languages.

usage: ugc [-h] [-l {java,node,python,ruby}] [-v] [-m] [-M MINIMUM]
           [-F FILTER]
           pid

pythonstat-bpfcc

Activity stats from high-level languages.

usage: ustat [-h] [-l {java,node,perl,php,python,ruby,tcl}] [-C]
             [-S {cload,excp,gc,method,objnew,thread}] [-r MAXROWS] [-d]
             [interval] [count]

dmaucma-bpfcc

Trace RDMA Userspace Connection Manager Access Event

usage: rdmaucma-bpfcc [-h] [-D]

eadahead-bpfcc

Monitor performance of read ahead cache

usage: readahead-bpfcc [-h] [-d DURATION]

eset-trace-bpfcc

[Failure]

ycalls-bpfcc

Summarize method calls in high-level languages.

usage: ucalls [-h] [-l {java,perl,php,python,ruby,tcl,none}] [-T TOP] [-L]
              [-S] [-v] [-m]
              pid [interval]

yflow-bpfcc

Trace method execution flow in high-level languages.

usage: uflow [-h] [-l {java,perl,php,python,ruby,tcl}] [-M METHOD] [-C CLAZZ]
             [-v]
             pid

ygc-bpfcc

Summarize garbage collection events in high-level languages.

usage: ugc [-h] [-l {java,node,python,ruby}] [-v] [-m] [-M MINIMUM]
           [-F FILTER]
           pid

yobjnew-bpfcc

Summarize object allocations in high-level languages.

usage: uobjnew [-h] [-l {c,java,ruby,tcl}] [-C TOP_COUNT] [-S TOP_SIZE] [-v]
               pid [interval]

ystat-bpfcc

Activity stats from high-level languages.

usage: ustat [-h] [-l {java,node,perl,php,python,ruby,tcl}] [-C]
             [-S {cload,excp,gc,method,objnew,thread}] [-r MAXROWS] [-d]
             [interval] [count]

qlat-bpfcc

Summarize run queue (scheduler) latency as a histogram

usage: runqlat-bpfcc [-h] [-T] [-m] [-P] [--pidnss] [-L] [-p PID]
                     [interval] [count]

qlen-bpfcc

Summarize scheduler run queue length as a histogram

usage: runqlen-bpfcc [-h] [-T] [-O] [-C] [interval] [count]

qslower-bpfcc

Trace high run queue latency

usage: runqslower-bpfcc [-h] [-P] [-p PID | -t TID] [min_us]

hmsnoop-bpfcc

Trace shm*() syscalls

usage: shmsnoop-bpfcc [-h] [-T] [-p PID] [-t TID] [-d DURATION] [-n NAME]

labratetop-bpfcc

Kernel SLAB/SLUB memory cache allocation rate top

usage: slabratetop-bpfcc [-h] [-C] [-r MAXROWS] [interval] [count]

ofdsnoop-bpfcc

Trace file descriptors passed via socket

usage: sofdsnoop-bpfcc [-h] [-T] [-p PID] [-t TID] [-n NAME] [-d DURATION]

oftirqs-bpfcc

Summarize soft irq event time as histograms.

usage: softirqs-bpfcc [-h] [-T] [-N] [-C] [-d] [-c CPU] [interval] [count]

olisten-bpfcc

Stream sockets listen

usage: solisten-bpfcc [-h] [--show-netns] [-p PID] [-n NETNS]

lsniff-bpfcc

Sniff SSL data

usage: sslsniff-bpfcc [-h] [-p PID] [-u UID] [-x] [-c COMM] [-o] [-g] [-n]
                      [-d] [--hexdump] [--max-buffer-size MAX_BUFFER_SIZE]
                      [-l] [--handshake] [--extra-lib EXTRA_LIB]

tackcount-bpfcc

Count events and their stack traces

usage: stackcount-bpfcc [-h] [-p PID] [-c CPU] [-i INTERVAL] [-D DURATION]
                        [-T] [-r] [-s] [-P] [-K] [-U] [-v] [-d] [-f] [--debug]
                        pattern

tatsnoop-bpfcc

Trace stat() syscalls

usage: statsnoop-bpfcc [-h] [-t] [-x] [-p PID]

yncsnoop-bpfcc

[Failure]

yscount-bpfcc

Summarize syscall counts and latencies.

usage: syscount-bpfcc [-h] [-p PID] [-t TID] [-c PPID] [-i INTERVAL]
                      [-d DURATION] [-T TOP] [-x] [-e ERRNO] [-L] [-m] [-P]
                      [-l] [--syscall SYSCALL]

tclcalls-bpfcc

Summarize method calls in high-level languages.

usage: ucalls [-h] [-l {java,perl,php,python,ruby,tcl,none}] [-T TOP] [-L]
              [-S] [-v] [-m]
              pid [interval]

tclflow-bpfcc

Trace method execution flow in high-level languages.

usage: uflow [-h] [-l {java,perl,php,python,ruby,tcl}] [-M METHOD] [-C CLAZZ]
             [-v]
             pid

tclobjnew-bpfcc

Summarize object allocations in high-level languages.

usage: uobjnew [-h] [-l {c,java,ruby,tcl}] [-C TOP_COUNT] [-S TOP_SIZE] [-v]
               pid [interval]

tclstat-bpfcc

Activity stats from high-level languages.

usage: ustat [-h] [-l {java,node,perl,php,python,ruby,tcl}] [-C]
             [-S {cload,excp,gc,method,objnew,thread}] [-r MAXROWS] [-d]
             [interval] [count]

tcpaccept-bpfcc

Trace TCP accepts

usage: tcpaccept-bpfcc [-h] [-T] [-t] [-p PID] [-P PORT] [-4 | -6]
                       [--cgroupmap CGROUPMAP] [--mntnsmap MNTNSMAP]

tcpcong-bpfcc

Summarize tcp socket congestion control status duration

usage: tcpcong-bpfcc [-h] [-L LOCALPORT] [-R REMOTEPORT] [-T] [-d] [-u]
                     [interval] [outputs]

tcpconnect-bpfcc

Trace TCP connects

usage: tcpconnect-bpfcc [-h] [-t] [-p PID] [-P PORT] [-4 | -6] [-L] [-U]
                        [-u UID] [-c] [--cgroupmap CGROUPMAP]
                        [--mntnsmap MNTNSMAP] [-d]

tcpconnlat-bpfcc

Trace TCP connects and show connection latency

usage: tcpconnlat-bpfcc [-h] [-t] [-p PID] [-L] [-4 | -6] [-v] [duration_ms]

tcpdrop-bpfcc

Trace TCP drops by the kernel

usage: tcpdrop-bpfcc [-h] [-4 | -6]

tcplife-bpfcc

Trace the lifespan of TCP sessions and summarize

usage: tcplife-bpfcc [-h] [-T] [-t] [-w] [-s] [-p PID] [-L LOCALPORT]
                     [-D REMOTEPORT] [-4 | -6]

tcpretrans-bpfcc

Trace TCP retransmits

usage: tcpretrans-bpfcc [-h] [-s] [-l] [-c] [-4 | -6]

tcprtt-bpfcc

Summarize TCP RTT as a histogram

usage: tcprtt-bpfcc [-h] [-i INTERVAL] [-d DURATION] [-T] [-m] [-p LPORT]
                    [-P RPORT] [-a LADDR] [-A RADDR] [-b] [-B] [-e] [-D]
                    [-4 | -6]

tcpstates-bpfcc

Trace TCP session state changes and durations

usage: tcpstates-bpfcc [-h] [-T] [-t] [-w] [-s] [-L LOCALPORT] [-D REMOTEPORT]
                       [-Y] [-4 | -6]

tcpsubnet-bpfcc

Summarize TCP send and aggregate by subnet

usage: tcpsubnet-bpfcc [-h] [-v] [-J] [-f {b,k,m,B,K,M}] [-i INTERVAL]
                       [subnets]

tcpsynbl-bpfcc

Show TCP SYN backlog.

usage: tcpsynbl-bpfcc [-h] [-4 | -6]

tcptop-bpfcc

Summarize TCP send/recv throughput by host

usage: tcptop-bpfcc [-h] [-C] [-S] [-p PID] [--cgroupmap CGROUPMAP]
                    [--mntnsmap MNTNSMAP] [-4 | -6]
                    [interval] [count]

tcptracer-bpfcc

Trace TCP connections

usage: tcptracer-bpfcc [-h] [-t] [-p PID] [-N NETNS] [--cgroupmap CGROUPMAP]
                       [--mntnsmap MNTNSMAP] [-4 | -6] [-v]

threadsnoop-bpfcc

[Failure]

tplist-bpfcc

Display kernel tracepoints or USDT probes and their formats.

usage: tplist-bpfcc [-h] [-p PID] [-l LIB] [-v] [filter]

trace-bpfcc

Attach to functions and print trace messages.

usage: trace-bpfcc [-h] [-b BUFFER_PAGES] [-p PID] [-L TID] [--uid UID] [-v]
                   [-Z STRING_SIZE] [-S] [-M MAX_EVENTS] [-t] [-u] [-T] [-C]
                   [-c CGROUP_PATH] [-n NAME] [-f MSG_FILTER] [-B]
                   [-s SYM_FILE_LIST] [-K] [-U] [-a] [-I header] [-A]
                   probe [probe ...]

ttysnoop-bpfcc

Snoop output from a pts or tty device, eg, a shell

usage: ttysnoop-bpfcc [-h] [-C] [-s DATASIZE] [-c DATACOUNT] device

calls

Summarize method calls in high-level languages.

usage: ucalls [-h] [-l {java,perl,php,python,ruby,tcl,none}] [-T TOP] [-L]
              [-S] [-v] [-m]
              pid [interval]

flow

Trace method execution flow in high-level languages.

usage: uflow [-h] [-l {java,perl,php,python,ruby,tcl}] [-M METHOD] [-C CLAZZ]
             [-v]
             pid

gc

Summarize garbage collection events in high-level languages.

usage: ugc [-h] [-l {java,node,python,ruby}] [-v] [-m] [-M MINIMUM]
           [-F FILTER]
           pid

objnew

Summarize object allocations in high-level languages.

usage: uobjnew [-h] [-l {c,java,ruby,tcl}] [-C TOP_COUNT] [-S TOP_SIZE] [-v]
               pid [interval]

tat

Activity stats from high-level languages.

usage: ustat [-h] [-l {java,node,perl,php,python,ruby,tcl}] [-C]
             [-S {cload,excp,gc,method,objnew,thread}] [-r MAXROWS] [-d]
             [interval] [count]

threads

Trace thread creation/destruction events in high-level languages.

usage: uthreads [-h] [-l {c,java,none}] [-v] pid

vfscount-bpfcc

[Failure]

vfsstat-bpfcc

Count some VFS calls.

usage: vfsstat-bpfcc [-h] [-p PID] [interval] [count]

virtiostat-bpfcc

Show virtio devices input/output statistics

usage: virtiostat-bpfcc [-h] [-T] [-d DRIVER] [-n DEVNAME] [-D]
                        [interval] [count]

wakeuptime-bpfcc

Summarize sleep to wakeup time by waker kernel stack

usage: wakeuptime-bpfcc [-h] [-u] [-p PID] [-v] [-f]
                        [--stack-storage-size STACK_STORAGE_SIZE]
                        [-m MIN_BLOCK_TIME] [-M MAX_BLOCK_TIME]
                        [duration]

xfsdist-bpfcc

Summarize XFS operation latency

usage: xfsdist-bpfcc [-h] [-T] [-m] [-p PID] [interval] [count]

xfsslower-bpfcc

Trace common XFS file operations slower than a threshold

usage: xfsslower-bpfcc [-h] [-j] [-p PID] [min_ms]

zfsdist-bpfcc

Summarize ZFS operation latency

usage: zfsdist-bpfcc [-h] [-T] [-m] [-p PID] [interval] [count]

zfsslower-bpfcc

Trace common ZFS file operations slower than a threshold

usage: zfsslower-bpfcc [-h] [-j] [-p PID] [min_ms]

おわりに

Ubuntu Linux 24.04 LTSでBPF Compiler Collection(BCC)のツールが入れられるようになっていたので、どういう状態なのか
少し確認してみました。

よいですね。ちょっと興味があったので、これから少しずつ使ってみたいと思います。