コンテンツにスキップ

bpftop - ライブ eBPF プログラムモニター チートシート

bpftop - ライブ eBPF プログラムモニター チートシート

bpftop (Netflix) はターミナル UI で ホスト上で実行中のすべての eBPF プログラムの リアルタイムビュー を提供。各プログラム向けに平均実行時刻、秒あたりイベント、推定 CPU 利用率を表示、ライブ更新 — どの eBPF プログラム実行され、どのくらい頻繁に発火、どのくらいのオーバーヘッド追加か見可能。eBPF が可観測性、ネットワーキング、セキュリティツーリング全体に広がるため、bpftop は「何の eBPF が実行されてコストはいくら?」に答え。

要件

  • eBPF 実行時統計サポートでの Linux カーネル
  • ルート特権 (カーネル BPF 統計を読む)
  • bpftop は実行中に kernel.bpf_stats_enabled を有効化 (終了時に復元)

インストール

方法コマンド
インストールスクリプト`curl -sSfL https://raw.githubusercontent.com/Netflix/bpftop/main/install.sh
Cargocargo install bpftop
バイナリGitHub Releases ページからダウンロード
確認bpftop --version

実行

コマンド説明
sudo bpftopライブ TUI を起動
bpftop --helpオプション表示
bpftop --versionバージョン

bpftop はカーネル BPF 統計を読み bpf_stats_enabled をトグルするため root として実行必須。

ディスプレイ

カラム意味
IDBPF プログラム ID
Nameプログラム名
Typeプログラムタイプ (kprobe, tracepoint, XDP, cgroup, …)
Period Avg Runtime (ns)最後の期間で実行あたり平均時刻
Total Avg Runtime (ns)統計が有効化されたおり平均
Events/sec呼び出しレート
Est. CPU %このプログラムの推定 CPU 利用率

インタラクティブキー

キーアクション
/ 選択を移動
Enter選択プログラムの詳細グラフを開く
ソート実行時刻 / イベント / CPU (カラム) 順
q終了 (前の bpf_stats_enabled 状態復元)

注視対象

観察解釈
1 つのプログラム上で高い Est. CPU %eBPF プログラムが実オーバーヘッド追加
高い events/secホット フックが非常に頻繁に発火
上昇平均実行時刻プログラムが時刻を超えてより高額に
予期しないプログラム不知の eBPF インストール

なぜそれが重要か

eBPF は Cilium/Tetragon, Falco, Tracee, Pixie、多くのプロファイラーを下支え。各はカーネルにプログラムをロード。bpftop は単一場所であり、集約フットプリント見て、不正動作またはオーバーヘッドプログラムをホスト品質低下前にキャッチ。

一般的なワークフロー

# ライブで何の eBPF か実行されコストは何か見る
sudo bpftop

# 新規デプロイ eBPF セキュリティエージェントのオーバーヘッド検証
sudo bpftop   # 負荷下のエージェントプログラムの Est. CPU % を監視

# トレーシングツールが原因の神秘的 CPU リグレッション調査
sudo bpftop   # Est. CPU % でソート、トップ プログラムにドリル

bpftop vs 関連ツール

アスペクトbpftopbpftoolbtop / htop
フォーカスライブ eBPF プログラムごとメトリックBPF オブジェクト検査/管理全システムプロセス
リアルタイム コストあり (実行時刻、イベント、CPU)静的リストプロセス CPU/mem
UIグラフ付き TUICLITUI
最適な用途eBPF オーバーヘッド監視BPF プログラム/マップ管理一般監視

リソース