tracex(5) tracex(5)
NAME
tracex - Reliant UNIX Kernel-Tracer
BESCHREIBUNG
tracex ist ein System von Programmen, mit dem es möglich ist, Abläufe
im Betriebssystemkern aufzuzeichnen und zu analysieren.
Da sehr viele Daten aufgezeichnet werden, eignet sich tracex in erster
Linie für Kurzzeit-Messungen, etwa im Minutenbereich. Beschränkt man
sich, falls möglich, auf die Messung von Einzeltransaktionen, so
erleichtert dies die Analyse kritischer Abläufe erheblich.
Die maximale Meßdauer beträgt 35 Minuten.
Wenn tracex aktiviert ist, protokolliert der Betriebssystemkern u. a.
den Zeitpunkt, wann bestimmte Meßpunkte durchlaufen werden (anders
ausgedrückt, wann bestimmte Ereignisse eintreten). Diese Daten werden
zunächst in einem Puffer zwischengespeichert. Wenn dieser Puffer zu
einem bestimmten Grad gefüllt ist oder nach einer festgelegten Zeit,
wird das Protokoll in eine binäre Protokolldatei rawtrace geschrieben.
Diese Datei muß zunächst in eine ASCII-Datei asciitrace umgewandelt
werden, die dann von unterschiedlichen Werkzeugen analysiert werden
kann.
Der Ablauf einer Messung gliedert sich in drei Phasen:
I) Installation/Konfigurierung von tracex
II) Durchführung der Messung; d. h. Erzeugen einer binären Protokoll-
datei
III) Auswertung der Messung; d. h. Erzeugen einer ASCII-Protokolldatei
und Auswerten dieser Datei mit diversen Werkzeugen. Eine
Standard-Auswertung ist mit Hilfe eines mitgelieferten Makefiles
möglich.
Der folgende Funktionsüberblick benutzt die Darstellungsweise:
+------------+ +-------+
Programm: |¢ Programm ¢| Datei: | Datei |
+------------+ +-------+
Außerdem wird von den Konventionen ausgegangen, die bei der Bennenung
von Dateien eingehalten werden müssen, wenn das mitgelieferte Makefile
benutzt werden soll:
"rawtrace" heißt mname.R, wobei mname eine beliebiege Zeichenkette zur
Identifizierung der Messung ist. "asciitrace" heißt entsprechend
mname.A.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
tracex(5) tracex(5)
Installation
Die Verbindung zwischen dem Benutzer und dem Betriebssystemkern wird
über den Treiber trx hergestellt.
Dieser Treiber muß zum Kern gelinkt und über die Gerätedatei /dev/trx
(Major# 300, Minor# 0) ansprechbar sein. Dies ist standardmäßig der
Fall.
Alle tracex-Kommandos sind in dem Paket SItracex enthalten und können
mit pkgadd installiert werden. Dabei wird auch der Benutzer "tracex"
mit einer geeigneten Umgebung angelegt. Dieser Benutzer ist dannach in
der Lage, die im folgenden beschriebenen Messungen durchzuführen und
auszuwerten.
Konfigurierung
Die Größe des oben erwähnten Puffers, den der Betriebssystemkern zum
Zwischenspeichern des Protokolls verwendet, ist einstellbar. Dies
geschieht mit den Kommandos trxpatch(1M) bzw. trxsetbuf(1M).
Durchführung einer Messung
Zunächst sollte in einer entab-Datei festgelegt werden, welche Ereig-
nisse von tracex protokolliert werden sollen. Im Standardfall werden
alle bekannten Ereignisse protokolliert.
Dann wird die Messung mit dem Kommando txc(1M) gestartet, d. h. es
wird begonnen, die binäre Protokolldatei rawtrace zu füllen. In
asciitraceps wird eine Liste der laufenden Prozesse erzeugt.
+----------+ +---------------+
| /dev/trx |---+ +--->| mname.Aps |
+----------+ | +-------+ | +---------------+
+--->|¢ txc ¢|---+
+----------+ | +-------+ | +---------------+
| entab |---+ +--->| mname.R |
+----------+ +---------------+
|
| +----------+
+--->|¢ trxchk ¢|
+----------+
Jetzt werden gegebenenfalls die zu untersuchenden (Test-)Programme
gestartet.
Um die Messung zu beenden, wird das Protokollieren durch Aufruf des
Kommandos snap(1M) gestoppt. Es ist auch möglich, die Meßzeit bereits
beim txc-Aufruf festzulegen.
Mit Hilfe des Kommandos trxchk(1M) kann die binäre Protokolldatei raw-
trace auf syntaktische Korrektheit überprüft werden.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
tracex(5) tracex(5)
Auswertung einer Messung
Zunächst muß die binäre Protokolldatei rawtrace mit dem Kommando
trxout(1M) in eine ASCII-Datei asciitrace umgewandelt werden.
rawtracetoe enthält eine Liste der aufgetretenen Fehler.
+----------------+
+--->| mname.A |
+-----------+ +----------+ | +----------------+
| mname.R |--->|¢ trxout ¢|---+
+-----------+ +----------+ | +----------------+
+--->| mname.Rtoe |
+----------------+
Auf die so entstandene ASCII-Protokolldatei kann nun mit unterschied-
lichen Werkzeugen zugegriffen werden.
a) trxlook
Mit dem Kommando trxlook(1M) kann man lesbare Auszüge aus einer
ASCII-Protokolldatei asciitrace erstellen. Nach welchen Kriterien
diese Auszüge erstellt werden, wird mit Hilfe des Kommandos
trxparm(1M) in einer Parameterdatei parmfile festgelegt. Mit dem Kom-
mando trxindx(1M) läßt sich ein Index für asciitrace anlegen und so
das Laufzeitverhalten erheblich verbessern.
+------------+
|¢ trxparm ¢|
+-----+------+
|
v
+------------+
| parmfile |---+
+------------+ | +---------------+
+--->|¢ trxlook ¢|---> stdout
+------------+ | +---------------+
| mname.A |---+ ^
+-----+------+ |
| |
v |
+------------+ +-------+-------+
|¢ trxindx ¢|------->| mname.Aind |
+------------+ +---------------+
b) trxeval
Das Programm trxeval(1M) wertet die ASCII-Protokolldatei asciitrace
logisch aus, d. h. es werden Summeninformationen z. B. zur Beurteilung
der CPU- oder Peripherie-Auslastung usw. und andere Statistiken
erstellt. trxeval erzeugt je nach angegebener Option bis zu sechs Aus-
gabedateien:
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98
tracex(5) tracex(5)
asciitraceout ausführliches Ausgabeprotokoll
asciitraceerr Fehlermeldungen von trxeval
asciitraceaus nicht-formatiertes Ausgabeprotokoll
asciitraceintv Bedienzeit-Profil der Prozesse
asciitracetrc Wichtige, aus outdat übernommene Sätze
asciitracesyserr Fehlermeldungen von Systemaufrufen der Prozesse
+--------------+ +----------------+
| mname.Aps |--+ +---->| mname.Aout |
+--------------+ | +-----------+ | +----------------+
+----->|¢ trxeval ¢|--+ +----------------+
+-------------+ | +-----+-----+ +---->| mname.Aerr |
| mname.A |--+ | | +----------------+
+-------------+ | | +----------------+
+------------------+-----+ +---->| mname.Aaus |
| | | +----------------+
v v | +----------------+
+----------------+ +---------------+ +---->| mname.Asyserr |
| mname.Aintv | | mname.Atrc | +----------------+
+-----+----------+ +---+-+---------+
| | | +-----------+
+--------+--------+ +---->|¢ trxproc ¢|----> stdout
| +-----------+
v
+-----------+ +------------------+
|¢ do.lev2 ¢|----->| mname.Atrcex |
+-----+-----+ +------------------+
|
+-------+------------+----------------------+
| | |
v v v
+------------------+ +------------------+ +-------------------+
| mname.Aintvp | | mname.Aintvt | | mname.Aintvts |
+------------------+ +------------------+ +-------------------+
Zwei weitere Programme werten die Ergebnisse von trxeval weiter aus:
trxpoc(1M) ermittelt aus asciitracetrc die Hierarchie der zur Meßzeit
laufenden Prozesse.
do.lev2 erzeugt folgende Dateien:
asciitraceintvp intv-Daten, sortiert nach PID und Zeitraster
asciitraceintvt intv-Daten, sortiert nach Zeitraster und PID
asciitraceintvts intv-Daten, sortiert nach Zeitraster
Seite 4 Reliant UNIX 5.44 Gedruckt 11/98
tracex(5) tracex(5)
asciitracetrcex trc-Daten (Ereignisse 16, 17, 18) im trxlook-
Format
c) trxiostat
Die Programmkombination trxsys | trxiostat erstellt für jede PID alle
Zugriffe auf alle Dateien (Systemaufrufe), die von dieser PID ange-
sprochen wurden.
+-------------+ +-------------+ +-------------+
| mname.A |---->|¢ trxsys ¢|---->|¢ trxiostat ¢|----> stdout
+-------------+ +-------------+ +-------------+
Makefile
Für die standardisierte Auswertung einer tracex-Messung wird ein Make-
file zur Verfügung gestellt.
Es umfaßt folgende Auswertungen:
- trxout
- trxindx
- trxeval
- do.lev2
Die Anwendung des Makefiles erfordert als Eingabe eine binäre Proto-
kolldatei in der Form mname.R im Verzeichnis /home/tracex/dat. Beim
Aufruf von make wird nur der Teilname mname angegeben.
Es wird empfohlen, vor der eigentlichen Auswertung bereits bestehende
Auswertedateien zu löschen. Dies geschieht mit:
make clean id=mname
Die neue Auswertung wird gestartet mit:
make all id=name
Nach Ausführung des Makefiles stehen dem Benutzer folgende Ausgabeda-
teien zur Verfügung:
- mname.A
- mname.Rtoe (Fehlerdatei)
- mname.Aind
- mname.Aaus
Seite 5 Reliant UNIX 5.44 Gedruckt 11/98
tracex(5) tracex(5)
- mname.Aintv
- mname.Atrc
- mname.Aerr (Fehlerdatei)
- mname.Aintvp
- mname.Aintvt
- mname.Aintvts
- mname.Atrcex
HINWEISE
Bei Multiprozessor-Anlagen funktioniert der von tracex benutzte
Mikrosekunden-Timer erst nach etwa 3 Minuten nach dem Hochfahren des
Systems.
Eine ausführliche Anleitung, insbesondere eine Beschreibung sämtlicher
tracex bekannter Meßpunkte (Ereignisse) sowie das Format der Dateien,
ist der Datei /home/tracex/doc/trxman00 zu entnehmen.
SIEHE AUCH
do.lev2(1M), snap(1M), trxchk(1M), trxeval(1M), trxindx(1M),
trxiostat(1M), trxlook(1M), trxout(1M), trxparm(1M), trxpatch(1M),
trxproc(1M), trxsetbuf(1M), txc(1M), entab(4).
Seite 6 Reliant UNIX 5.44 Gedruckt 11/98