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 ProzesseUSER
:der Benutzer, der den Prozess ausführtPR
:die Priorität der AufgabeNI
:eine schönere Darstellung der PrioritätVIRT
: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 vonRES
Speicherverbrauch seit der letzten BildschirmaktualisierungTIME+
:Gesamte verwendete CPU-Zeit seit dem Start des ProzessesCOMMAND
: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ührentop
aus ! Hallotop
!XX:YY:XX
:die Uhrzeit, die bei jeder Bildschirmaktualisierung aktualisiert wirdup
(dannX day, YY:ZZ
):die Betriebszeit des Systems oder wie viel Zeit vergangen ist, seit das System eingeschaltet wurdeload 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
:Benutzerprozessesy
:Systemprozesseni
:nette Benutzerprozesseid
:die Leerlaufzeit der CPU; eine hohe Leerlaufzeit bedeutet, dass sonst nicht viel los istwa
:Wartezeit oder Wartezeit für den Abschluss der E/Ahi
:Wartezeit für Hardware-Interruptssi
:Wartezeit für Software-Interruptsst
:„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.