これは、なにをしたくて書いたもの?
以前、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や、PythonとLuaをフロントエンドにしたBPFプログラムの作成が容易になるそうで、
単体で使えるツールも含まれています。
用途はパフォーマンス分析やネットワークトラフィック制御ですね。
コンテンツとしては以下になります。
BPF Compiler Collection (BCC) / Contents
そのうちのツールの外観です。
パスがtools
で始まるものがツールなのですが、その説明を見ているといろんなことができるようでおもしろそうです。
ツールはPythonで実装されているようで、例もついています。
たとえば、MySQL/PostgreSQLのしきい値より遅いクエリーをトレースする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
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)のツールが入れられるようになっていたので、どういう状態なのか
少し確認してみました。
よいですね。ちょっと興味があったので、これから少しずつ使ってみたいと思います。