Solaris 動的トレースガイド

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

システムのカーネルの空きメモリー容量が不足していて、使用可能なメモリー容量が足りないため、または DTrace コンシューマがチューニング可能な制限値 (第 16 章オプションとチューニング可能パラメータを参照) を超えてしまったため、必要なサイズのバッファーを割り当てられないことがあります。バッファー割り当てエラーのポリシーは、bufresize オプション (デフォルト値は auto) で設定できます。auto バッファーサイズ変更ポリシーでは、正常に割り当てが行われるまで、バッファーのサイズが二等分されます。割り当てバッファーのサイズが要求されたサイズより小さい場合、dtrace(1M) はメッセージを生成します。


# dtrace -P syscall -b 4g
dtrace: description 'syscall' matched 430 probes
dtrace: buffer size lowered to 128m
...

または


# dtrace -P syscall'{@a[probefunc] = count()}' -x aggsize=1g
dtrace: description 'syscall' matched 430 probes
dtrace: aggregation size lowered to 128m
...

バッファーの割り当てエラーの発生後、bufresizemanual を設定して、手動での調整を要求することもできます。このポリシーでは、割り当てエラーが発生すると、DTrace の起動に失敗します。


# dtrace -P syscall -x bufsize=1g -x bufresize=manual
dtrace: description 'syscall' matched 430 probes
dtrace: could not enable tracing: Not enough space
#

主バッファー、投機バッファー、集積体バッファーを含むすべてのバッファーのサイズ変更ポリシーは、bufresize オプションで指定します。