SystemTap(しすてむたっぷ)
最終更新:2026/4/27
SystemTapは、実行中のLinuxカーネルやユーザー空間アプリケーションを動的に調査するためのスクリプト言語およびツールである。
ポイント
SystemTapは、カーネルの内部動作を非侵襲的に分析し、パフォーマンスボトルネックの特定やデバッグに役立つ。特別なコンパイルや再起動を必要としない。
SystemTapとは
SystemTapは、Linuxシステムにおける動的トレースツールであり、カーネルやユーザー空間アプリケーションの動作をリアルタイムで調査・分析することを可能にします。従来のデバッガとは異なり、SystemTapは実行中のシステムに影響を与えることなく、詳細な情報を収集できます。
歴史
SystemTapは、Red HatのエンジニアであるFrank E. Tietzeによって開発が開始され、2005年に初めて公開されました。当初はRed Hat Enterprise Linuxに特化したツールでしたが、その後、他のLinuxディストリビューションでも利用できるようになりました。
仕組み
SystemTapは、SystemTapスクリプトと呼ばれる特殊なスクリプト言語を使用して、調査対象のイベントやデータを指定します。スクリプトは、カーネルのkprobesやユーザー空間アプリケーションのuprobesと呼ばれるメカニズムを使用して、特定の場所に挿入されます。これらのプローブは、指定されたイベントが発生するたびに実行され、収集されたデータはSystemTapによって分析されます。
用途
SystemTapは、以下のような用途に利用できます。
- パフォーマンス分析: CPU使用率、メモリ使用量、ディスクI/Oなどのパフォーマンス指標を監視し、ボトルネックを特定します。
- デバッグ: カーネルやアプリケーションのバグを特定し、修正します。
- システム監視: システムの動作を監視し、異常な動作を検出します。
- セキュリティ監査: システムのセキュリティ脆弱性を特定し、対策を講じます。
SystemTapスクリプトの例
以下は、SystemTapスクリプトの簡単な例です。
probe begin {
printf("Hello, SystemTap!");
}
このスクリプトは、SystemTapの実行開始時に「Hello, SystemTap!」というメッセージを出力します。
関連ツール
SystemTapと関連するツールとしては、以下のようなものがあります。
- perf: Linuxカーネルに組み込まれたパフォーマンス分析ツール。
- strace: システムコールをトレースするツール。
- ltrace: ライブラリコールをトレースするツール。