DTrace では、将来的なカスタマイズを見込んで、コンシューマにかなりのレベルの柔軟性が与えられています。DTrace 自体も、特別なチューニングがなるべく必要ないように、妥当なデフォルト値と柔軟なポリシーの下に実装されています。それでも、コンシューマ単位で DTrace の動作をチューニングしなければならない場合があります。この章では、DTrace のオプション、チューニング可能パラメータ、およびこれらを変更するためのインタフェースについて説明します。
DTrace のチューニングが必要なときは、オプションを設定したり有効にしたりします。以下の表に、使用可能なオプションを示します。一部のオプションには、対応する dtrace(1M) コマンド行オプションがあります。
表 16–1 DTrace コンシューマオプション
オプション名 |
値 |
dtrace(1M) での別名 |
説明 |
参照先 |
---|---|---|---|---|
aggrate |
time |
集積体の読み取りレート | ||
aggsize |
size |
集積体バッファーサイズ | ||
bufresize |
auto または manual |
バッファーのサイズ変更ポリシー | ||
bufsize |
size |
-b |
主バッファーサイズ | |
cleanrate |
time |
クリーンアップレート。hz 接尾辞を付けて 1 秒あたりの回数で指定する必要があります。 | ||
cpu |
スカラー |
-c |
トレースを有効にする CPU | |
defaultargs |
— |
未知のマクロ引数の参照を許可する | ||
destructive |
— |
-w |
破壊アクションを許可する | |
dynvarsize |
size |
動的変数空間のサイズ | ||
flowindent |
— |
-F |
関数の開始 (entry) をインデントし、その前に -> を付ける。関数の終了 (return) のインデントを解除し、その前に <- を付ける | |
grabanon |
— |
-a |
匿名状態を要求する | |
jstackframes |
スカラー |
jstack() のデフォルトスタックフレームの数 | ||
jstackstrsize |
スカラー |
jstack() の文字列空間のデフォルトサイズ | ||
nspec |
スカラー |
投機の数 | ||
quiet |
— |
-q |
明示的にトレースされたデータだけを出力する | |
specsize |
size |
|
投機バッファーサイズ | |
strsize |
size |
文字列サイズ | ||
stackframes |
スカラー |
スタックフレームの数 | ||
stackindent |
スカラー |
stack() と ustack() の出力をインデントするときに使用する空白文字の数 | ||
statusrate |
time |
状態チェックレート |
|
|
switchrate |
time |
バッファー切り替えレート | ||
ustackframes |
スカラー |
ユーザースタックフレームの数 |
サイズを表す値には、k (キロバイト)、m (メガバイト)、g (ギガバイト)、t (テラバイト) のいずれかの接尾辞を付けることができます。時間を表す値には、ns (ナノ秒)、us (マイクロ秒)、ms (ミリ秒)、s (秒)、hz (秒当たりの回数) のいずれかの接尾辞を付けることができます。
D スクリプト内にオプションを設定するときは、#pragma D、文字列 option、オプション名を順に指定します。値をとるオプションの場合は、オプション名とオプション値を等号 (=) で結びます。以下に、有効なオプション設定の例を示します。
#pragma D option nspec=4 #pragma D option grabanon #pragma D option bufsize=2g #pragma D option switchrate=10hz #pragma D option aggrate=100us #pragma D option bufresize=manual
dtrace(1M) コマンドでは、-x オプションの引数として、コマンド行でオプションを設定することもできます。次に例を示します。
# dtrace -x nspec=4 -x grabanon -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 # |
同じオプションを繰り返し指定した場合、先に指定されたオプションは、あとから指定されたオプションで上書きされます。grabanon など、一部のオプションは設定することだけが可能です。こうしたオプションを設定した場合、あとで設定を解除することはできません。
匿名状態を要求する DTrace コンシューマは、匿名を有効化するためのオプションを使用できます。匿名トレースの有効化については、第 36 章匿名トレースを参照してください。