10 オプションおよびチューニング可能パラメータ
DTraceでは、カスタマイズに十分対応できるように、コンシューマに高いレベルの柔軟性が与えられています。特別なチューニングの必要性も最小限になるように、DTraceは適切なデフォルト値と柔軟なデフォルト・ポリシーで実装されていますが、コンシューマごとにDTraceの動作をチューニングする必要がある状況が発生する場合があります。この章では、DTraceのオプションとチューニング可能パラメータ、およびこれらを変更するためのインタフェースについて説明します。
コンシューマ・オプション
DTraceのチューニングは、オプションの設定や有効化で行います。次の表で、DTraceのチューニングに使用可能なオプションについて説明します。オプションによっては、対応するdtraceコマンドライン・オプションも用意されています。
表10-1 DTraceのコンシューマ・オプション
オプション名 | タイプ | 値 | 説明 |
---|---|---|---|
|
コンパイル時 |
CPU当たりの集積。 「集積体」を参照してください。 |
|
|
動的ランタイム |
time |
集積体の読取りレート。 「集積体」を参照してください。 |
|
ランタイム |
size |
集積体バッファ・サイズ/ 「集積体」を参照してください。 |
|
動的ランタイム |
|
集積体をキーでソートします。 「集積体」を参照してください。 |
|
動的ランタイム |
scalar |
ソートする集積体キーの数です。 「集積体」を参照してください。 |
|
動的ランタイム |
scalar |
ソートする集積体変数の数 「集積体」を参照してください。 |
|
動的ランタイム |
|
集積体を逆順でソートします。 「集積体」を参照してください。 |
|
コンパイル時 |
string |
安定性属性最小値です。 「安定性の強制」を参照してください。 |
|
コンパイル時 |
すべてのマクロ引数を使用する必要はありません。 |
|
|
ランタイム |
|
バッファ・ポリシー。 「バッファおよびバッファリング」を参照してください。 |
|
ランタイム |
|
バッファ・サイズの変更ポリシー。 「バッファおよびバッファリング」を参照してください。 |
|
ランタイム |
size |
主バッファのサイズ(dtrace -bと同等)。 「バッファおよびバッファリング」を参照してください。 |
|
ランタイム |
time |
クリーニング・レート。 「投機トレース」を参照してください。 |
|
コンパイル時 |
dtraceによるコア・ダンプを有効化します。 |
|
|
コンパイル時 |
cppは入力ファイルの前処理に使用します。 |
|
|
コンパイル時 |
-Hオプションをcppに指定して、使用される各ヘッダー・ファイルの名前を出力します。 |
|
|
コンパイル時 |
string |
cppのパス名を指定します。 |
|
ランタイム |
scalar |
トレースを有効にするCPUです。 「バッファおよびバッファリング」を参照してください。 |
|
コンパイル時 |
string |
Dコンパイル実行の最後にプログラムで使用されるすべてのC型の圧縮型フォーマット(CTF)定義を書き出します。 |
|
コンパイル時 |
DTraceデバッグ・モードを有効にします(環境変数 |
|
|
コンパイル時 |
未指定のマクロ引数に対する参照を許可します。未指定の引数の値として 「スクリプト」を参照してください。 |
|
|
コンパイル時 |
string |
マクロ名およびオプション値をname[=value]の形式で定義します(dtrace -Dと同等)。 |
|
ランタイム |
破壊アクションを許可します(dtrace -wと同等)。 「アクションおよびサブルーチン」を参照してください。 |
|
|
コンパイル時 |
ドロップ・タグの使用を指定します。 |
|
|
コンパイル時 |
string |
Dコンパイル実行の最後にプログラムで使用されるすべてのD型のCTF定義を書き出します。 |
|
ランタイム |
size |
動的変数空間のサイズです。 「変数」を参照してください。 |
|
コンパイル時 |
空のDソース・ファイルのコンパイルを許可します。 |
|
|
コンパイル時 |
エラー・タグの接頭辞としてデフォルトのエラー・メッセージを使用します。 |
|
|
コンパイル時 |
|
DTraceが新しいプロセスのトレースを開始するタイミングを制御します。動的にリンクされたバイナリについては、次のようにトレースが開始されます。
静的にリンクされたバイナリについては、
削除された静的にリンクされたバイナリについては、 |
|
動的ランタイム |
関数の開始位置をインデントし、その前に
関数の終了位置のインデントを解除し、その前に
システム・コールの開始位置をインデントし、その前に
システム・コールの終了位置のインデントを解除し、その前に dtrace -Fと同等です。 「dtraceコマンド・リファレンス」を参照してください。 |
|
|
コンパイル時 |
string |
|
|
コンパイル時 |
scalar |
DTrace中間フォーマット(DIF)整数レジスタ・セットのサイズです。デフォルト値は |
|
コンパイル時 |
未解決のカーネル・シンボルを許可しません。 |
|
|
コンパイル時 |
未解決のカーネル・シンボルを許可します。 |
|
|
コンパイル時 |
|
動的トランスレータに対する参照が許可されるかどうかを指定します。
|
|
コンパイル時 |
|
DTraceオブジェクト・フォーマット(DOF)をアクティブ・ロードではなく遅延ロードする必要があることを指定します。 |
|
コンパイル時 |
string |
動的リンカー・ローダー(ld)のパスを指定します。 |
|
コンパイル時 |
string |
ライブラリ・ディレクトリをライブラリ検索パスに追加します。 |
|
コンパイル時 |
|
外部シンボル参照の処理時にアセンブラにより使用されるシンボル・リンク・モードを指定します。
|
|
コンパイル時 |
|
出力ファイル・タイプを指定します。
|
|
コンパイル時 |
string |
モジュール・パス。デフォルト・パスは |
|
コンパイル時 |
Dシステム・ライブラリを処理しません。 |
|
|
ランタイム |
scalar |
投機の数。 「投機トレース」を参照してください。 |
|
コンパイル時 |
scalar |
DTraceでトレース用に捕捉できるスレッド数の制限です。デフォルト値は |
|
コンパイル時 |
scalar |
事前に割り当てるメモリー量です。 |
|
コンパイル時 |
string |
|
|
コンパイル時 |
あいまいな指定子をプローブ名として解釈します。 |
|
|
動的ランタイム |
明示的にトレースされたデータのみを出力します(dtrace -qと同等)。 「dtraceコマンド・リファレンス」を参照してください。 |
|
|
動的ランタイム |
バッファ・サイズ変更メッセージを抑止します。 「バッファおよびバッファリング」を参照してください。 |
|
|
動的ランタイム |
「アクションおよびサブルーチン」を参照してください。 |
|
|
ランタイム |
size |
投機バッファ・サイズ。 「投機トレース」を参照してください。 |
|
ランタイム |
scalar |
スタック・フレームの数です。 「アクションおよびサブルーチン」を参照してください。 |
|
動的ランタイム |
scalar |
「アクションおよびサブルーチン」を参照してください。 |
|
ランタイム |
time |
ステータス・チェックのレートです。 |
|
コンパイル時 |
|
-Cオプションを使用してcppを呼び出すときに、プリプロセッサのISO C準拠設定を指定します。
|
|
コンパイル時 |
ロード不可能なセクションをプログラムから削除します。 |
|
|
ランタイム |
size |
文字列サイズ。 「文字列のDTraceサポート」を参照してください。 |
|
動的ランタイム |
time |
バッファ切替えレートです。 「バッファおよびバッファリング」を参照してください。 |
|
コンパイル時 |
string |
システム・ライブラリのパス名です。 |
|
コンパイル時 |
scalar |
DTraceツリー・ダンプ・ビットマッブの値です。 |
|
コンパイル時 |
scalar |
DIFタプル・レジスタ・セットのサイズです。デフォルト値は |
|
コンパイル時 |
未解決のユーザー・シンボルを許可しません。 |
|
|
コンパイル時 |
string |
プリプロセッサを呼び出すときにシンボルの定義を取り消します。dtrace -Uと同等です。 |
|
コンパイル時 |
未解決のユーザー・シンボルを許可します。 |
|
|
ランタイム |
scalar |
ユーザーランド・スタック・フレームの数です。 「アクションおよびサブルーチン」を参照してください。 |
|
コンパイル時 |
DIF冗長モードで、コンパイルされた各DIFオブジェクト(DIFO)を表示します。 |
|
|
コンパイル時 |
string |
特定のバージョンのネイティブDTraceライブラリをリクエストします。 |
|
コンパイル時 |
一致するプローブが1つも見つからないプローブ定義を許可します。 |
サイズを表す値には、k
(KB)、m
(MB)、g
(GB)、t
(TB)のいずれかのオプションの接尾辞を付けることができます。時間を表す値には、ns
(ナノ秒)、us
(マイクロ秒)、ms
(ミリ秒)、s
(秒)、hz
(秒当たりの回数)のいずれかのオプションの接尾辞を付けることができます。
オプションの変更
Dスクリプトでオプションを設定するときは、#pragma D
、文字列option
、オプション名の順に指定します。値をとるオプションの場合は、オプション名とオプション値を等号(=
)で結びます。次に、有効なオプション設定の例を示します。
#pragma D option nspec=4 #pragma D option bufsize=2g #pragma D option switchrate=10hz #pragma D option aggrate=100us #pragma D option bufresize=manual
dtraceコマンドは、-xオプションの引数として、コマンドラインのオプション設定も受け入れます。次に例を示します。
# dtrace -x nspec=4 -x bufsize=2g \ -x switchrate=10hz -x aggrate=100us -x bufresize=manual
次の例に示すように、無効なオプションを指定すると、dtraceは、オプション名が無効であるというメッセージを表示して終了します。
# dtrace -x wombats=25 dtrace: failed to set option -x wombats: Invalid option name
同様に、オプションに無効な値を指定すると、次に示すように、dtraceは値が無効であるというメッセージを表示します。
# dtrace -x bufsize=100wombats dtrace: failed to set option -x bufsize: Invalid value for specified option
同じオプションを複数回指定した場合、先に指定されたオプションは後から指定されたオプションで上書きされます。一部のオプションは設定のみ可能です。そのようなオプションを設定した場合、後から設定を解除することはできません。