• Allgemein
  • Linux Top-Befehl: Einen Überblick über Systemressourcennutzung erhalten

Linux Top-Befehl: Einen Überblick über Systemressourcennutzung erhalten

Was ist der ‚top‘-Befehl?

Der ‚top‘-Befehl ist ein leistungsstarkes Befehlszeilentool, das dir einen Echtzeit-Überblick über die Ressourcennutzung deines Linux-Systems gibt. Er bietet dir detaillierte Informationen über laufende Prozesse, CPU- und Speicherauslastung, Auslastung des virtuellen Speichers, Systemlast und mehr.

Wofür wird der ‚top‘-Befehl verwendet?

Der ‚top‘-Befehl ist ein unverzichtbares Tool für System- und Anwendungsadministratoren sowie für alle, die die Leistung und Integrität ihrer Linux-Systeme überwachen möchten. Er ermöglicht es dir, Folgendes zu tun:

  • Identifizierung von Prozessen, die Systemressourcen übermäßig beanspruchen
  • Überwachung der Gesamtsystemlast und Ermittlung von Leistungsproblemen
  • Problembehandlung bei Systemverzögerungen und Abstürzen
  • Verfolgung des Fortschritts von Hintergrundprozessen und -aufgaben
  • Optimierung der Systemleistung durch Anpassung von Ressourcenzuweisungen

Wie rufe ich den ‚top‘-Befehl auf?

Der ‚top‘-Befehl ist in den meisten Linux-Distributionen vorinstalliert. Um ihn aufzurufen, öffne ein Terminalfenster und gebe Folgendes ein:

top

Parameter und Optionen

Du kannst den ‚top‘-Befehl mit verschiedenen Parametern und Optionen aufrufen, um sein Verhalten anzupassen. Hier sind einige nützliche Optionen:

  • -d <Sekunden>: Legt das Update-Intervall in Sekunden fest (Standard: 3 Sekunden)
  • -n <Anzahl>: Begrenzt die Anzahl der angezeigten Prozesse (Standard: alle Prozesse)
  • -p <PID>: Überwacht einen bestimmten Prozess anhand seiner Prozess-ID (PID)
  • -u <Benutzername>: Filtert die Ausgabe nach einem bestimmten Benutzer
  • -H oder --header: Zeigt zusätzliche Headerinformationen in der Ausgabe an

Ausführen im Hintergrund

Du kannst den ‚top‘-Befehl auch im Hintergrund ausführen, um die Systemressourcennutzung zu überwachen, während du andere Aufgaben erledigst. Verwende dazu die Option -f oder --follow:

top -f

Dadurch wird die Echtzeitüberwachung im Hintergrund gestartet. Um die Überwachung zu beenden, drücke q.

So interpretierst du die Ausgabe des ‚top‘-Befehls

Sobald du den ‚top‘-Befehl ausgegeben hast, wird eine interaktive Anzeige angezeigt, die in Echtzeit aktualisiert wird. Die Ausgabe kann zunächst überwältigend erscheinen, aber wenn du dich mit ihr vertraut machst, wird sie zu einem wertvollen Werkzeug für das Systemressourcen-Monitoring.

Die erste Zeile: Überblick über die Systemressourcen

Die erste Zeile der ‚top‘-Ausgabe bietet einen schnellen Überblick über den Gesamtzustand deines Systems:

  • Tasks: Zeigt die Gesamtzahl der momentan laufenden Prozesse an, aufgeteilt in drei Kategorien: "running", "sleeping" und "stopped".
  • Load average: Diese drei Zahlen geben die durchschnittliche CPU-Auslastung über die letzten 1, 5 und 15 Minuten an. Ideal sind Werte unter 1,0.
  • Uptime: Zeigt die Gesamtzeit an, seit der das System hochgefahren ist.
  • Users: Zeigt die Anzahl der angemeldeten Benutzer an.

Die Kopfzeile: Spaltenüberschriften

Unter der ersten Zeile befinden sich die Spaltenüberschriften, die die verschiedenen Metriken angeben, die der ‚top‘-Befehl verfolgt:

  • PID: Die Prozess-ID (PID) identifiziert jeden Prozess eindeutig.
  • USER: Der Benutzer, der den Prozess gestartet hat.
  • PR: Die Priorität des Prozesses (niedrigere Zahlen bedeuten höhere Priorität).
  • NI: Der Nice-Wert des Prozesses (ähnlich wie die Priorität, aber von Benutzern einstellbar).
  • VIRT: Der vom Prozess verwendete virtuelle Speicher (einschließlich Code, Daten und Stack).
  • RES: Der vom Prozess verwendete residente Speicher (der Teil des virtuellen Speichers, der sich im physischen Speicher befindet).
  • SHR: Der vom Prozess gemeinsam genutzte Speicher (Speicher, der von mehreren Prozessen gemeinsam genutzt wird).
  • S: Der aktuelle Status des Prozesses ("S" für Schlaf, "R" für Ausführbar, "Z" für Zombie usw.).
  • %CPU: Der Prozentsatz der CPU-Zeit, die der Prozess in den letzten letzten 100 Millisekunden verwendet hat.
  • %MEM: Der Prozentsatz des gesamten physischen Speichers, der vom Prozess verwendet wird.
  • TIME+: Die Gesamtzeit, die der Prozess seit seinem Start verwendet hat.
  • COMMAND: Der Name des ausführbaren Prozesses.

Die Prozessliste: Metrikwerte

Unter den Spaltenüberschriften befindet sich eine Liste aller laufenden Prozesse, sortiert nach der standardmäßigen Metrik (normalerweise "%CPU"). Du kannst die Sortierreihenfolge ändern, indem du die Tastaturkürzel in der rechten unteren Ecke der Ausgabe verwendest (z. B. "P" zum Sortieren nach "%CPU" oder "M" zum Sortieren nach "%MEM").

Durch Drücken von "h" wird eine Hilfeseite mit allen verfügbaren Tastaturkürzeln angezeigt.

Zusammenfassung

Die Ausgabe des ‚top‘-Befehls bietet dir einen umfassenden Überblick über die Ressourcennutzung deines Systems. Indem du die erste Zeile, die Kopfzeile und die Prozessliste interpretierst, kannst du Systemprobleme schnell identifizieren, Prozesse überwachen und die Gesamtleistung deines Systems optimieren.

Wichtige Spalten der ‚top‘-Ausgabe

Wenn du den ‚top‘-Befehl aufrufst, wirst du mit einer Tabelle konfrontiert, die verschiedene Metriken zur Systemressourcennutzung anzeigt. Die Interpretation dieser Ausgabe kann anfangs etwas überwältigend sein, aber wenn du die Bedeutung der einzelnen Spalten verstehst, kannst du wertvolle Erkenntnisse über die Leistung deines Systems gewinnen.

CPU-Statistiken

Die Spalten %CPU, %usr, %sys, %iowait und %idle geben Aufschluss über die CPU-Auslastung.

  • %CPU: Der Gesamtprozentsatz der CPU-Zeit, die für die Ausführung von Benutzer- und Systemprozessen aufgewendet wird.
  • %usr: Der Prozentsatz der CPU-Zeit, die für die Ausführung von Anwendungscode aufgewendet wird.
  • %sys: Der Prozentsatz der CPU-Zeit, die für die Ausführung von Kernel-Code aufgewendet wird.
  • %iowait: Der Prozentsatz der CPU-Zeit, in der der Prozessor auf E/A-Vorgänge wartet.
  • %idle: Der Prozentsatz der CPU-Zeit, in der der Prozessor keine Arbeit verrichtet.

Arbeitsspeichernutzung

Die Spalten KiB Mem, KiB Swap und %Mem geben Auskunft über die Arbeitsspeichernutzung.

  • KiB Mem: Die Gesamtmenge an verwendetem Arbeitsspeicher in Kilobyte.
  • KiB Swap: Die Gesamtmenge an verwendetem Auslagerungsspeicher in Kilobyte.
  • %Mem: Der Prozentsatz des Gesamtarbeitsspeichers, der verwendet wird.

Auslastung von Prozessen

Die Spalten PID, USER, PR, NI, VIRT, RES, SHR und %CPU liefern Informationen über einzelne Prozesse.

  • PID: Die Prozess-ID, die den Prozess eindeutig identifiziert.
  • USER: Der Benutzer, der den Prozess gestartet hat.
  • PR: Die Priorität des Prozesses. Ein niedrigerer Wert weist auf eine höhere Priorität hin.
  • NI: Die nette Priorität des Prozesses, die angegeben, wie viel CPU-Zeit der Prozess im Vergleich zu anderen Prozessen erhalten soll.
  • VIRT: Die virtuelle Speichergröße des Prozesses, einschließlich Code, Daten und Stack.
  • RES: Die residente Speichergröße des Prozesses, die den im Arbeitsspeicher gehaltenen Teil des virtuellen Speichers darstellt.
  • SHR: Die gemeinsam genutzte Speichergröße des Prozesses, die den Teil des virtuellen Speichers darstellt, der mit anderen Prozessen geteilt wird.
  • %CPU: Der Prozentsatz der CPU-Zeit, die der Prozess verbraucht.

Filterung und Sortierung der ‚top‘-Ausgabe

Die rohe Ausgabe von ‚top‘ kann überwältigend sein, insbesondere auf Systemen mit vielen Prozessen. Um die Ausgabe zu bereinigen und dich auf bestimmte Informationen zu konzentrieren, kannst du Filter und Sortierfunktionen verwenden.

Filterung

Nach Prozessen: Um nach einem bestimmten Prozessnamen zu filtern, verwende die Option ‚-p‘. Beispiel:

top -p bash

Nach Benutzern: Filtere nach Prozessen, die einem bestimmten Benutzer gehören, mit der Option ‚-u‘. Beispiel:

top -u username

Nach Kommandozeilenargumenten: Filtere nach Prozessen, die bestimmte Kommandozeilenargumente enthalten, mit der Option ‚-C‘. Beispiel:

top -C "grep foo"

Sortierung

Du kannst die Ausgabe auch nach verschiedenen Spalten sortieren, um die Prozesse basierend auf ihrer Ressourcennutzung zu klassifizieren. Verwende dazu die Option ‚-o‘. Beispiel:

Sortierung nach CPU-Auslastung:

top -o %CPU

Sortierung nach Speichernutzung:

top -o %MEM

Sortierung nach virtuellem Speicher:

top -o VIRT

Mehrfach sortieren: Du kannst mehrere Sortieroptionen kombinieren. Beispiel:

top -o %CPU,%MEM

Dies sortiert die Prozesse zuerst nach CPU-Auslastung und dann nach Speichernutzung.

Kombinierte Nutzung von Filtern und Sortierung

Kombinieren von Filtern und Sortierfunktionen bietet dir eine leistungsstarke Möglichkeit, die Ausgabe von ‚top‘ zu optimieren. Beispiel:

top -u username -o %CPU,%MEM

Dies filtert Prozesse, die einem bestimmten Benutzer gehören, und sortiert sie nach CPU- und Speichernutzung.

Häufige Verwendungsfälle des ‚top‘-Befehls

Der ‚top‘-Befehl bietet eine Fülle von Informationen, die für verschiedene Aufgaben zur Systemüberwachung genutzt werden können. Einige häufige Verwendungsfälle sind:

Überwachung der CPU-Auslastung

Durch die Überwachung der Spalten "%CPU" und "COMMAND" kannst du herausfinden, welche Prozesse die meiste CPU-Zeit beanspruchen. Dies kann dir helfen, Ressourcenfresser zu identifizieren und Engpässe zu beseitigen.

Verwaltung des Arbeitsspeichers

Die Spalte "MEM %" zeigt dir den prozentualen Anteil des Arbeitsspeichers, der von jedem Prozess genutzt wird. Dies hilft dir, Speicherlecks zu erkennen und sicherzustellen, dass dein System über genügend Arbeitsspeicher verfügt.

Überwachung der Festplattenaktivität

Die Spalten "WAIT" und "DISK" geben Auskunft über Festplattenaktivitäten, wie z. B. Seitenfehler und E/A-Wartezeiten. Dies kann dir helfen, Festplattenengpässe zu identifizieren und Leistungsprobleme im Zusammenhang mit dem Speichersystem zu beheben.

Identifizierung von Bottlenecks

Durch die Analyse der Spalte "%CPU", "MEM %" und "DISK" kannst du System-Bottlenecks identifizieren. Beispielsweise kann eine hohe "%CPU" auf eine CPU-intensive Aufgabe hinweisen, während eine hohe "MEM %" auf einen Speicherengpass hindeuten kann.

Problembehandlung bei Leistungsproblemen

Der ‚top‘-Befehl ist ein wertvolles Werkzeug zur Problembehandlung bei Leistungsproblemen. Indem du die Systemressourcennutzung überwachst, kannst du ungewöhnliche Aktivitäten identifizieren, die die Systemleistung beeinträchtigen könnten.

Überwachung von Systemressourcen im Zeitverlauf

Verfolgen von Trends und Anomalien

Mithilfe von Parametern des top-Befehls kannst du Trends und Anomalien in der Systemressourcennutzung überwachen. Mit der Option -s kannst du festlegen, wie oft der Befehl in Sekunden aktualisiert werden soll. Dadurch kannst du beobachten, wie sich die Ressourcennutzung im Laufe der Zeit verändert.

Identifizierung von Spitzenlastzeiten

Indem du top über einen längeren Zeitraum hinweg mit der Option -s ausführst, kannst du Spitzenlastzeiten identifizieren, in denen die Systemressourcen stark beansprucht werden. Dies kann dir helfen, Engpässe zu ermitteln und Maßnahmen zu ergreifen, um sie zu beheben.

Analysieren von Ressourcentrends

Die regelmäßige Ausführung von top mit der Option -d (Darstellung im dynamischen Modus) ermöglicht es dir, Trends in der Ressourcennutzung darzustellen. Dies kann dir helfen, Muster zu erkennen, die auf zugrunde liegende Probleme oder Optimierungsmöglichkeiten hindeuten.

Verfolgung von historischen Daten

Die Verwendung von Tools wie sar (System Activity Reporter) oder vmstat zusammen mit top ermöglicht es dir, historische Daten zur Ressourcennutzung zu sammeln und zu analysieren. Dies kann dir helfen, langfristige Trends zu verstehen und fundierte Entscheidungen zur Systemverwaltung zu treffen.

Überwachung mehrerer Systeme

Mit der Option -m (Mehrere Systeme überwachen) kannst du top verwenden, um die Systemressourcen auf mehreren Systemen gleichzeitig zu überwachen. Dies ist nützlich für die Verwaltung großer oder verteilter Systeme, mit denen du schnell und einfach Spitzenlastzeiten und Ressourcenprobleme erkennen kannst.

Fehlerbehebung bei Leistungsproblemen

Der Befehl top ist ein wertvolles Werkzeug zur Fehlerbehebung bei Leistungsproblemen auf deinem Linux-System. Hier sind einige häufige Fragen und Themen, die dir helfen können, Probleme zu identifizieren und zu beheben:

Hohe CPU-Auslastung

  • Prüfe die Spalte %CPU: Diese Spalte zeigt die Prozentsatz der CPU-Zeit an, die von jedem Prozess genutzt wird. Prozesse mit einem hohen %CPU-Wert sind potenzielle Kandidaten für eine hohe CPU-Auslastung.
  • Suche nach Zombie-Prozessen: Zombie-Prozesse sind Prozesse, die beendet wurden, aber noch im Prozessverzeichnis des Systems vorhanden sind. Diese Prozesse können zu einer hohen CPU-Auslastung führen, da sie Ressourcen binden.
  • Überprüfe die Belastung von Kernel-Threads: Die Spalte "Threads" zeigt die Anzahl der Threads an, die für jeden Prozess ausgeführt werden. Hohe Werte für Kernel-Threads (z. B. Prozesse mit dem Namen "kworker") können auf Probleme mit dem Kernel hinweisen.

Hohe Speicherauslastung

  • Überprüfe die Spalte %MEM: Diese Spalte zeigt den Prozentsatz des physischen Speichers an, der von jedem Prozess genutzt wird. Prozesse mit einem hohen %MEM-Wert sind potenzielle Kandidaten für eine hohe Speicherauslastung.
  • Prüfe auf Speicherlecks: Speicherlecks treten auf, wenn Speicher von einem Prozess zugewiesen wird, aber nicht mehr freigegeben wird. Sie können zu einem allmählichen Anstieg der Speicherauslastung führen.
  • Überprüfe die Auslagerung: Die Spalte "SWAP" zeigt den Speicher an, der auf die Auslagerungspartition ausgelagert wurde. Eine hohe Auslagerungsrate kann auf einen Mangel an physischem Speicher hinweisen.

Hohe Netzwerk- oder Datenträgerauslastung

  • Überprüfe die Spalten %NIC und %DISK: Diese Spalten zeigen die Prozentsatz der Netzwerk- oder Datenträgerressourcen an, die von jedem Prozess genutzt werden. Prozesse mit einem hohen %NIC- oder %DISK-Wert sind potenzielle Kandidaten für Netzwerk- oder Datenträgerprobleme.
  • Suche nach Engpässen: Engpässe treten auf, wenn eine bestimmte Ressource (z. B. Netzwerkbandbreite oder Datenträger-E/A) nicht ausreicht, um die Anforderungen der Prozesse zu erfüllen. Überprüfe die Ausgabe von top auf Prozesse, die eine hohe Auslastung einer bestimmten Ressource aufweisen.
  • Verwende Analysewerkzeuge: Werkzeuge wie iostat, netstat und tcpdump können dir detailliertere Informationen über Netzwerk- und Datenträgerleistungsprobleme liefern.

Wenn du Leistungsprobleme mit deinem Linux-System identifiziert hast, kannst du geeignete Maßnahmen ergreifen, um sie zu beheben. Dies kann das Beenden fehlerhafter Prozesse, das Anpassen von Systemparametern oder das Hinzufügen zusätzlicher Ressourcen wie Arbeitsspeicher oder CPU-Kerne umfassen.