ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
DTrace ユーザーガイド Oracle Solaris 10 8/11 Information Library (日本語) |
DTrace の機能は、次のコンポーネントで構成されています。
dtrace のようなユーザーレベルのコンシューマプログラム
トレースデータを収集するためのプローブを提供する、カーネルモジュールとしてパッケージ化されたプロバイダ
コンシューマプログラムが dtrace(7D) カーネルドライバを使って DTrace 機能にアクセスするときに使用するライブラリインタフェース
プロバイダは、システムを計測する方法を示すものです。プロバイダは、DTrace フレームワークでプローブを使用できるようにします。DTrace はプロバイダに、プローブをいつ有効にするかという情報を送信します。プローブが有効にされて起動すると、プロバイダから DTrace に制御が移ります。
プロバイダは、カーネルモジュールのセットとしてパッケージ化されています。各モジュールは、特定の種類の計測機能を実行することにより、プローブを生成します。各プロバイダは、DTrace の使用時に、DTrace フレームワークに提供可能なプローブを発行できます。いずれかのプローブを発行したら、トレースアクションを有効にして、プローブに結合できます。
一部のプロバイダは、ユーザーからのトレース要求に基づいて、プローブを新規作成できます。
プローブには、次の属性があります。
「プロバイダ」によって提供される
計測対象の「モジュール」と「関数」を識別する
「名前」がある
この 4 つの属性のセットが、各プローブを一意に識別するプローブ指定子となります。次の形式で指定します。provider: module: function: name。各プローブには、一意の整数値 ID も割り当てられています。
述語とは、スラッシュ (/ /) で囲まれた式です。プローブの起動時に述語の評価が行われ、関連アクションを実行するべきかどうかが決定されます。述語は、D プログラムでより複雑な制御フローを構築するために使用する主要な条件構文です。すべてのプローブで、プローブ節の述語部分は省略可能です。述語部分を省略した場合、そのプローブの起動のたびに指定のアクションが実行されます。
述語式では、前述した任意の D 演算子を使用できます。述語式は、変数、定数などの D データオブジェクトを参照します。述語式の評価結果は、整数型またはポインタ型の値にする必要があります。すべての D 式と同じく、ゼロ値は偽、ゼロ以外の値は真と解釈されます。
アクションは、カーネル内で DTrace 仮想マシンが実行する文であり、ユーザーによるプログラムが可能です。アクションには、次のような性質があります。
アクションはプローブの起動時に実行される
アクションは D スクリプト言語で完全にプログラムできる
ほとんどのアクションは、特定のシステム状態を記録する
アクションを使って、システムの状態を記述内容どおりに変更することができる。このようなアクションは、「破壊アクション」と呼ばれている。デフォルトでは、破壊アクションは許可されない。
多くのアクションは、D スクリプト言語で記述された式を使用する
単純な関数の場合、コマンド行から直接 dtrace コマンドを使用して、DTrace フレームワークを呼び出すことができます。DTrace を使ってより複雑な関数を実行する場合は、D スクリプト言語でスクリプトを作成します。DTrace で使用する特定のスクリプトをロードする場合は、-s オプションを使用します。D スクリプト言語の使用方法については、第 3 章D 言語を使ったスクリプトの作成を参照してください。