Handbuch zur dynamischen Ablaufverfolgung in Solaris

Kapitel 16 Optionen und Tunables

Zugunsten der Anpassungsfähigkeit bietet DTrace unterschiedliche Flexibilitätsstufen. Um die Notwendigkeit spezifischer Abstimmungen zu minimieren, wurde DTrace mit vernünftigen Standardwerten und flexiblen Standardrichtlinien implementiert. Trotzdem kann es vorkommen, dass das Verhalten von DTrace auf Basis der einzelnen Verbraucher abgestimmt werden muss. In diesem Kapitel werden die DTrace-Optionen und -Tunables (abstimmbare Optionen) sowie die Schnittstellen beschrieben, über die sie modifiziert werden können.

Verbraucheroptionen

Sie passen DTrace an, indem Sie Optionen setzen oder aktivieren. Die verfügbaren Optionen sind in der nachfolgenden Tabelle beschrieben. Für einige Optionen bietet dtrace(1M) eine entsprechende Befehlszeilenoption.

Tabelle 16–1 DTrace-Verbraucheroptionen

Optionsname 

Wert 

dtrace(1M)-Alias

Beschreibung 

Siehe Kapitel 

aggrate

Zeit

 

Leserate für Aggregate 

Kapitel 9Aggregate

aggsize

Größe

 

Größe des Aggregatpuffers 

Kapitel 9Aggregate

bufresize

auto oder manual

 

Richtlinie zur Puffergröße- nänderung 

Kapitel 11Puffer und Pufferung

bufsize

Größe

-b

Hauptpuffergröße 

Kapitel 11Puffer und Pufferung

cleanrate

Zeit

 

Bereinigungs- häufigkeit. Muss in Anzahl pro Sekunde mit dem Suffix hz angegeben werden.

Kapitel 13Spekulative Ablaufverfolgung

cpu

Skalar

-c

CPU, auf der die Ablaufverfolgung aktiviert werden soll 

Kapitel 11Puffer und Pufferung

defaultargs

— 

 

Verweise auf nicht angegebene Makroargumente zulassen 

Kapitel 15Scripting

destructive

— 

-w

Destruktive Aktionen zulassen 

Kapitel 10Aktionen und Subroutinen

dynvarsize

Größe

 

Speicherplatz für dynamische Variablen 

Kapitel 3Variablen

flowindent

— 

-F

Funktionseintritt einrücken und -> voranstellen; Funktionsrückkehr ausrücken und <- voranstellen

Kapitel 14Das Dienstprogramm dtrace(1M)

grabanon

— 

-a

Anonymen Status fordern 

Kapitel 36Anonyme Ablaufverfolgung

jstackframes

Skalar

 

Anzahl der Standard-Stack- Frames für jstack()

Kapitel 10Aktionen und Subroutinen

jstackstrsize

Skalar

 

Standard-Zeichen- kettenspeicherplatz für jstack()

Kapitel 10Aktionen und Subroutinen

nspec

Skalar

 

Anzahl der Spekulationen 

Kapitel 13Spekulative Ablaufverfolgung

quiet

— 

-q

Nur ausdrücklich verfolgte Daten ausgeben 

Kapitel 14Das Dienstprogramm dtrace(1M)

specsize

Größe

 

Größe des Spekulationspuffers 

Kapitel 13Spekulative Ablaufverfolgung

strsize

Größe

 

Zeichenkettengröße 

Kapitel 6Zeichenketten

stackframes

Skalar

 

Anzahl der Stack-Frames 

Kapitel 10Aktionen und Subroutinen

stackindent

Skalar

 

Anzahl der Leerstellenzeichen für Einrückung der stack()- und ustack()-Ausgabe

Kapitel 10Aktionen und Subroutinen

statusrate

Zeit

 

Statusüberprüfungsrate 

 

switchrate

Zeit

 

Pufferwechselrate 

Kapitel 11Puffer und Pufferung

ustackframes

Skalar

 

Anzahl der Benutzer-Stack- Frames 

Kapitel 10Aktionen und Subroutinen

Werte, die eine Größe darstellen, dürfen durch eines der optionalen Suffixe k, m, g oder t ergänzt werden, um die Einheit Kilobyte, Megabyte, Gigabyte bzw. Terabyte anzugeben. Werten, die Zeiten darstellen, kann eines der optionalen Suffixe ns, us, ms, s oder hz angefügt werden, die für Nanosekunden, Mikrosekunden, Millisekunden, Sekunden bzw. Anzahl pro Sekunde stehen.

Modifizieren von Optionen

Optionen können in einem D-Skript anhand von #pragma D, gefolgt von der Zeichenkette option und dem Optionsnamen gesetzt werden. Bei Optionen, die einen Wert annehmen, setzen Sie hinter den Optionsnamen ein Gleichheitszeichen (=) und den Optionswert. Bei allen folgenden Beispielen handelt es sich um gültige Optionseinstellungen:

#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

Der Befehl·dtrace(1M) akzeptiert Optionseinstellungen auch in der Befehlszeile als Argument für die Option -x. Beispiel:


# dtrace -x nspec=4 -x grabanon -x bufsize=2g \
    -x switchrate=10hz -x aggrate=100us -x bufresize=manual

Bei Angabe einer ungültigen Option weist dtrace darauf hin, dass der Optionsname ungültig ist, und wird beendet:


# dtrace -x wombats=25
dtrace: failed to set option -x wombats: Invalid option name
#

Ebenso gibt dtrace eine Meldung aus, wenn ein Optionswert für die angegebene Option ungültig ist:


# dtrace -x bufsize=100wombats
dtrace: failed to set option -x bufsize: Invalid value for specified option
#

Wird eine Option mehrmals gesetzt, wird die ältere Einstellung durch die jeweils neuere überschrieben. Einige Optionen, wie zum Beispiel grabanon, können nur gesetzt werden. Durch ihr bloßes Vorhandensein sind sie bereits gesetzt und Sie können sie anschließend nicht aufheben.

Für eine anonyme Aktivierung gesetzte Optionen werden von dem DTrace-Verbraucher, der den anonymen Status fordert, berücksichtigt. Weitere Informationen zum Aktivieren der anonymen Ablaufverfolgung finden Sie in Kapitel 36Anonyme Ablaufverfolgung.