7.3 Prozesse überwachen – ps, top, kpm
 
Das Kommando ps liefert Ihnen Informationen über den Status von aktiven Prozessen und ist eines der wichtigsten Tools für den Systemadministrator. Mit ps lassen sich die aktuelle PID, die UID, der Steuerterminal, der Speicherbedarf eines Prozesses, die CPU-Zeit, der aktuelle Status des Prozesses und noch eine Menge mehr anzeigen. Das Kommando ist leider über die vielen Jahre hinweg etwas unübersichtlich geworden und besitzt unüberschaubar viele Optionen, wobei einige ohne ein führendes Minuszeichen, andere mit dem führenden Minuszeichen und wiederum weitere Optionen mit zwei führenden Minuszeichen aufgerufen werden. Da ich Ihnen hier keine Kommandoreferenz liefern will, seien Ihnen für die einzelnen Optionen die Manual Pages von ps ans Herz gelegt. Das Kommando ps steht für eine Abkürzung von print process status. Ich will Ihnen hier nur kurz die Bedeutungen der Ausgabe von ps erklären. Im Beispiel wird die Option -lf verwendet, womit Sie eine vollständige und ausführliche Informationsliste erhalten. Mit »ps x« werden die Prozesse angezeigt, die kein CTTY haben.
Hinweis In Wirklichkeit gibt es keine echten, d. h. antiken Terminals mehr; jedoch ist ein Terminal eigentlich nur die Bezeichnung für »Ein- und Ausgabegerät«. Selbst z. B. ein Telefon wäre – und eigentlich ist – ein Terminal, mit Ein- und Ausgabe (Sprechen/Hören). Abbildungen von echten antiken Terminals finden Sie z. B. hier: http://www.schrotthal.de/dec/terminal/.
|
Geben Sie z. B. in einem Xterm folgendes ps-Kommando ein:
$ ps x -lf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
...
Sie erhalten eine ganze Palette von Informationen zu den laufenden Prozessen auf Ihrem Rechner. Einige dieser Spalten mit Überschriften und deren Bedeutung können Sie der folgenden Tabelle entnehmen.
Tabelle 7.2
Bedeutung einiger Spalten bei der Ausgabe mit ps
Zeichen
|
Bedeutung
|
S oder auch STAT
|
Prozesszustand:
S – sleeping (Prozess schläft)
D – Prozess ist in einem ununterbrechbaren Schlaf
I – idle (Prozess wird gerade erzeugt)
L – locked (eine Seite im Hauptspeicher wurde gesperrt)
O – Prozess, der gerade die CPU beansprucht
R – running (Prozess wartet auf den Prozessor)
|
S oder auch STAT
(Forts.)
|
Z – Zombie (Prozess wurde beendet, aber Elternprozess hat noch nicht aufgeräumt)
X – Prozess wartet auf freien Speicher
T – Unterbrochen (gestoppt)
W – Prozess ist ausgelagert
|
UID
|
UID des Prozessbesitzers (mit der Option -f wird der Name angegeben)
|
PID
|
Prozessnummer
|
PRI
|
Priorität (große Nummer = kleinerer Nice-Wert)
|
NI
|
nice-Wert
|
SZ bzw. VSZ
|
virtuelle Prozessgröße in Seiten (KB, auf Pages aufgerundet)
|
ADDR
|
Speicheradresse des Prozesses
|
WCHAN
|
Funktion im Kernelspace, in welcher der Prozess sich gerade befindet. Ist der Prozess im Userspace, ist dieses Feld leer
|
STIME
|
Wann der Prozess gestartet wurde, in HH:MM:SS
|
TIME
|
Wie lange der Prozess bereits die CPU benötigt (MM:SS), wobei die Minuten/Sekunden der Zeit entsprechen, die der Prozess gebraucht hätte, hätte er die CPU die ganze Zeit mit 100 % beansprucht
|
TTY
|
Steuerterminal ŕ bei ? ist kein Steuerterminal mit dem Prozess assoziiert. In den meisten Fällen handelt es sich dabei um einen Dämonprozess.
|
CMD
|
Kommandoname des Prozesses
|
Weitere gängige Überschriften und deren Bedeutung (z. B. mit ps aux) sind:
Tabelle 7.3
Weitere Bedeutungen der Ausgabe von ps
Zeichen
|
Bedeutung
|
USER
|
Prozesseigentümer
|
%CPU
|
CPU-Belastung (Decaying Average-Modell) des Prozesses in Prozent
|
%MEM
|
Speicherbelastung des Prozesses in Prozent des physikalischen Speichers
|
VSZ
|
virtuelle Prozessgröße in KB
|
RSS
|
Anzahl von KB-Pages im Speicher (physikalischer RAM, nicht Swap)
|
Das %CPU-Feld mag nicht immer stimmen (es ist möglich, dass zwei Prozesse mit je 80 % aufgelistet werden, was auf einem Uniprozessor nicht möglich ist), das liegt an dem mathematischen Algorithmus, der hier angewandt wird. Wie schon dessen Name »Decaying Average« sagt, ist dieser Wert ein Durchschnitt über die Zeit. top zeigt die Prozentwerte, wie man es erwartet, also mit einem »punktgenauen« Algorithmus auf die letzten drei (einstellbaren) Sekunden.
Wie schon bereits zu Beginn erwähnt, ist das Kommando ps mittlerweile ein ziemlicher Dschungel geworden, so dass es sinnvoll sein kann, sich intensiver mit diesem Kommando auseinander zu setzen.
Da ps nur den momentanen Prozesszustand ausgibt, lässt sich eigentlich schwer sagen, was genau passiert. Wollen Sie die Prozesse aktiv und dauerhaft überwachen, dann ist das Kommando top Ihr Freund. Gewöhnlich aktualisiert top alle drei Sekunden die Anzeige und benötigt somit auch relativ wenige Systemressourcen. Außerdem können Sie mit diesem Überwachungsprogramm auch Signale senden und ein renice ausführen. Drücken Sie einfach während der Ausführung von top (h) für mehr Informationen.
Natürlich stehen Ihnen auch komfortablere Programme zur Prozessüberwachung mit einer grafischen Oberfläche zur Verfügung. Bei GNOME wäre dies z. B. gtop und bei KDE ktop und ksysguard. Die grafischen Frontends sind natürlich auch wesentlich einfacher zu bedienen und bieten auch weit mehr Komfort. Damit lassen sich verrückt spielende Prozesse mit einem Mausklick »killen«, sofern solche verrückten Prozesse top oder ihren grafischen Brüdern noch ein bisschen Prozessorzeit überlassen.
Hinweis Da X einiges an Ressourcen verwendet, ist man natürlich mit top im Pseudoterminal wesentlich schneller unterwegs …
|
|