Kapitel 43. OProfile

OProfile ist ein Tool mit geringem Overhead zur systemweiten Leistungsüberwachung. Es verwendet die Leistungsüberwachungs-Hardware auf dem System, um Information über den Kernel und die Befehle des Systems herauszufinden, wie z.B. wann Speicherkapazität zugewiesen wird, die Anzahl der Anfragen bezüglich L2-Cache und die Anzahl der erhaltenen Hardware-Unterbrechungen. Auf einem Red Hat Enterprise Linux System muss das oprofile RPM-Paket installiert sein, damit dieses Tool verwendet werden kann.

Bei vielen Prozessoren ist eine spezielle Leistungsüberwachungs-Hardware dabei. Diese Hardware ermöglicht es, herauszufinden, wann gewisse Ereignisse stattfinden (z.B. wenn gesuchte Daten nicht in Cache sind). Die Hardware nimmt normalerweise die Form von einem oder mehreren counters (Zähler) an, die bei jedem Ereignis erhöht werden. Wenn der Wert der Zähler "hinaufklettert," wird eine Unterbrechung verursacht, wodurch möglich wird, die Menge der Details (und des Overhead) zu kontrollieren, die bei der Leistungsüberwachung entsteht.

OProfile verwendet diese Hardware (oder einen auf einer Zeituhr basierenden Ersatz, wenn keine Leistungsüberwachungs-Hardware vorhanden ist), um samples (Proben) von leistungsbezogenen Daten einzuholen, und zwar jedes Mal, wenn ein Zähler eine Unterbrechung verursacht. Diese Proben werden in regelmäßigen Abständen auf Diskette geschrieben. Später können die in den Proben enthaltenen Daten dazu verwendet werden, Berichte über die Leistung auf System-Level und auf Anwendungs-Level zu erstellen.

WichtigWichtig
 

Die Unterstützung für OProfile in Red Hat Enterprise Linux 3 basiert auf dem rückgeführten Code von der 2.5 Kernel-Entwicklung. Wenn auf die OProfile Dokumentation verwiesen wird, dann gelten 2.5 spezifische Eigenschaften für OProfile in Red Hat Enterprise Linux 3, obwohl die Kernel-Version 2.4 ist. Gleichfalls gelten Oprofile-Eigenschaften, die Kernel 2.4 spezifisch sind, nicht für Red Hat Enterprise Linux 3.

OProfile ist ein nützliches Tool, aber bitte beachten Sie bei der Verwendung folgende Einschränkungen:

In Red Hat Enterprise Linux haben nur die Multi-Prozessor-(SMP)-Kernels OProfile-Unterstützung. Um festzustellen, welcher Kernel gerade läuft, geben Sie folgenden Befehl ein:

uname -r

Wenn die angezeigte Kernel-Version mit .entsmp endet, dann läuft der Multi-Prozessor-Kernel. Wenn nicht, installieren Sie ihn über Red Hat Network oder von den mitgelieferten CDs, auch wenn das System kein Multi-Prozessor-System ist. Der Multi- Prozessor Kernel kann auf einem Single-Prozessor-System laufen.

43.1. Übersicht der Tools

Tabelle 43-1 bietet eine kurze Übersicht über die Tools, die mit dem oprofile-Paket geliefert werden.

BefehlBeschreibung
opcontrol

Konfiguriert, welche Daten gesammelt werden. Für Details siehe Abschnitt 43.2.

op_help

Zeigt verfügbare Ereignisse für den System-Prozessor an, zusätzlich eine kurze Beschreibung jedes Ereignisses.

op_merge

Verbindet mehrere Proben derselben ausführbaren Datei. Für Details siehe Abschnitt 43.5.4

op_timeGibt einen Überblick über alle erfassten ausführbaren Dateien.
op_to_sourceKreiert eine annotierte Quelle für eine ausführbare Datei, wenn die Anwendung mit Debbugging-Symbolen zusammengestellt wurde. Für Details siehe Abschnitt 43.5.3.
oprofiled

Führt einen Daemon aus, um Probedaten in regelmäßigen Abständen auf Diskette zu schreiben

oprofpp

Holt Profildaten ein. Für Details siehe Abschnitt 43.5.2.

op_import

Wandelt Dateien von Probe-Datenbanken von einer fremden Binärdatei in das Heimformat des Systems um. Verwenden Sie diese Option nur, wenn Sie eine Probe-Datenbank von einer anderen Architektur analysieren.

Tabelle 43-1. OProfile-Befehle