Andere Analyse-Tools sind zu finden unter [[SystemStatus|System-Status]]
= top - Werkzeug zur Ausgabe von Linux-Prozessen =
Das Programm `top` läuft in einem Terminal und zeigt die laufenden Prozesse sowie deren Belastung auf das System. Anders als bei dem Programm `ps` wird die Ausgabe laufend aktualisiert.

Die verschiedenen Analyse-Werkzeuge haben verschiedene Stärken, man kommt nicht mit einem für alle Fälle aus.

Im Gegensatz zu [[vmstat]] hilft `top` zu ermitteln, welcher Prozess ein System lahm legt. 
Es ist zwar auch erkennbar, ob Speicher ausgelagert wird oder die CPU überlastet ist, dafür ist jedoch [[vmstat]] deutlich besser geeignet, siehe auch [[SystemStatus]].

Das Programm [[htop]] hat die gleiche Funktion wie `top`, ist in der Anwendung jedoch deutlich intuitiver. [[htop]] muss aber meist nachinstalliert werden muss, `top` ist bei jedem richtigen Linux von Haus aus dabei.

Die oberen Zeilen der `top`-Ausgabe fassen Informationen über das System zusammen, anschließend werden die Prozesse aufgelistet, siehe dieses Beispiel:

{{attachment:top.png}}

Die Anzeige ist konfigurierbar (Sortierung, Refresh-Rate ...) und man kann Signale an die Prozesse senden, um z.B. einen solchen zu beenden (mit Taste `k`). 
Die Steuerung von `top` geschieht über Tastencodes, eine Übersicht dieser Tastencodes kommt nach Eingabe von `h`. 

Hier einige wichtige Tastencode-Beispiele zur Konfiguration:

 * `F` : Fenster für Konfiguration der Sortier-Reihenfolge öffnen, dort kann z.B. durch `k` => nach CPU-Auslastung, durch `n` => nach RAM-Nutzung sortiert werden
 * `u` : Nur Prozesse eines Benutzers anzeigen
 * `k` : Ein Signal an einen Prozess senden (KILL ist default, 9 für hartnäckige Fälle)

Um das Programm zu beenden, ist ein `q` einzugeben.

Die im Screenshot angezeigten Felder haben folgende Bedeutungen:
 *PID: die [[PID||Prozess-ID]]
 *USER: der Name des Benutzers der den Prozess gestartet hat
 *PR: die Priorität des Prozesses
 *NI: der "nice value"
 *VIRT: die Menge an virtuellem Speicher die der Prozess belegt
 *RES: die resident size, also die Größe des belegten physischen Speichers des Prozesses
 *SHR: die Größe des shared memory
 *S: der Status des Prozesses. 'D' für nichtunterbrechbar schlafend, 'R' für laufend, 'S' für schlafend, 'T' für traced oder gestoppt und 'Z' für Zombie-Prozesse
 *%CPU: der prozentuelle Anteil an seit dem letzten Neu-laden der Seite durch den Prozess verbrauchten CPU Zeit
 *%MEM: der prozentuelle Anteil an physischem Speicher den der Prozess belegt
 *TIME+: die CPU-Zeit die der Prozess bislang in Anspruch genommen hat
 *COMMAND: der Name des Prozesses