Show Table of Contents
第3章 SystemTap の作動方法
SystemTap を使うとユーザーはシンプルなスクリプトを作成、再使用して実行中の Linux システムのアクティビティーを深く調べることができます。このスクリプトは、データを抽出し、フィルターをかけ、素早く安全にデータをまとめるように設計できます。これにより、複雑なパフォーマンス (または機能的な) 問題の診断が可能になります。
SystemTap スクリプトにおける本質的な考えは、イベント に名前を付け、それに ハンドラーを与えることです。SystemTap がスクリプトを実行すると、SystemTap はイベントを監視します。イベントが発生したら、Linux カーネルがハンドラーをサブルーチンとして実行し、その後に通常の動作を再開します。
イベントには関数の開始や終了、タイマーの有効期限切れ、セッション終了など数種類のものがあります。ハンドラーは一連のスクリプト言語のステートメントで、イベント発生時に実行する作業を指定します。この作業には通常、イベントコンテキストからのデータ抽出、それらの内部変数への保存、結果のプリントなどが含まれます。
3.1. アーキテクチャー
SystemTap のセッションは、SystemTap スクリプトを実行すると始まります。このセッションは、以下の順番で生じます。
手順3.1 SystemTap セッション
- まず、SystemTap が既存の tapset ライブラリー (通常は
/usr/share/systemtap/tapset/ディレクトリー内) の使用された tapsets に対してスクリプトをチェックします。次に SystemTap は見つかった tapset を tapset ライブラリー内の対応する定義で置き換えます。 - SystemTap はスクリプトを C に変換し、システム C コンパイラーを実行してそこからカーネルモジュールを作成します。このステップを実行するツールは、systemtap パッケージに含まれています (詳細は 「SystemTap のインストール」 を参照してください)。
- SystemTap はモジュールを読み込み、スクリプト内の全プローブ (イベントおよびハンドラー) を有効にします。systemtap-runtime パッケージ内の
staprunがこの機能を提供します (詳細は 「SystemTap のインストール」 を参照してください)。 - イベントが発生すると、それに対応するハンドラーが実行されます。
- SystemTap セッションが終了すると、プローブは無効になり、カーネルモジュールは読み込み解除されます。
This sequence is driven from a single command-line program:
stap. This program is SystemTap's main front-end tool. For more information about stap, see the stap(1) manual page (once SystemTap is properly installed on your machine).

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.