システムのカーネルの空きメモリー容量が不足していて、使用可能なメモリー容量が足りないため、または 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 ... |
バッファーの割り当てエラーの発生後、bufresize に manual を設定して、手動での調整を要求することもできます。このポリシーでは、割り当てエラーが発生すると、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 オプションで指定します。