10 オプションおよびチューニング可能パラメータ

DTraceでは、カスタマイズに十分対応できるように、コンシューマに高いレベルの柔軟性が与えられています。特別なチューニングの必要性も最小限になるように、DTraceは適切なデフォルト値と柔軟なデフォルト・ポリシーで実装されていますが、コンシューマごとにDTraceの動作をチューニングする必要がある状況が発生する場合があります。この章では、DTraceのオプションとチューニング可能パラメータ、およびこれらを変更するためのインタフェースについて説明します。

コンシューマ・オプション

DTraceのチューニングは、オプションの設定や有効化で行います。次の表で、DTraceのチューニングに使用可能なオプションについて説明します。オプションによっては、対応するdtraceコマンドライン・オプションも用意されています。

表10-1 DTraceのコンシューマ・オプション

オプション名 タイプ 説明

aggpercpu

コンパイル時

 

CPU当たりの集積。

「集積体」を参照してください。

aggrate

動的ランタイム

time

集積体の読取りレート。

「集積体」を参照してください。

aggsize

ランタイム

size

集積体バッファ・サイズ/

「集積体」を参照してください。

aggsortkey

動的ランタイム

falseまたはtrue

集積体をキーでソートします。

「集積体」を参照してください。

aggsortkeypos

動的ランタイム

scalar

ソートする集積体キーの数です。

「集積体」を参照してください。

aggsortpos

動的ランタイム

scalar

ソートする集積体変数の数

「集積体」を参照してください。

aggsortrev

動的ランタイム

falseまたはtrue

集積体を逆順でソートします。

「集積体」を参照してください。

amin

コンパイル時

string

安定性属性最小値です。

「安定性の強制」を参照してください。

argref

コンパイル時

 

すべてのマクロ引数を使用する必要はありません。

bufpolicy

ランタイム

fillringswitch

バッファ・ポリシー。

「バッファおよびバッファリング」を参照してください。

bufresize

ランタイム

autoまたはmanual

バッファ・サイズの変更ポリシー。

「バッファおよびバッファリング」を参照してください。

bufsize

ランタイム

size

主バッファのサイズ(dtrace -bと同等)。

「バッファおよびバッファリング」を参照してください。

cleanrate

ランタイム

time

クリーニング・レート。

「投機トレース」を参照してください。

core

コンパイル時

 

dtraceによるコア・ダンプを有効化します。

cpp

コンパイル時

 

cppは入力ファイルの前処理に使用します。

cpphdrs

コンパイル時

 

-Hオプションをcppに指定して、使用される各ヘッダー・ファイルの名前を出力します。

cpppath

コンパイル時

string

cppのパス名を指定します。

cpu

ランタイム

scalar

トレースを有効にするCPUです。

「バッファおよびバッファリング」を参照してください。

ctypes

コンパイル時

string

Dコンパイル実行の最後にプログラムで使用されるすべてのC型の圧縮型フォーマット(CTF)定義を書き出します。

debug

コンパイル時

 

DTraceデバッグ・モードを有効にします(環境変数DTRACE_DEBUGを設定することと同等)。

defaultargs

コンパイル時

 

未指定のマクロ引数に対する参照を許可します。未指定の引数の値として0を使用します。

「スクリプト」を参照してください。

define

コンパイル時

string

マクロ名およびオプション値をname[=value]の形式で定義します(dtrace -Dと同等)。

destructive

ランタイム

 

破壊アクションを許可します(dtrace -wと同等)。

「アクションおよびサブルーチン」を参照してください。

droptags

コンパイル時

 

ドロップ・タグの使用を指定します。

dtypes

コンパイル時

string

Dコンパイル実行の最後にプログラムで使用されるすべてのD型のCTF定義を書き出します。

dynvarsize

ランタイム

size

動的変数空間のサイズです。

「変数」を参照してください。

empty

コンパイル時

 

空のDソース・ファイルのコンパイルを許可します。

errtags

コンパイル時

 

エラー・タグの接頭辞としてデフォルトのエラー・メッセージを使用します。

evaltime

コンパイル時

execmainpostinitまたはpreinit

DTraceが新しいプロセスのトレースを開始するタイミングを制御します。動的にリンクされたバイナリについては、次のようにトレースが開始されます。

exec

exec()の後。

preinit

バイナリをロードするための動的リンカーの初期化後。

postinit (デフォルト)

コンストラクタの実行後。

main

main()の開始前。postinitと同じ。

静的にリンクされたバイナリについては、preinitexecと同等です。

削除された静的にリンクされたバイナリについては、postinitおよびmainpreinitと同等です。

flowindent

動的ランタイム

 

関数の開始位置をインデントし、その前に->を付けます。

関数の終了位置のインデントを解除し、その前に<-を付けます。

システム・コールの開始位置をインデントし、その前に=>を付けます。

システム・コールの終了位置のインデントを解除し、その前に<=を付けます。

dtrace -Fと同等です。

「dtraceコマンド・リファレンス」を参照してください。

incdir

コンパイル時

string

#includeディレクトリをプリプロセッサ検索パスに追加します(dtrace -Iと同等)。

iregs

コンパイル時

scalar

DTrace中間フォーマット(DIF)整数レジスタ・セットのサイズです。デフォルト値は8です。

kdefs

コンパイル時

 

未解決のカーネル・シンボルを許可しません。

knodefs

コンパイル時

 

未解決のカーネル・シンボルを許可します。

late

コンパイル時

dynamicまたはstatic

動的トランスレータに対する参照が許可されるかどうかを指定します。

dynamic

動的トランスレータに対する参照を許可します。

static

トランスレータを静的に定義する必要があります。

lazyload

コンパイル時

falseまたはtrue

DTraceオブジェクト・フォーマット(DOF)をアクティブ・ロードではなく遅延ロードする必要があることを指定します。

ldpath

コンパイル時

string

動的リンカー・ローダー(ld)のパスを指定します。

libdir

コンパイル時

string

ライブラリ・ディレクトリをライブラリ検索パスに追加します。

linkmode

コンパイル時

dynamickernelまたはstatic

外部シンボル参照の処理時にアセンブラにより使用されるシンボル・リンク・モードを指定します。

dynamic

すべてのシンボルは動的として扱われます。

kernel

カーネル・シンボルは静的、ユーザー・シンボルは動的として扱われます。

static

すべてのシンボルは静的として扱われます。

linktype

コンパイル時

dofまたはelf

出力ファイル・タイプを指定します。

dof

スタンドアロンDOFファイルを生成します。

elf

DOFを含むELFファイルを生成します。

modpath

コンパイル時

string

モジュール・パス。デフォルト・パスは/lib/modules/ versionです。

nolibs

コンパイル時

 

Dシステム・ライブラリを処理しません。

nspec

ランタイム

scalar

投機の数。

「投機トレース」を参照してください。

pgmax

コンパイル時

scalar

DTraceでトレース用に捕捉できるスレッド数の制限です。デフォルト値は8です。

preallocate

コンパイル時

scalar

事前に割り当てるメモリー量です。

procfspath

コンパイル時

string

procfsファイル・システムへのパスです。デフォルト・パスは/procです。

pspec

コンパイル時

 

あいまいな指定子をプローブ名として解釈します。

quiet

動的ランタイム

 

明示的にトレースされたデータのみを出力します(dtrace -qと同等)。

「dtraceコマンド・リファレンス」を参照してください。

quietresize

動的ランタイム

 

バッファ・サイズ変更メッセージを抑止します。

「バッファおよびバッファリング」を参照してください。

rawbytes

動的ランタイム

 

trace出力を常に16進で出力します。

「アクションおよびサブルーチン」を参照してください。

specsize

ランタイム

size

投機バッファ・サイズ。

「投機トレース」を参照してください。

stackframes

ランタイム

scalar

スタック・フレームの数です。

「アクションおよびサブルーチン」を参照してください。

stackindent

動的ランタイム

scalar

stackおよびustack出力をインデントするときに使用する空白文字の数です。

「アクションおよびサブルーチン」を参照してください。

statusrate

ランタイム

time

ステータス・チェックのレートです。

stdc

コンパイル時

acsまたはt

-Cオプションを使用してcppを呼び出すときに、プリプロセッサのISO C準拠設定を指定します。

acおよびt設定は、-std=gnu99オプション(1999 C標準に準拠し、GNU拡張を含む)を含みます。

s設定は-traditional-cppオプション(K&R Cに準拠)を含みます。

strip

コンパイル時

 

ロード不可能なセクションをプログラムから削除します。

strsize

ランタイム

size

文字列サイズ。

「文字列のDTraceサポート」を参照してください。

switchrate

動的ランタイム

time

バッファ切替えレートです。

「バッファおよびバッファリング」を参照してください。

syslibdir

コンパイル時

string

システム・ライブラリのパス名です。

tree

コンパイル時

scalar

DTraceツリー・ダンプ・ビットマッブの値です。

tregs

コンパイル時

scalar

DIFタプル・レジスタ・セットのサイズです。デフォルト値は8です。

udefs

コンパイル時

 

未解決のユーザー・シンボルを許可しません。

undef

コンパイル時

string

プリプロセッサを呼び出すときにシンボルの定義を取り消します。dtrace -Uと同等です。

unodefs

コンパイル時

 

未解決のユーザー・シンボルを許可します。

ustackframes

ランタイム

scalar

ユーザーランド・スタック・フレームの数です。

「アクションおよびサブルーチン」を参照してください。

verbose

コンパイル時

 

DIF冗長モードで、コンパイルされた各DIFオブジェクト(DIFO)を表示します。

version

コンパイル時

string

特定のバージョンのネイティブDTraceライブラリをリクエストします。

zdefs

コンパイル時

 

一致するプローブが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

同じオプションを複数回指定した場合、先に指定されたオプションは後から指定されたオプションで上書きされます。一部のオプションは設定のみ可能です。そのようなオプションを設定した場合、後から設定を解除することはできません。