Red Hat Enterprise Linux 3: Handbuch zur System-Administration | ||
---|---|---|
Zurück | Kapitel 43. OProfile | Nach vorne |
In regelmäßigen Abständen holt der OProfile Daemon, oprofiled die Proben ein und shreibt sie in das /var/lib/oprofile/samples/ Verzeichnis. Bevor Sie die Daten lesen, stellen Sie sicher, dass alle Daten in dieses Verzeichnis geschrieben worden sind. Führen Sie dazu folgenden Befehl als Root aus:
opcontrol --dump |
Der Name jeder Probedateien basiert auf dem Namen der ausführbaren Datei, wobei ein geschwungenes Klammer-zu-Zeichen (}) alle Schrägstriche (/) ersetzt. Der Dateiname endet mit einem Rautezeichen (#), gefolgt von der Nummer des Zählers, der für diese Probedatei verwendet wurde. Die folgende Datei enthält z.B. die Probedaten für die ausführbare /sbin/syslogd Datei, die mit Zähler 0 gesammelt wurden.
}sbin}syslogd#0 |
Zur Profilerstellung der bereits eingeholten Daten stehen folgende Tools zur Verfügung:
op_time
oprofpp
op_to_source
op_merge
Verwenden Sie diese Tools gemeinsam mit den Binärdateien, für die Profile erstellt wurden, um Berichte zu erstellen, die noch weiter analysiert werden können.
![]() | Warnung |
---|---|
Die ausführbare Datei, für die ein Profil erstellt wird, muss mit diesen Tools zur Datenanalyse verwendet werden. Wenn die Datei sich verändern muss, nachdem die Daten eingeholt wurden, sichern Sie die verwendete ausführbare Datei und auch die Probedateien. |
Proben für jede ausführbare Datei werden in eine einzige Probedatei geschrieben. Proben von jeder dynamisch verbundenen Bibliothek werden auch in eine einzige Probedatei geschrieben. Wenn die ausführbare Datei, die beobachtet wird, sich verändert, während OProfile läuft, und wenn eine Probedatei für diese ausführbare Datei existiert, dann wird diese existierende Probedatei automatisch gelöscht. Deswegen muss die existierende Probedatei gesichert werden, wenn sie gebraucht wird, gemeinsam mit der verwendeten ausführbaren Datei, mit der die Probedatei erstellt wurde, bevor die ausführbare Datei mit einer neuen Version ersetzt wird. Details über das Sichern von Probedateien finden Sie unterAbschnitt 43.4.
Das op_time Tool bietet eine Übersicht über alle ausführbaren Dateien, für die gerade ein Profil erstellt wird.
Dies ist Teil einer Beispiels-Ausgabe:
581 0.2949 0.0000 /usr/bin/oprofiled 966 0.4904 0.0000 /usr/sbin/cupsd 1028 0.5218 0.0000 /usr/sbin/irqbalance 1187 0.6026 0.0000 /bin/bash 1480 0.7513 0.0000 /usr/bin/slocate 2039 1.0351 0.0000 /usr/lib/rpm/rpmq 6249 3.1722 0.0000 /usr/X11R6/bin/XFree86 8842 4.4885 0.0000 /bin/sed 31342 15.9103 0.0000 /usr/bin/gdmgreeter 58283 29.5865 0.0000 /no-vmlinux 82853 42.0591 0.0000 /usr/bin/perl |
Jede ausführbare Datei ist auf einer eigenen Zeile aufgelistet.Die erste Spalte zeigt die Anzahl der Proben, die für die ausführbare Datei aufgezeichnet wurden. Die zweite Spalte zeigt den Prozentsatz der Proben in Relation zu der Gesamtanzahl der Proben. Die dritte Spalte ist ungenützt und die vierte Spalte zeigt den Name der ausführbaren Datei.
Siehe op_time man Seite für eine Liste der verfügbaren Optionen für die Befehlszeile, z.B. die -r Option, die verwendet wird,um die Ausgabe von der ausführbaren Datei mit der größten Anzahl von Proben bis zu jener mit der kleinsten Anzahl von Proben zu sortieren. Die -c Option ist auch nützlich, um eine Zählernummer zu bestimmen.
Um mehr detaillierte Information über eine bestimmte ausführbare Datei zu erhalten, verwenden Sie oprofpp:
oprofpp <mode> <executable> |
<executable> muss den vollen Pfad zu der ausführbaren Datei erhalten, die analysiert werden soll. <mode> muss eines der folgenden sein:
Probedaten anhand von Symbolen auflisten. Dies ist z.B. Teil der Ausgabe,wenn der Befehl oprofpp -l /usr/X11R6/bin/XFree86 ausgeführt wird:
vma samples % symbol name ... 08195d10 4 3.0303 miComputeCompositeClip 080b9180 5 3.78788 Dispatch 080cdce0 5 3.78788 FreeResource 080ce4a0 5 3.78788 LegalNewID 080ce640 5 3.78788 SecurityLookupIDByClass 080dd470 9 6.81818 WaitForSomething 080e1360 12 9.09091 StandardReadRequestFromClient ... |
Die erste Spalte zeigt die virtuelle Speicheradresse (vma) zu Beginn. Die zweite Spalte zeigt die Anzahl der Proben für das Symbol. Die dritte Spalte zeigt den Prozentsatz der Proben für dieses Symbol in Relation zu den gesamten Proben für die ausführbare Datei, und die vierte Spalte ist der Name des Symbols.
Um die Ausgabe von der größten Anzahl der Proben zu der kleinsten zu sortieren (verkehrte Reihenfolge), verwenden Sie -r in Verbindung mit der -l Option.
Probedaten spezifisch zu einem Symbolnamen auflisten. Diese Ausgabe ist zum Beispiel von dem Befehl oprofpp -s StandardReadRequestFromClient /usr/X11R6/bin/XFree86:
vma samples % symbol name 080e1360 12 100 StandardReadRequestFromClient 080e1360 1 8.33333 080e137f 1 8.33333 080e13bb 1 8.33333 080e13f4 1 8.33333 080e13fb 1 8.33333 080e144a 1 8.33333 080e15aa 1 8.33333 080e1668 1 8.33333 080e1803 1 8.33333 080e1873 1 8.33333 080e190a 2 16.6667 |
Die erste Line ist eine Zusammenfassung für die Kombination Symbol/ausführbare Datei.
Die erste Spalte besteht aus den virtuellen Speicheradressen, für die Proben erstellt wurden. Die zweite Spalte zeigt die Anzahl von Proben für die Speicheradresse. Die dritte Spalte ist der Prozentsatz von Proben für die Speicheradresse in Relation zu der Gesamtanzahl der Proben für das Symbol.
Auflisten von Probedaten nach Symbolen mit mehr Details als -l. Zum Beispiel:
vma samples % symbol name 08083630 2 1.51515 xf86Wakeup 08083641 1 50 080836a1 1 50 080b8150 1 0.757576 Ones 080b8179 1 100 080b8fb0 2 1.51515 FlushClientCaches 080b8fb9 1 50 080b8fba 1 50 ... |
Die Daten sind die gleichen wie bei der -l Option, außer dass für jedes Symbol jede verwendete virtuelle Speicheradresse gezeigt wird. Für jede virtuelle Speicheradresse wird die Nummer der Proben sowie der Prozentsatz der Proben in Relation zu der Anzahl der Proben für das Symbol gezeigt.
Eine Ausgabe in eine Datei in gprof Format erzeugen. Wenn die erzeugte Datei gmon.outgenannt wird, kann gprof verwendet werden,um die Daten weiter zu analysieren. Siehe gprof man Seite für weitere Details.
Andere Optionen, um die Daten weiter zu beschränken, sind wie folgt
Verwenden Sie die spezifizierte Probedatei <file-name>. Standardmäßig wird die Probedatei in /var/lib/oprofile/samples/ verwendet. Verwenden Sie diese Option, um eine Probedatei von einem früheren Durchlauf festzulegen.
Verwenden Sie <file-name> als Namen für die ausführbare Datei, für die Daten eingeholt werden sollen.
"Demangle" C++ Symbol-Namen.
"Demangle" C++ Symbol-Namen und Vereinfachung der "demangled" Namen der STL-Bibliotheken.
Informationen von einem festgelegten Zähler einholen. Der standardmäßige Zähler ist 0 wenn nicht anders festgelegt.
Die Zeilennummer im Quellcode für jede Probe anzeigen. Beim Erstellen der ausführbaren Datei hätte die GCC's -g Option verwendet werden sollen. Andernfalls kann diese Option die Zeilennummern nicht anzeigen. Keine der Red Hat Enterprise Linux ausführbaren Dateien können standardmäßig mit dieser Option erstellt werden.
vma samples % symbol name linear info 0806cbb0 0 0 _start ../sysdeps/i386/elf/start.S:47 |
Schließen Sie die Liste der Komma-getrennten Symbole von der Ausgabe aus.
Eine zusätzliche Spalte anzeigen, die die gemeinsame Bibliothek enthält. Diese Option bringt nur Resultate, wenn der --separate=library option to opcontrol Befehl beim Konfigurieren von OProfile festgelegt wird und wenn die --dump-gprof-file Option nicht in Verbindung mit dieser Option verwendet wird.
Die Ausgabe in einer festgelegten Spaltenfolge anzeigen. Diese Option kann nicht mit -g verwendet werden.
Verwenden Sie die folgenden Buchstaben, um die Spalten darzustellen:
Buchstabe | Beschreibung |
---|---|
v | Virtuelle Speicheradresse |
s | Anzahl der Proben |
S | Anwachsende Anzahl der Proben |
p | Prozentsatz der Proben in Relation zu der Gesamtanzahl von Proben für die ausführbare Datei |
P | Anwachsender Prozentsatz der Proben in Relation zu der Gesamtanzahl der Proben für die ausführbare Datei |
q | Prozentsatz der Proben in Relation zu allen ausführbaren Dateien, für die Proben erstellt wurden. |
Q | Anwachsender Prozentsatz der Proben in Relation zu allen ausführbaren Dateien, für die Proben erstellt wurden |
n | Symbolname |
l | Dateiname oder Quelldatei und Zeilennummer samt vollem Pfad |
L | Basisname des Quellcode-Dateinamens und Zeilennummer |
i | Name der ausführbaren Datei samt vollem Pfad |
I | Basisname der ausführbaren Datei |
d | Details der Probe |
h | Kopfzeilen der Spalten anzeigen |
Tabelle 43-4. Buchstaben für Spaltenfolge
Den vollen Pfad zum Ablauf festlegen oder ein Verzeichnis bezüglich des /var/lib/oprofile/samples/ Verzeichnisses festlegen
Eine Liste von Komma-getrennten Pfaden festlegen, in der sich die ausführbaren Dateien befinden, die analysiert werden sollen.
Das op_to_source Tool versucht, die Proben für bestimmte Instruktionen mit den dazugehörigen Zeilen im Quellcode zu vergleichen. Die sich ergebenden Dateien sollten die Proben in den Zeilen auf der linken Seite haben. Dies setzt auch einen Kommentar an den Beginn jeder Funktion, indem die Gesamtproben für die Funktion aufgelistet werden.
Damit diese Utility funktioniert, müssen die ausführbaren Dateien mit der GCC's -g Option erstellt werden. Standardmäßig werden Red Hat Enterprise Linux Pakete nicht mit dieser Option erstellt.
Die Generalsyntax für op_to_source lautet:
op_to_source --source-dir <src-dir> <executable> |
Das Verzeichnis, in dem sich der Quellcode und die ausführbare Datei befinden, die analysiert werden sollen, muss festgelegt werden. Siehe op_to_source man-Seite für eine Liste zusätzlicher Optionen für die Befehlszeile.
Wenn für die exakt gleiche ausführbare Datei oder Bibliothek mehrere Probedateien existieren, können die Probedateien für eine leichtere Analyse zusammengeführt werden.
Um z.B. Dateien für die Bibliothek /usr/lib/library-1.2.3.so zusammenzuführen, führen Sie den folgenden Befehl als Root aus:
op_merge /usr/lib/library-1.2.3.so |
Die resultierende Datei ist /var/lib/oprofile/samples/}usr}lib}library-1.2.3.so.
Um die Proben, die zu einem bestimmten Zähler zusammengeführt werden, zu begrenzen, verwenden Sie die -c Option, gefolgt von der Zählernummer.
Zurück | Zum Anfang | Nach vorne |
Speicherung von Daten | Nach oben | Verstehen von /dev/profile/ |