Handbuch zur dynamischen Ablaufverfolgung in Solaris

Richtlinie für die Änderung der Puffergröße

Das System kann gelegentlich zu wenig freien Kernelspeicher verfügbar haben, um einem Puffer die gewünschte Menge an Speicherplatz zuzuweisen, weil entweder nicht genügend Speicher vorhanden ist oder der DTrace-Verbraucher einen der in Kapitel 16Optionen und Tunables beschriebenen abstimmbaren Grenzwerte überschritten hat. Sie können die Richtlinie für das Scheitern von Pufferspeicherzuweisungen mit der Option bufresize konfigurieren, die standardmäßig auf auto gesetzt ist. Im Rahmen der auto-Pufferrichtlinie für die Größenänderung wird die Größe eines Puffers so lange halbiert, bis eine erfolgreiche Speicherzuweisung stattfindet. Wenn ein Puffer nach der Speicherzuweisung kleiner ist, als angefordert wurde, generiert dtrace(1M) eine Meldung:


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

oder:


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

Alternativ können Sie nach der gescheiterten Pufferspeicherzuweisung einen manuellen Eingriff anfordern, indem Sie bufresize auf manual setzen. Bei dieser Richtlinie bedeutet eine fehlgeschlagene Speicherzuweisung, dass DTrace nicht starten kann:


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

Die Änderungsrichtlinie für die Größe aller Puffer, also der Haupt-, spekulativen und Aggregatpuffer, ist durch die Option bufresize vorgegeben.