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.
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 | ||
aggsize |
Größe |
Größe des Aggregatpuffers | ||
bufresize |
auto oder manual |
Richtlinie zur Puffergröße- nänderung | ||
bufsize |
Größe |
-b |
Hauptpuffergröße | |
cleanrate |
Zeit |
Bereinigungs- häufigkeit. Muss in Anzahl pro Sekunde mit dem Suffix hz angegeben werden. | ||
cpu |
Skalar |
-c |
CPU, auf der die Ablaufverfolgung aktiviert werden soll | |
defaultargs |
— |
Verweise auf nicht angegebene Makroargumente zulassen | ||
destructive |
— |
-w |
Destruktive Aktionen zulassen | |
dynvarsize |
Größe |
Speicherplatz für dynamische Variablen | ||
flowindent |
— |
-F |
Funktionseintritt einrücken und -> voranstellen; Funktionsrückkehr ausrücken und <- voranstellen | |
grabanon |
— |
-a |
Anonymen Status fordern | |
jstackframes |
Skalar |
Anzahl der Standard-Stack- Frames für jstack() | ||
jstackstrsize |
Skalar |
Standard-Zeichen- kettenspeicherplatz für jstack() | ||
nspec |
Skalar |
Anzahl der Spekulationen | ||
quiet |
— |
-q |
Nur ausdrücklich verfolgte Daten ausgeben | |
specsize |
Größe |
|
Größe des Spekulationspuffers | |
strsize |
Größe |
Zeichenkettengröße | ||
stackframes |
Skalar |
Anzahl der Stack-Frames | ||
stackindent |
Skalar |
Anzahl der Leerstellenzeichen für Einrückung der stack()- und ustack()-Ausgabe | ||
statusrate |
Zeit |
Statusüberprüfungsrate |
|
|
switchrate |
Zeit |
Pufferwechselrate | ||
ustackframes |
Skalar |
Anzahl der Benutzer-Stack- Frames |
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.
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.