VMware ESXi and vSphere Cluster Management
Linux-Systemauslastung mit top analysieren
Lerne, mit top laufende Linux-Prozesse, CPU- und RAM-Verbrauch zu überwachen, zu sortieren, zu bewerten und kontrolliert zu beenden.
top ist ein interaktives Linux-Werkzeug, das den Systemzustand und laufende Prozesse fortlaufend im Terminal anzeigt. Damit findest du unter anderem Prozesse mit hoher CPU-Last oder hohem Speicherverbrauch, prüfst deren Besitzer und kannst bei Bedarf ein Signal zum Beenden senden.
Diese Anleitung setzt grundlegende Terminalbedienung und ein Verständnis von Prozessen voraus. Ein Prozess ist eine ausgeführte Instanz eines Programms. Die PID (Process ID) ist seine eindeutige Kennung.
Was ist top und wann wird es verwendet?
Nach dem Start aktualisiert top seine Anzeige regelmäßig. Du siehst dadurch nicht nur einen einzelnen Zustand, sondern auch Veränderungen und kurzfristige Lastspitzen.
Das unterscheidet top vom häufig verwendeten Befehl ps: ps liefert normalerweise eine Momentaufnahme der Prozesse, während top eine laufende Beobachtung ermöglicht.
- Hohe CPU- oder Speicherauslastung untersuchen
- Ressourcenintensive Prozesse finden
- Prozessbesitzer und gestartete Kommandos identifizieren
- Auffällige Tasks über mehrere Aktualisierungen beobachten
- Bei einer fehlerhaften Anwendung kontrolliert ein Signal senden
Ein hoher Messwert ist dabei zunächst ein Hinweis, kein Beweis für einen Fehler. Ein Backup, eine Kompilierung oder ein Datentransfer darf vorübergehend viel CPU oder Speicher verwenden.
top starten und beenden
Starte das Programm in einem Terminal mit:
top
Danach wechselt das Terminal in die interaktive Ansicht. Die Tastenkürzel werden normalerweise direkt innerhalb von top eingegeben; die Eingabetaste ist bei den einfachen Befehlen meist nicht erforderlich.
Mit q verlässt du die Ansicht:
q
Aufbau der top-Anzeige
Die Anzeige besteht im Wesentlichen aus einem Kopfbereich und einer Prozessliste.
Kopfbereich
Der Kopfbereich fasst den Zustand des Systems zusammen. Je nach Version enthält er unter anderem:
- Laufzeit des Systems und aktuelle Uhrzeit
- Anzahl angemeldeter Benutzer
- Load Average für mehrere Zeiträume
- Anzahl und Zustände der Prozesse
- CPU-Zeitanteile, etwa Benutzerprozesse, Kernelaktivität und E/A-Wartezeit
- Arbeitsspeicher und Swap-Nutzung
Der Load Average beschreibt vereinfacht, wie viele Tasks im Mittel ausführbar sind oder auf bestimmte, nicht unterbrechbare E/A-Vorgänge warten. Er ist deshalb nicht identisch mit einem CPU-Prozentwert. Auf einem System mit mehreren CPU-Kernen kann ein Load Average von 4 anders zu bewerten sein als auf einem Einkernsystem.
Prozessliste
Unterhalb des Kopfbereichs steht die zentrale Tabelle der laufenden Prozesse. Die Werte werden periodisch aktualisiert. Dadurch können auch kurze Lastspitzen sichtbar werden, die eine einzelne Momentaufnahme möglicherweise verpasst.
Wichtige Spalten in top
Weitere häufige Felder
- S oder STATUS beschreibt den Prozesszustand, beispielsweise laufend, wartend oder beendet.
- TIME+ zeigt die insgesamt vom Prozess verbrauchte CPU-Zeit, nicht nur den momentanen Prozentwert.
- SHR bezeichnet typischerweise gemeinsam nutzbaren Speicher. Dieser Wert ist bei der RAM-Bewertung nicht einfach zusätzlich zu
RESzu addieren.
CPU-, Speicher- und Systemlast richtig bewerten
CPU-Werte
Ein hoher %CPU-Wert bedeutet, dass ein Prozess aktuell viel Rechenzeit beansprucht. Das kann auf eine Endlosschleife, eine fehlerhafte Anwendung oder einen erwarteten Rechenjob hinweisen. Beobachte den Wert über mehrere Aktualisierungen, bevor du eingreifst.
Unterscheide drei Fragen:
- Hoher Wert eines einzelnen Prozesses: Dieser Prozess ist ein möglicher CPU-Verursacher.
- Hohe Gesamtauslastung: Viele Prozesse können zusammen die verfügbaren CPU-Kapazitäten auslasten, auch wenn keiner allein extrem auffällt.
- Hoher Load Average: Es gibt viele ausführbare oder auf bestimmte E/A-Vorgänge wartende Tasks. Das kann auch bei geringer momentaner CPU-Auslastung auf Speicher- oder Datenträgerprobleme hindeuten.
Speicherwerte
Ein hoher RES- oder %MEM-Wert ist ein Hinweis auf einen speicherintensiven Prozess. Prüfe zusätzlich die Speicherzusammenfassung im Kopfbereich und beobachte, ob der Verbrauch weiter wächst.
VIRT allein darf nicht als tatsächlicher RAM-Verbrauch interpretiert werden. Ein Prozess kann einen großen virtuellen Adressraum reservieren, während nur ein deutlich kleinerer Teil als RES im physischen RAM liegt. Für die praktische Bewertung sind daher meist RES, %MEM und die Systemwirkung wichtiger.
Die Prozessliste sortieren
Die Standardsortierung zeigt gewöhnlich Prozesse mit hoher CPU-Nutzung zuerst. Die Sortierung hilft dir, die Liste an die aktuelle Diagnosefrage anzupassen.
Für die CPU-Diagnose drückst du P und beobachtest die obersten Prozesse. Für die Speicheranalyse öffnest du top, drückst M und vergleichst insbesondere RES und %MEM. Mit R lässt sich die aktuelle Reihenfolge umkehren.
Die genaue Darstellung und einzelne Tastenkürzel können sich zwischen top-Versionen leicht unterscheiden. Mit h öffnest du die lokale Hilfe. Vor produktiven Eingriffen solltest du sie und die ausgewählte Prozesszeile prüfen.
Beispiel: CPU-intensiven Prozess finden
- Starte
top. - Aktiviere mit
Pdie Sortierung nach CPU-Nutzung. - Beobachte den Prozess mit dem höchsten
%CPU-Wert über mehrere Aktualisierungen. - Notiere
PID,USERundCOMMAND. - Ordne die Aktivität ein: Handelt es sich beispielsweise um eine Kompilierung, ein Backup oder eine unerwartete Anwendung?
Beispiel: größten Speicherverbraucher ermitteln
- Öffne
topund drückeM. - Vergleiche bei den obersten Prozessen
RESund%MEM. - Prüfe, ob der Speicherverbrauch stabil bleibt oder über mehrere Aktualisierungen wächst.
- Bewerte
VIRTnur zusammen mitRES; ein hoher virtueller Wert beweist keinen hohen RAM-Verbrauch.
Prozesse mit top beenden
Mit k kannst du aus top heraus ein Signal an einen Prozess senden. Der typische Ablauf ist:
- Markiere gedanklich die richtige Zeile und prüfe
PID,USERundCOMMAND. - Drücke
k. - Gib die PID des Zielprozesses ein, falls sie abgefragt wird.
- Wähle ein Signal oder bestätige das vorgeschlagene Signal.
- Beobachte, ob der Prozess aus der Liste verschwindet.
Ein reguläres Beendigungssignal ist SIGTERM. Es bittet das Programm, kontrolliert zu beenden. Die Anwendung kann Dateien schließen, Daten sichern oder Aufräumarbeiten durchführen.
SIGKILL beendet einen Prozess sofort und kann nicht vom Prozess abgefangen werden. Es sollte nur als letzte Möglichkeit eingesetzt werden, wenn ein reguläres Beenden nicht funktioniert. Ein erzwungener Abbruch kann Datenverlust oder inkonsistente Zustände verursachen.
Diagnoseablauf bei auffälliger Auslastung
- Verursacher identifizieren: Sortiere nach CPU mit
Poder nach Speicher mitM. - Prozess bestätigen: Prüfe PID, Benutzer, Kommando, Status und wiederholte Werte.
- Ursache einordnen: Ein Prozess wie
ddkann zu einem erwarteten Kopier-, Backup- oder Datentransfervorgang gehören. - Weitere Informationen sammeln: Bei unbekannten oder dauerhaft auffälligen Prozessen sind zusätzliche Prozess- und Loganalyse sowie die Prüfung zugehöriger Dienste sinnvoll.
- Kontrolliert handeln: Beende eine Anwendung nur nach der Prüfung oder verwalte den zuständigen Dienst über seine Dienstverwaltung.
Typische Probleme und ihre Lösung
Ein Prozess beansprucht nahezu die gesamte CPU
Sortiere mit P, identifiziere den Prozess über PID, USER und COMMAND und beobachte mehrere Aktualisierungen. Ist die Aktivität erwartet, solltest du den Prozess weiterlaufen lassen. Bei einer fehlerhaften Anwendung kommt zunächst ein reguläres Beenden infrage. Bei einem Dienst ist die übergeordnete Dienstverwaltung zu berücksichtigen.
Das System ist träge, aber kein Prozess hat extrem hohe CPU-Werte
Betrachte Gesamtauslastung, Load Average, Prozesszustände und mögliche E/A-Wartezeiten. Die Ursache kann bei Arbeitsspeicher, Datenträgern, Netzwerkaktivität oder einem Dienst liegen. Nutze für die weitere Untersuchung passende Werkzeuge, statt vorschnell einen Prozess zu beenden.
Ein hoher VIRT-Wert wirkt wie ein Speicherproblem
Prüfe RES und %MEM. Ein großer virtueller Adressraum kann bei moderatem residentem Speicher normal sein. Stütze deine Bewertung auf den tatsächlichen RAM-Anteil und die Auswirkung auf das System.
Ein beendeter Prozess erscheint sofort wieder
Ein Service-Manager, Supervisor, Container oder Cron-Job kann den Prozess automatisch neu starten. Untersuche die übergeordnete Start- oder Dienstkonfiguration. Nur dieselbe PID erneut zu beenden, löst die Ursache nicht.
Die falsche PID soll beendet werden
PIDs ändern sich, und ähnliche Prozessnamen können zu Verwechslungen führen. Gleiche vor dem Drücken von k immer PID, Benutzer, vollständiges Kommando und Zweck ab.
Prüfungsrelevante Zusammenfassung
topzeigt Systemzustand und Prozesse laufend;psliefert typischerweise eine Momentaufnahme.PIDidentifiziert den Prozess,USERden Besitzer undCOMMANDdas gestartete Programm.%CPUbeschreibt den momentanen CPU-Anteil;%MEMden Anteil am physischen RAM.VIRTist nicht gleich tatsächlich belegter Arbeitsspeicher. Für RAM-Fragen sindRESund%MEMwichtiger.Psortiert nach CPU,Mnach Speicher undRkehrt die Sortierrichtung um.kstartet das Senden eines Signals. SIGTERM ist der reguläre erste Versuch, SIGKILL der nicht abfangbare Notabbruch.- Vor jedem Eingriff Prozessidentität, Besitzer, Funktion und wiederholte Messwerte prüfen.
Für die punktuelle Prozessaufnahme ist die Analyse der Linux-Systemauslastung mit top ein guter Ausgangspunkt. Für weiterführende Untersuchungen gehören unter anderem ps, free, vmstat, uptime und die Verwaltung zugehöriger Dienste zur Werkzeugauswahl.