PERF-A-Tool zur Überwachung und Analyse für Linux

PERF-A-Tool zur Überwachung und Analyse für Linux

Wenn wir über die Leistung beim Computer sprechen, beziehen wir uns auf die Beziehung zwischen unseren Ressourcen und den Aufgaben, die wir uns in einem bestimmten Zeitraum erledigen können.

PERF-A-Tool zur Überwachung und Analyse für Linux

An einem Tag des heftigen Wettbewerbs zwischen Unternehmen ist es wichtig, dass wir lernen, wie wir das verwenden können, was wir im besten Fall haben. Die Verschwendung von Hardware- oder Software -Ressourcen oder die mangelnde Fähigkeit zu wissen, wie man sie effizienter benutzt.

Gleichzeitig müssen wir darauf achten, dass wir unsere Ressourcen nicht zu einer Grenze bringen, an der anhaltende Verwendung irreparable Schäden erzeugt.

In diesem Artikel stellen wir Ihnen ein relativ neues Tool zur Leistungsanalyse vor und geben Sie Tipps zur Überwachung Ihrer Linux -Systeme, einschließlich Hardware und Anwendungen. Auf diese Weise können Sie sicherstellen, dass sie arbeiten, damit Sie die gewünschten Ergebnisse erzielen können, ohne Ressourcen oder Ihre eigene Energie zu verschwenden.

Einführung und Installation von Perf in Linux

Linux bietet unter anderem ein Tool zur Leistungsüberwachung und Analyse, das bequem namens bequem namens Perf. Also, was unterscheidet sich Perf aus anderen bekannten Tools, mit denen Sie bereits vertraut sind?

Die Antwort ist das Perf Bietet Zugriff auf die Leistungsüberwachungseinheit in der CPU und ermöglicht es uns daher, das Verhalten der Hardware und der damit verbundenen Ereignisse genau zu betrachten.

Darüber hinaus kann es auch Softwareereignisse überwachen und Berichte aus den gesammelten Daten erstellen.

Sie können installieren Perf In RPM-basierten Verteilungen mit:

# yum update && yum install perf [Centos / Rhel / Fedora] # DNF Update && DNF installieren Sie Perf [Fedora 23+ Veröffentlichungen] 

In Debian und Ableitungen:

# sudo aptitude update && sudo aptitude install linux-tools-$ (uname -r) linux-tools-generic 

Wenn Uname -r Im obigen Befehl gibt neben der tatsächlichen Version zusätzliche Zeichenfolgen zurück (3.2.0-23-generisch in meinem Fall) müssen Sie möglicherweise tippen Linux-Tools-3.2.0-23 anstatt die Ausgabe von zu verwenden dein Name.

Es ist auch wichtig zu beachten, dass das Perf liefert unvollständige Ergebnisse, wenn Sie in einem Gast auf VirtualBox oder VMware ausgeführt werden, da sie keinen Zugriff auf Hardware -Zähler wie andere Virtualisierungstechnologien (wie KVM oder Xen) ermöglichen.

Denken Sie außerdem daran, dass einige Perf Befehle können standardmäßig auf Root beschränkt werden, was durch Tätigkeiten deaktiviert werden kann (bis das System neu gestartet wird):

# echo 0>/proc/sys/kernel/perf_event_paranoid 

Wenn Sie deaktivieren müssen paranoid Modus dauerhaft aktualisieren Sie die folgende Einstellung in /etc/sysctl.Conf Datei.

Kernel.perf_event_paranoid = 0 

Unterbefehle

Sobald Sie installiert haben Perf, Sie können sich auf seine Mannseite finden, um eine Liste der verfügbaren Unterbefehle zu erhalten (Sie können Unterbefehle als spezielle Optionen vorstellen, die ein bestimmtes Fenster im System öffnen). Verwenden Sie für beste und vollständigere Ergebnisse Perf entweder Wurzel oder durch sudo.

Perfliste

Perflist (ohne Optionen) gibt alle symbolischen Ereignientypen zurück (lange Liste). Wenn Sie die Liste der in einer bestimmten Kategorie verfügbaren Ereignisse anzeigen möchten, verwenden Sie Perf Liste gefolgt vom Kategorienamen ([hw | sw | cache | tracepoint | pmu | event_glob]), wie zum Beispiel:

Liste der vordefinierten Software-Ereignisse unter Linux anzeigen:

# Perf List SW 
Listen Sie vordefinierte Software-Ereignisse unter Linux auf

Perf stat

Perf ST STR führt einen Befehl aus und sammelt während der Ausführung eines solchen Befehls Linux -Leistungsstatistiken. Was passiert in unserem System, wenn wir rennen? dd?

# perf stat dd if =/dev/null von = test.ISO BS = 10 m Anzahl = 1 
Sammelt Leistungsstatistiken des Linux -Befehls

Die oben gezeigten Statistiken zeigen unter anderem:

  1. Die Ausführung der dd Das Kommando nahm 21.812281 Millisekunden von CPU. Wenn wir diese Zahl durch den unten verstrichenen Wert „Sekundenzeit verstrichen“ teilen (23.914596 Millisekunden), es ergibt 0.912 (CPU verwendet).
  2. Während der Befehl ausgeführt wurde, 15 Kontext-Schalter (auch als Prozessschalter bezeichnet) zeigen an.
  3. 2 CPU-Migrationen sind das erwartete Ergebnis, wenn in einer 2-Core-CPU die Arbeitsbelastung gleichmäßig auf die Anzahl der Kerne verteilt ist.
    Während dieser Zeit (21.812281 Millisekunden) war die Gesamtzahl der konsumierten CPU -Zyklen 62.025.623, die durch 0.021812281 Sekunden geben 2.843 GHz.
  4. Wenn wir die Anzahl der Zyklen durch die Gesamtzahl der Anweisungen teilen, erhalten wir 4.9 Zyklen pro Anweisung, was bedeutet, dass jede Anweisung fast 5 CPU -Zyklen dauerte (im Durchschnitt). Wir können dies (zumindest teilweise) der Anzahl der Zweige und Zweig-Missen (siehe unten) verantwortlich machen, die CPU-Zyklen verschwenden oder missbrauchen.
  5. Wie der Befehl ausgeführt wurde, insgesamt von insgesamt 3.552.630 Zweige wurden angetroffen. Dies ist die Darstellung von Entscheidungspunkten und Schleifen auf CPU-Ebene im Code. Je mehr Zweige, desto niedriger die Leistung. Um dies auszugleichen, versuchen alle modernen CPUs, den Fluss vorherzusagen, den der Code erfolgt. 51.348 Zweig-Mitte geben an, dass die Vorhersagefunktion falsch war 1.45% der ganzen Zeit.

Das gleiche Prinzip gilt für das Sammeln von Statistiken (oder mit anderen Worten, Profiling), während eine Anwendung ausgeführt wird. Starten Sie einfach die gewünschte Bewerbung und schließen Sie sie nach einem angemessenen Zeitraum (der bei Ihnen liegt) Perf Zeigt die Statistiken auf dem Bildschirm an. Durch die Analyse dieser Statistiken können Sie potenzielle Probleme identifizieren.

Perf Top

Perf Top ähnelt dem Top-Befehl, da es ein fast Echtzeit-Systemprofil anzeigt (auch als Live-Analyse bezeichnet).

Mit dem -A Option Sie zeigen alle bekannten Ereignisstypen, während die -e Mit der Option können Sie eine bestimmte Ereigniskategorie auswählen (wie von zurückgegeben von Perfliste):

Zeigt alle Zyklenereignisse an.

Perf Top -a 

Zeigt alle CPU-Clock-bezogenen Ereignisse an.

Perf Top -e CPU -Glock 
Live -Analyse der Linux -Leistung

Die erste Spalte in der obigen Ausgabe repräsentiert den Prozentsatz der zu Beginn des Laufs entnommenen Proben, gruppiert nach Funktionsymbol und gemeinsam genutztem Objekt. Weitere Optionen sind in verfügbar Mann Perf-Top.

Perf -Rekord

Perf Aufzeichnung führt einen Befehl aus und speichert die statistischen Daten in einer Datei mit dem Namen Perf.Daten im aktuellen Arbeitsverzeichnis. Es läuft ähnlich wie perf stat.

Typ Perf -Rekord gefolgt von einem Befehl:

# Perf Record DD if =/dev/null von = test.ISO BS = 10 m Anzahl = 1 
Befehlsbefehl statistische Daten

Perf Report

Perf Report formatiert die gesammelten Daten in Perf.Daten oben in einen Leistungsbericht:

# Sudo Perf Report 
PerfLux -Leistungsbericht

Alles das oben Genannte Unterbefehle Haben Sie eine engagierte Mannseite, die als:

# Mann Perf-Subcommand 

Wo Unterbefehl entweder Liste, Stat, Spitze, aufzeichnen, oder Bericht. Dies sind die am häufigsten verwendeten Unterbefehle; Andere sind in der Dokumentation aufgeführt (siehe Abschnitt Zusammenfassung für den Link).

Zusammenfassung

In diesem Leitfaden haben wir Sie vorgestellt Perf, Ein Leistungsüberwachungs- und -analyse -Tool für Linux. Wir ermutigen Sie dringend, sich mit der Dokumentation vertraut zu machen, die in https: // perf aufrechterhalten wird.Wiki.Kernel.Org.

Wenn Sie Anwendungen finden, die einen hohen Prozentsatz an Ressourcen konsumieren, können Sie in Betracht ziehen, den Quellcode zu ändern oder andere Alternativen zu verwenden.

Wenn Sie Fragen zu diesem Artikel oder zu Vorschlägen zur Verbesserung haben, sind wir alle Ohren. Fühlen Sie sich frei, uns mit dem Kommentarformular unten zu erreichen.

Werden Sie ein Linux -zertifizierter Systemadministrator