GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Tipps zur Verwendung des Top-Befehls unter Linux

Der Versuch, herauszufinden, was auf Ihrem Rechner läuft – und welcher Prozess Ihren gesamten Speicher verbraucht und die Dinge slllooowwww macht – ist eine Aufgabe, die vom Dienstprogramm top gut erfüllt wird .

top ist ein äußerst nützliches Programm, das ähnlich wie der Task-Manager von Windows oder der Aktivitätsmonitor von MacOS funktioniert. Ausführen von top auf Ihrem *nix-Rechner zeigt Ihnen eine laufende Live-Ansicht des Prozesses, der auf Ihrem System läuft.

$ top

Je nachdem welche Version von top Sie ausführen, erhalten Sie etwas, das so aussieht:

top - 08:31:32 up 1 day,  4:09,  0 users,  load average: 0.20, 0.12, 0.10
Tasks:   3 total,   1 running,   2 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.5 us,  0.3 sy,  0.0 ni, 99.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   4042284 total,  2523744 used,  1518540 free,   263776 buffers
KiB Swap:  1048572 total,        0 used,  1048572 free.  1804264 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
    1 root      20   0   21964   3632   3124 S   0.0  0.1   0:00.23 bash
  193 root      20   0  123520  29636   8640 S   0.0  0.7   0:00.58 flask
  195 root      20   0   23608   2724   2400 R   0.0  0.1   0:00.21 top

Ihre Version von top kann davon abweichen, insbesondere in den angezeigten Spalten.

So lesen Sie die Ausgabe

Sie können anhand der Ausgabe erkennen, was Sie ausführen, aber der Versuch, die Ergebnisse zu interpretieren, kann etwas verwirrend sein.

Die ersten Zeilen enthalten eine Reihe von Statistiken (die Details), gefolgt von einer Tabelle mit einer Liste der Ergebnisse (die Liste). Fangen wir mit letzterem an.

Die Liste

Weitere Linux-Ressourcen

  • Spickzettel für Linux-Befehle
  • Spickzettel für fortgeschrittene Linux-Befehle
  • Kostenloser Online-Kurs:RHEL Technical Overview
  • Spickzettel für Linux-Netzwerke
  • SELinux-Spickzettel
  • Spickzettel für allgemeine Linux-Befehle
  • Was sind Linux-Container?
  • Unsere neuesten Linux-Artikel

Dies sind die Prozesse die auf dem System laufen. Standardmäßig sind sie nach CPU-Auslastung in absteigender Reihenfolge sortiert. Das bedeutet, dass die Elemente ganz oben in der Liste mehr CPU-Ressourcen verbrauchen und Ihr System stärker belasten. Sie sind buchstäblich die "obersten" Prozesse nach Ressourcenverbrauch. Sie müssen zugeben, es ist ein cleverer Name.

Der COMMAND Spalte ganz rechts gibt den Namen des Prozesses an (den Befehl, den Sie ausgeführt haben, um sie zu starten). In diesem Beispiel sind sie bash (ein Befehlsinterpreter, auf dem wir top ausführen in), flask (ein in Python geschriebenes Web-Mikro-Framework) und top selbst.

Die anderen Spalten enthalten nützliche Informationen zu den Prozessen:

  • PID :die Prozess-ID , eine eindeutige Kennung zur Adressierung der Prozesse
  • USER :der Benutzer, der den Prozess ausführt
  • PR :die Priorität der Aufgabe
  • NI :eine schönere Darstellung der Priorität
  • VIRT :Größe des virtuellen Speichers in KiB (Kibibyte)*
  • RES :Größe des residenten Speichers in KiB* (der "physische Speicher" und eine Teilmenge von VIRT)
  • SHR :Shared-Memory-Größe in KiB* (der „Shared-Memory“ und eine Teilmenge von VIRT)
  • S :Prozesszustand, normalerweise I =leer, R =laufend, S =schlafend, Z =Zombie, T oder t =stopped (es gibt auch andere, weniger gebräuchliche Optionen)
  • %CPU :Prozentsatz der CPU-Auslastung seit der letzten Bildschirmaktualisierung
  • %MEM :Prozentsatz von RES Speicherverbrauch seit der letzten Bildschirmaktualisierung
  • TIME+ :Gesamte verwendete CPU-Zeit seit dem Start des Prozesses
  • COMMAND :der Befehl, wie oben beschrieben

*Genau zu wissen, was der VIRT ist , RES , und SHR Werte repräsentieren nicht wirklich wichtig im Betriebsalltag. Wichtig zu wissen ist, dass der Prozess mit den meisten VIRT ist der Prozess, der den meisten Speicher verwendet. Wenn Sie top sind weil Sie debuggen, warum sich Ihr Computer anfühlt, als wäre er in einer Melassepfütze, dem Prozess mit dem größten VIRT Nummer ist der Übeltäter. Wenn Sie genau erfahren möchten, was "gemeinsam genutzter" und "physischer" Speicher bedeuten, sehen Sie sich "Linux-Speichertypen" im oberen Handbuch an.

Und ja, ich wollte kibi schreiben Bytes, nicht kilo Bytes. Der Wert von 1.024, den man normalerweise ein Kilobyte nennt, ist eigentlich ein Kibibyte. Das griechische Kilo ("χίλιοι") bedeutet tausend und bedeutet 1.000 von etwas (z. B. ein Kilometer sind tausend Meter, ein Kilogramm ist tausend Gramm). Kibi ist ein Portmanteau von Kilo und Byte , und es bedeutet 1.024 Bytes (oder 2). Aber weil Worte schwer zu sagen sind, sagen viele Leute Kilobyte wenn sie 1.024 Bytes bedeuten. Das alles bedeutet top versucht, hier die richtigen Begriffe zu verwenden, also machen Sie einfach mit. #themoreyounow ?.

Ein Hinweis zu Bildschirmaktualisierungen:

Live-Bildschirmaktualisierungen gehören objektiv zu den wirklich coolen Dingen Linux-Programme können das. Das bedeutet, dass sie ihre eigene Anzeige in Echtzeit aktualisieren können, sodass sie animiert erscheinen. Obwohl sie Text verwenden. So cool! In unserem Fall ist die Zeit zwischen Updates wichtig, da einige unserer Statistiken (%CPU und %MEM ) basieren auf dem Wert seit der letzten Bildschirmaktualisierung.

Und weil wir in einer dauerhaften Anwendung laufen, können wir Tastenbefehle drücken, um Live-Änderungen an Einstellungen oder Konfigurationen vorzunehmen (anstatt beispielsweise die Anwendung zu schließen und die Anwendung mit einem anderen Befehlszeilen-Flag erneut auszuführen).

Geben Sie h ein ruft den "Hilfe"-Bildschirm auf, der auch die standardmäßige Verzögerung anzeigt (die Zeit zwischen Bildschirmaktualisierungen). Standardmäßig beträgt dieser Wert (ungefähr) drei Sekunden, aber Sie können ihn ändern, indem Sie d eingeben (vermutlich für "delay") oder s (wahrscheinlich für "Bildschirm" oder "Sekunden").

Die Details

Oberhalb der Liste der Prozesse gibt es eine ganze Reihe weiterer nützlicher Informationen. Einige dieser Details mögen seltsam und verwirrend aussehen, aber sobald Sie sich etwas Zeit nehmen, um sie durchzugehen, werden Sie sehen, dass sie sehr nützliche Statistiken sind, die Sie im Notfall abrufen können.

Die erste Zeile enthält allgemeine Systeminformationen

  • top :Wir führen top aus ! Hallo top !
  • XX:YY:XX :die Uhrzeit, die bei jeder Bildschirmaktualisierung aktualisiert wird
  • up (dann X day, YY:ZZ ):die Betriebszeit des Systems oder wie viel Zeit vergangen ist, seit das System eingeschaltet wurde
  • load average (dann drei Zahlen):die Systemlast in den letzten 1, 5 bzw. 15 Minuten

Die zweite Zeile (Tasks ) zeigt Informationen zu den laufenden Aufgaben und ist ziemlich selbsterklärend. Es zeigt die Gesamtzahl der Prozesse und die Anzahl der laufenden, schlafenden, gestoppten und Zombie-Prozesse. Dies ist buchstäblich eine Summe von S (Zustand ) oben beschriebene Spalte.

Die dritte Zeile (%Cpu(s) ) zeigt die CPU-Auslastung getrennt nach Typen. Die Daten sind die Werte zwischen Bildschirmaktualisierungen. Die Werte sind:

  • us :Benutzerprozesse
  • sy :Systemprozesse
  • ni :nette Benutzerprozesse
  • id :die Leerlaufzeit der CPU; eine hohe Leerlaufzeit bedeutet, dass sonst nicht viel los ist
  • wa :Wartezeit oder Wartezeit für den Abschluss der E/A
  • hi :Wartezeit für Hardware-Interrupts
  • si :Wartezeit für Software-Interrupts
  • st :„Zeit, die dieser VM durch den Hypervisor gestohlen wurde“

Sie können die Tasks reduzieren und %Cpu(s) Zeilen, indem Sie t eingeben (für "toggle").

Der vierte (KiB Mem ) und fünfte Reihe (KiB Swap ) liefern Informationen für Speicher und Swap. Diese Werte sind:

  • total
  • used
  • free

Aber auch:

  • Speicher buffers
  • tausche cached Mem aus

Standardmäßig werden sie in KiB aufgelistet, aber drücken Sie E (für „Speicherskalierung erweitern“) durchläuft verschiedene Werte:Kibibyte, Mebibyte, Gibibyte, Tebibyte, Pebibyte und Exbibyte. (Das heißt, Kilobyte, Megabyte, Gigabyte, Terabyte, Petabyte und Exabyte, aber ihre "richtigen Namen".)

Die top Benutzerhandbuch zeigt noch mehr Informationen über nützliche Flags und Konfigurationen. Um das Handbuch auf Ihrem System zu finden, können Sie man top ausführen . Es gibt verschiedene Websites, die eine HTML-Darstellung des Handbuchs zeigen, aber beachten Sie, dass diese möglicherweise für eine andere Version von top gelten .

Zwei Top-Alternativen

Sie müssen nicht immer top verwenden zu verstehen, was los ist. Abhängig von Ihren Umständen können Ihnen andere Tools bei der Diagnose von Problemen helfen, insbesondere wenn Sie eine grafischere oder spezialisiertere Benutzeroberfläche wünschen.

top

htop ist sehr ähnlich wie top , aber es bringt etwas äußerst Nützliches auf den Tisch:eine grafische Darstellung der CPU- und Speichernutzung.

So sieht die Umgebung aus, die wir in top untersucht haben sucht in htop . Die Anzeige ist viel einfacher, aber immer noch reich an Funktionen.

Unsere Aufgabenanzahl, Auslastung, Betriebszeit und Prozessliste sind immer noch vorhanden, aber wir erhalten eine raffinierte, farbige, animierte Ansicht der CPU-Auslastung pro Kern und ein Diagramm der Speichernutzung.

Hier ist, was die verschiedenen Farben bedeuten (Sie können diese Informationen auch erhalten, indem Sie h drücken für "Hilfe").

Prioritäten oder Typen von CPU-Aufgaben:

  • blau:niedrige Priorität
  • grün:normale Priorität
  • rot:Kernel-Tasks
  • blau:virtualisierte Aufgaben
  • Der Wert am Ende des Balkens ist der Prozentsatz der verwendeten CPU

Speicher:

  • grün:belegter Speicher
  • blau:gepufferter Speicher
  • Gelb:Zwischenspeicher
  • die Werte am Ende des Balkens zeigen den belegten und den gesamten Speicher

Wenn Farben für Sie nicht nützlich sind, können Sie htop -C ausführen um sie zu deaktivieren; statt htop wird verschiedene Symbole verwenden, um die CPU- und Speichertypen zu trennen.

Unten befindet sich eine nützliche Anzeige aktiver Funktionstasten, mit denen Sie beispielsweise Ergebnisse filtern oder die Sortierreihenfolge ändern können. Probieren Sie einige der Befehle aus, um zu sehen, was sie bewirken. Seien Sie nur vorsichtig, wenn Sie F9 ausprobieren . Dadurch wird eine Liste von Signalen angezeigt, die einen Prozess beenden (d. h. stoppen). Ich würde vorschlagen, diese Optionen außerhalb einer Produktionsumgebung zu erkunden.

Der Autor von htop , Hisham Muhammad (und ja, es heißt htop nach Hisham) hielt einen Blitzvortrag über htop auf der FOSDEM 2018 im Februar. Er erklärte, wie htop hat nicht nur ordentliche Grafiken, sondern zeigt auch modernere statistische Informationen über Prozesse, die ältere Überwachungsprogramme (wie top ) nicht.

Sie können mehr über htop lesen auf der Handbuchseite oder der htop-Website. (Warnung:Die Website enthält einen animierten Hintergrund von htop .)

Docker-Statistiken

Wenn Sie mit Docker arbeiten, können Sie docker stats ausführen um eine kontextreiche Darstellung dessen zu generieren, was Ihre Container tun.

Dies kann hilfreicher sein als top weil Sie nicht nach Prozessen, sondern nach Containern trennen. Dies ist besonders nützlich, wenn ein Container langsam ist, da es schneller ist, zu sehen, welcher Container die meisten Ressourcen verwendet, als top auszuführen und versuchen, den Prozess dem Container zuzuordnen.

Die obigen Erläuterungen zu Akronymen und Deskriptoren in top und htop sollte es einfach machen, die in docker stats zu verstehen . Die Docker-Statistikdokumentation enthält jedoch hilfreiche Beschreibungen zu jeder Spalte.


Linux
  1. Linux-Tipps zur Verwendung von Cron zum Planen von Aufgaben

  2. 7 praktische Tricks zur Verwendung des Linux-wget-Befehls

  3. 8 Tipps für die Linux-Kommandozeile

  4. Meine Top 10 Terminal-Shortcuts für Linux

  5. Zähmen des tar-Befehls:Tipps zum Verwalten von Backups unter Linux

Formatierungstricks für den Linux-Datumsbefehl

Der Linux-Top-Befehl

Tutorial zur Verwendung des Timeout-Befehls unter Linux

Tutorial zur Verwendung des letzten Befehls im Linux-Terminal

Ein praktischer Leitfaden für den Chroot-Befehl unter Linux

Linux-Top-Befehl