第24章 SystemTap
SystemTap は、Linux システム上で実行中のプロセスおよびカーネルアクティビティーを調査するための有用なインストルメンテーションプラットフォームです。プローブを実行するには、以下の手順に従います。
- どのシステムイベント (たとえば、仮想ファイルシステムの読み込み、パケット送信) が特定のアクション (たとえば、印刷、解析、またはデータ操作) をトリガーするかを指定する SystemTap スクリプト を書き込みます。
- SystemTap がスクリプトを C プログラムに変換し、さらにカーネルモジュールにコンパイルします。
- SystemTap がこのカーネルモジュールを読み込み、実際のプローブを実行します。
SystemTap スクリプトは、通常のシステム運用への割り込みを最小限に抑えてシステム運用を監視し、システムの問題を診断する際に役立ちます。インストルメント化されたコードを再コンパイルしたり再インストールすることなく、実行中のシステムテストの仮説をすばやくインストルメント化できます。kernel-space をプローブする SystemTap スクリプトをコンパイルするために、SystemTap は 3 つの異なる カーネル情報パッケージからの情報を使用します。
- kernel-variant-devel-version
- kernel-variant-debuginfo-version
- kernel-debuginfo-common-arch-version
これらのカーネル情報パッケージは、プローブ対象のカーネルと一致する必要があります。さらに、複数のカーネル用に SystemTap スクリプトをコンパイルするには、各カーネルのカーネル情報パッケージがインストールされている必要もあります。