Startseite > Paket- & Systemverwaltung > perf

perf: Linux-Performance-Analyse-Tool

perf ist ein leistungsstarkes Performance-Monitoring- und Analysewerkzeug, das in den Linux-Kernel integriert ist. Es wird verwendet, um Engpässe in der Anwendungs- und Systemleistung zu identifizieren und zu optimieren, indem es verschiedene Hardware- und Softwareereignisse wie CPU-Auslastung, Cache-Fehler und Systemaufrufe verfolgt. Es arbeitet auf Kernel-Ebene und liefert sehr detaillierte und genaue Leistungsdaten.

Übersicht

perf ist ein unverzichtbares Werkzeug für Entwickler und Systemadministratoren zur Diagnose und Optimierung von Leistungsproblemen. Es bietet eine breite Palette von Leistungsanalysefunktionen wie die Erfassung von Statistiken, die Aufzeichnung von Ereignissen und die Generierung von Berichten über verschiedene Unterbefehle.

Hauptfunktionen

  • CPU-Profiling (CPU-Auslastung, Analyse des Aufrufstapels)
  • Überwachung von Hardware-Ereignissen (Cache-Fehler, Branch-Prediction-Fehler usw.)
  • Überwachung von Software-Ereignissen (Scheduling-Ereignisse, Seitenfehler usw.)
  • Verfolgung und Analyse von Systemaufrufen
  • Dynamisches Tracing (kprobes, uprobes)

Hauptoptionen (Unterbefehle)

perf führt Funktionen über verschiedene Unterbefehle aus. Jeder Unterbefehl hat seine eigenen Optionen.

perf stat: Statistiken erfassen

perf record: Leistungsdaten aufzeichnen

perf report: Aufgezeichnete Daten analysieren

perf list: Liste verfügbarer Ereignisse

Erzeugter Befehl:

Kombinieren Sie die Befehle.

Beschreibung:

`perf` Führen Sie den Befehl aus.

Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.

Anwendungsbeispiele

Verschiedene Anwendungsbeispiele für den Befehl perf.

Anzeigen von Statistiken zur Ausführung des ls-Befehls

perf stat ls

Überprüft grundlegende Leistungsstatistiken wie CPU-Zyklen, Befehlsanzahl und Cache-Fehler während der Ausführung des ls-Befehls.

Überwachung eines bestimmten Prozesses für 5 Sekunden

perf stat -p 1234 sleep 5

Überwacht die Leistungsstatistiken eines Prozesses mit der PID 1234 für 5 Sekunden. (Ersetzen Sie dies durch die tatsächliche PID)

Aufzeichnung des Aufrufdiagramms während der Ausführung einer Anwendung

perf record -g ./my_app

Zeichnet Leistungsdaten einschließlich Informationen zum Funktionsaufrufstapel während der Ausführung von my_app auf. Die aufgezeichneten Daten werden in der Datei perf.data gespeichert.

Analyse aufgezeichneter Daten

perf report

Analysiert die von perf record erstellte Datei perf.data interaktiv, um Leistungsengpässe visuell zu identifizieren.

Anzeigen der Liste verfügbarer Hardware-Ereignisse

perf list hw

Überprüft die Liste aller Hardware-Leistungsereignisse, die perf auf dem aktuellen System überwachen kann.

Installation

perf ist möglicherweise nicht auf den meisten Linux-Distributionen standardmäßig installiert. Sie können es mit den folgenden Befehlen installieren.

Debian/Ubuntu

sudo apt update
sudo apt install linux-tools-common linux-tools-$(uname -r)

Befehl zur Installation von perf auf Debian- oder Ubuntu-basierten Systemen. Sie müssen das passende linux-tools-Paket für Ihre Kernel-Version installieren.

CentOS/RHEL/Fedora

sudo yum install perf
# oder sudo dnf install perf (Fedora)

Befehl zur Installation von perf auf CentOS-, RHEL- oder Fedora-basierten Systemen.

Tipps & Hinweise

Nützliche Tipps und Dinge, die Sie bei der Verwendung von perf beachten sollten.

Root-Berechtigungen

Die meisten perf-Befehle erfordern Root-Berechtigungen (sudo), da sie systemweite Leistungsdaten erfassen.

  • Wenn Sie eine Fehlermeldung wie 'Operation not permitted' erhalten, versuchen Sie, den Befehl mit sudo auszuführen.

Laden von Kernel-Symbolen

Wenn Funktionsnamen in 'perf report' als 'unknown' angezeigt werden, müssen Sie Kernel-Symbole laden. Dies ist durch die Installation von Paketen wie 'kernel-debuginfo' oder 'kernel-devel' möglich.

  • CentOS/RHEL: `sudo debuginfo-install kernel`
  • Ubuntu/Debian: `sudo apt install linux-image-$(uname -r)-dbg`

Overhead

Da perf sehr detaillierte Daten erfasst, kann die Verwendung von 'perf record' mit einer hohen Abtastrate einen gewissen Overhead auf dem System verursachen. Seien Sie vorsichtig bei der Verwendung in Produktionsumgebungen.

  • Auf leistungssensitiven Systemen sollten Sie mit einer niedrigeren Abtastrate (-F Option) beginnen, um den Overhead zu minimieren.

Verwendung von perf top

'perf top' ist ein nützlicher Unterbefehl, der in Echtzeit die Funktionen mit der höchsten CPU-Auslastung anzeigt. Er eignet sich für die einfache Leistungsüberwachung.

  • Verwenden Sie 'perf top', um schnell die Funktionen zu identifizieren, die derzeit die meiste CPU-Zeit auf Ihrem System verbrauchen.

Gleiche Kategorie Befehle