- 0x.toolsは、Linuxでアプリケーション性能を分析するためのオープンソースユーティリティ群
- 配布の容易さと最小限の依存関係を目標とし、システム問題の解決に伴う摩擦を低減
- OSのアップグレード、カーネルモジュールのインストール、重い監視フレームワーク、Javaエージェント、またはデータベースの導入は不要
- 個々のスレッドレベルの活動を測定でき、コード実行、スリープ状態、システムコール、カーネル待機位置などを追跡・サンプリング可能
xcapture-bpf & xtop 2.0.2 ベータ公開
- xcapture-bpfとxtopはLinuxの
topツールに似ているが、eBPFを使って性能データをさまざまな角度から確認できる
- システムレベルの概要から個別スレッドの活動、カーネルイベントまでドリルダウン可能
- eBPFは完全にプログラム可能であり、これを最大限活用していく計画
xcapture-bpf ターミナルハイライトとスタックタイル
- ターミナルのテキスト検索・ハイライトおよびスクロール機能が、新しいスタックタイル形式とうまく連携
- スタックタイルには関数名だけでなく、ファイル名やメモリ割り当ての理由など、さまざまな情報を含められる
xcapture-bpf のインストール
- xcapture-bpfはまだベータ版のため、本番システムでは実行しないこと
- eBPFを使用し、現時点ではBCCとpython3をフロントエンドとして参照・利用
- RHEL 8.1またはUbuntu 24.04以降でテスト済み
同梱ツール
- リアルタイムのインタラクティブツールと低頻度プロファイリングツールを提供
- 主なツールの説明:
psn: 現在の上位スレッド活動をサンプリング
xcapture: 低オーバーヘッドのスレッド状態サンプラー
xcapture-bpf: eBPFを使った低オーバーヘッドのプログラマブルなスレッド状態サンプラー
syscallargs: システムコールと引数の一覧
schedlat: 単一プロセスのCPUスケジューリング遅延時間を表示
run_xcapture.sh: xcaptureを継続実行するシンプルなデーモンスクリプト
run_xcpu.sh: CPU上のスレッドを低頻度で連続スタックサンプリング
使い方と出力例
xcaptureを使ってLinuxスレッド活動をサンプリングし、固定幅出力を表示
- CSVファイルに出力し、コマンドラインで性能分析が可能
インストールと使い方
xcapture、schedlat、psnは標準的なLinuxツールのように/procファイルシステムをサンプリング
- 追加設定なしでLinuxカーネルバージョン2.6以降で動作
FAQ
- 0x.toolsはGPL v3ライセンスのオープンソース製品
- 測定オーバーヘッドはサーバーCPU容量の1%未満
- 本番環境で安全に使用可能
- PerfやeBPFの代わりに
/procサンプリングを使う理由: 既存企業では大規模本番向けにeBPFを使えないため
GN⁺の意見
- 0x.toolsはLinuxシステム性能分析のための強力なツール群
- eBPFを使って性能データを多角的に確認できる点が有用
- 本番環境で安全に使えるよう設計されている
- 他の性能分析ツールと比べて、低オーバーヘッドと簡単な導入が利点
- eBPFのような最新技術を活用し、性能分析の正確性と柔軟性を高める
まだコメントはありません。