bpftop - ライブ eBPF プログラムモニター チートシート
bpftop (Netflix) はターミナル UI で ホスト上で実行中のすべての eBPF プログラムの リアルタイムビュー を提供。各プログラム向けに平均実行時刻、秒あたりイベント、推定 CPU 利用率を表示、ライブ更新 — どの eBPF プログラム実行され、どのくらい頻繁に発火、どのくらいのオーバーヘッド追加か見可能。eBPF が可観測性、ネットワーキング、セキュリティツーリング全体に広がるため、bpftop は「何の eBPF が実行されてコストはいくら?」に答え。
要件
- eBPF 実行時統計サポートでの Linux カーネル
- ルート特権 (カーネル BPF 統計を読む)
- bpftop は実行中に
kernel.bpf_stats_enabled を有効化 (終了時に復元)
インストール
実行
| コマンド | 説明 |
|---|
sudo bpftop | ライブ TUI を起動 |
bpftop --help | オプション表示 |
bpftop --version | バージョン |
bpftop はカーネル BPF 統計を読み bpf_stats_enabled をトグルするため root として実行必須。
ディスプレイ
| カラム | 意味 |
|---|
| ID | BPF プログラム 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 関連ツール
| アスペクト | bpftop | bpftool | btop / htop |
|---|
| フォーカス | ライブ eBPF プログラムごとメトリック | BPF オブジェクト検査/管理 | 全システムプロセス |
| リアルタイム コスト | あり (実行時刻、イベント、CPU) | 静的リスト | プロセス CPU/mem |
| UI | グラフ付き TUI | CLI | TUI |
| 最適な用途 | eBPF オーバーヘッド監視 | BPF プログラム/マップ管理 | 一般監視 |
リソース