Die zehn wichtigsten Befehle für die Linux-Systemüberwachung

Entfesseln Sie die Leistungsfähigkeit der Linux-Systemüberwachung mit diesem umfassenden Leitfaden zu den zehn wichtigsten Befehlen. Erfahren Sie, wie Sie `top`, `htop`, `vmstat`, `iostat`, `free`, `df`, `du`, `sar`, `ss` und `uptime` verwenden, um Echtzeit-Einblicke in CPU, Speicher, Festplatten-I/O und Netzwerkleistung zu erhalten. Dieser Artikel bietet praktische Beispiele, Erklärungen zu wichtigen Metriken und umsetzbare Tipps, um Systemadministratoren dabei zu helfen, Probleme effizient zu diagnostizieren, die Ressourcennutzung zu verfolgen und die Stabilität ihrer Linux-Systeme zu gewährleisten.

36 Aufrufe

Die zehn wichtigsten Befehle für die Linux-Systemüberwachung

Linux-Systeme sind das Rückgrat unzähliger Anwendungen, Dienste und Infrastrukturkomponenten weltweit. Die Gewährleistung ihrer Stabilität, Leistung und Ressourcenverfügbarkeit ist eine kritische Verantwortung für jeden Systemadministrator. Proaktive Überwachung hilft dabei, Engpässe zu identifizieren, Probleme vorherzusehen und einen optimalen Systemzustand aufrechtzuerhalten, bevor Probleme eskalieren.

Dieser Artikel befasst sich mit den zehn wichtigsten Befehlen, die jeder Linux-Administrator beherrschen sollte, um die Systemleistung in Echtzeit zu analysieren und die Ressourcen zu verfolgen. Diese Tools liefern unschätzbare Einblicke in verschiedene Aspekte Ihres Systems, von der CPU- und Speichernutzung bis hin zur Festplatten-I/O und Netzwerkaktivität. Durch das Verständnis und die regelmäßige Verwendung dieser Befehle können Sie Leistungsprobleme effizient diagnostizieren, Ressourcenfresser identifizieren und sicherstellen, dass Ihre Linux-Systeme reibungslos laufen.

Ob Sie einen langsamen Server diagnostizieren, die Ressourcenzuweisung optimieren oder einfach routinemäßige Integritätsprüfungen durchführen – die hier behandelten Befehle bilden die Grundlage für eine effektive Linux-Systemüberwachung. Lassen Sie uns diese unverzichtbaren Tools erkunden und wie Sie sie für eine gesündere und leistungsfähigere Linux-Umgebung nutzen können.

1. top – Echtzeit-Prozessaktivität

Der Befehl top bietet eine dynamische Echtzeitansicht eines laufenden Linux-Systems. Er zeigt eine Zusammenfassung der Systeminformationen und eine Liste der Prozesse oder Threads, die derzeit vom Linux-Kernel verwaltet werden. Es ist oft das erste Werkzeug, zu dem Administratoren für einen schnellen Überblick über die Systemaktivität greifen.

Wichtige Metriken:

  • CPU-Auslastung: us (User), sy (System), ni (Nice), id (Idle), wa (I/O Wait), hi (Hardware IRQ), si (Software IRQ), st (Steal Time).
  • Speichernutzung: Gesamt, frei, verwendet, Puffer/Cache.
  • Swap-Nutzung: Gesamt, frei, verwendet.
  • Prozessliste: PID, Benutzer, PR (Priorität), NI (Nice-Wert), VIRT (virtueller Speicher), RES (residenter Speicher), SHR (gemeinsamer Speicher), S (Status), %CPU, %MEM, TIME+, BEFEHL (COMMAND).

Grundlegende Verwendung:

top

Praktische Beispiele:

  • Nach CPU-Auslastung sortieren: Drücken Sie im top-Fenster P.
  • Nach Speichernutzung sortieren: Drücken Sie im top-Fenster M.
  • Prozesse eines bestimmten Benutzers anzeigen: Drücken Sie im top-Fenster u und geben Sie dann den Benutzernamen ein.
  • Einen Prozess beenden (Kill): Drücken Sie im top-Fenster k und geben Sie die PID ein.

Tipps:

  • Drücken Sie 1, um die Anzeige einzelner CPU-Kerne umzuschalten.
  • Drücken Sie q, um top zu beenden.
  • Verwenden Sie top -bn1, um eine einzelne Momentaufnahme zu erhalten (nützlich für Skripte).

2. htop – Interaktiver Prozess-Viewer

htop ist ein erweiterter, interaktiver und benutzerfreundlicher Prozess-Viewer, der viele Vorteile gegenüber dem herkömmlichen top-Befehl bietet. Er präsentiert eine visuell ansprechendere und besser navigierbare Oberfläche, die die Überwachung und Verwaltung von Prozessen erleichtert.

Wichtige Vorteile:

  • Visuelle Anzeigen: CPU-, Speicher- und Swap-Nutzung werden grafisch dargestellt.
  • Scrollbare Liste: Sie können vertikal und horizontal scrollen, um alle Prozesse und ihre vollständigen Befehlszeilen anzuzeigen.
  • Einfache Prozessverwaltung: Beenden (Kill), Neuzuordnung der Priorität (Renice) und andere Aktionen können direkt über Funktionstasten ausgeführt werden, ohne PIDs eingeben zu müssen.
  • Baumansicht: Prozesse können in einer Baumstruktur angezeigt werden, um Eltern-Kind-Beziehungen darzustellen.

Grundlegende Verwendung:

# Möglicherweise Installation erforderlich:
# sudo apt install htop (Debian/Ubuntu)
# sudo yum install htop (RHEL/CentOS)
htop

Praktische Beispiele:

  • Prozesse filtern: Drücken Sie F4.
  • Einen Prozess beenden: Wählen Sie den Prozess aus und drücken Sie dann F9.
  • Nach verschiedenen Spalten sortieren: Verwenden Sie F6.

Tipps:

  • htop wird aufgrund seiner überlegenen Benutzererfahrung im Allgemeinen für die interaktive Überwachung bevorzugt.
  • Passen Sie die Anzeigeeinstellungen von htop (F2) an Ihren Workflow an.

3. vmstat – Statistiken für virtuellen Speicher

Der Befehl vmstat meldet Informationen über Prozesse, Speicher, Paging, Block-I/O, Fallen (Traps) und CPU-Aktivität. Er ist ein ausgezeichnetes Werkzeug zur Identifizierung von Speicherengpässen oder hoher Festplatten-I/O.

Wichtige Metriken:

  • r: Anzahl der Prozesse, die auf Ausführungszeit warten.
  • b: Anzahl der Prozesse, die in nicht unterbrechbarem Schlafzustand verharren (typischerweise I/O).
  • swpd: Menge des verwendeten virtuellen Speichers.
  • free: Menge des freien Speichers.
  • si / so: Menge des aus der Festplatte eingetauschten Speichers / auf die Festplatte ausgetauschter Speicher.
  • bi / bo: Blöcke, die von einem Blockgerät empfangen werden / Blöcke, die an ein Blockgerät gesendet werden.
  • wa: Zeit, die auf den Abschluss von I/O gewartet wird.

Grundlegende Verwendung:

vmstat 1 5 # Alle 1 Sekunde berichten, 5 Mal

Praktische Beispiele:

  • Alle Statistiken in einer Tabelle anzeigen: vmstat -a
  • Aktiven/inaktiven Speicher anzeigen: vmstat -a
  • Slabinfo anzeigen: vmstat -m
  • Festplattenstatistiken anzeigen: vmstat -d

Tipps:

  • Hohe si/so-Werte deuten oft auf Speicherdruck und übermäßiges Swapping hin, was die Leistung stark beeinträchtigen kann.
  • Ein konstant hoher wa-Prozentsatz deutet auf einen I/O-Engpass hin.

4. iostat – I/O-Statistiken

iostat ist Teil des sysstat-Pakets und meldet die CPU-Auslastung sowie I/O-Statistiken für Geräte, Partitionen und Netzdateisysteme. Es ist entscheidend für das Verständnis von Problemen mit der Festplattenleistung.

Wichtige Metriken:

  • %user, %system, %iowait, %idle: Aufschlüsselung der CPU-Auslastung.
  • r/s / w/s: Lese-/Schreibvorgänge pro Sekunde.
  • rkB/s / wkB/s: Gelesene/geschriebene Kilobyte pro Sekunde.
  • await: Durchschnittliche Zeit (in Millisekunden), die benötigt wird, um I/O-Anforderungen an das Gerät zu bedienen.
  • %util: Prozentsatz der CPU-Zeit, in der I/O-Anforderungen an das Gerät gesendet wurden.

Grundlegende Verwendung:

# Möglicherweise Installation erforderlich:
# sudo apt install sysstat (Debian/Ubuntu)
# sudo yum install sysstat (RHEL/CentOS)
iostat -xz 1 5 # Erweiterte Statistiken, alle 1 Sekunde, 5 Mal

Praktische Beispiele:

  • Überwachung eines bestimmten Geräts: iostat -xz /dev/sda 1
  • Nur CPU-Auslastung anzeigen: iostat -c
  • Nur Gerätenutzung anzeigen: iostat -d

Tipps:

  • Eine hohe %util (nahe 100 %) in Kombination mit einer hohen await-Zeit deutet auf einen I/O-Engpass bei diesem Gerät hin.
  • Vergleichen Sie rkB/s und wkB/s mit r/s und w/s, um die durchschnittliche I/O-Größe zu ermitteln.

5. free – Speichernutzung

Der Befehl free zeigt die Gesamtmenge an freiem und verwendetem physischem Speicher und Swap-Speicher im System an, ebenso wie die vom Kernel verwendeten Puffer und Caches.

Wichtige Metriken:

  • total: Insgesamt installierter Speicher.
  • used: Verwendeter Speicher (einschließlich Puffer/Cache).
  • free: Nicht verwendeter Speicher.
  • shared: Von tmpfs verwendeter Speicher (gemeinsame Speichersegmente).
  • buff/cache: Vom Kernel-Puffer und Seitencache verwendeter Speicher.
  • available: Eine Schätzung, wie viel Speicher für den Start neuer Anwendungen ohne Swapping verfügbar ist.

Grundlegende Verwendung:

free -h # Ausgabe in menschenlesbarer Form

Praktische Beispiele:

  • Speicher in Megabyte anzeigen: free -m
  • Kontinuierliche Aktualisierung alle 5 Sekunden: watch -n 5 free -h

Tipps:

  • Die Spalte available ist die wichtigste Kennzahl, um zu verstehen, wie viel Speicher wirklich frei für neue Prozesse ist.
  • Linux nutzt freien Speicher aggressiv für Festplatten-Caching, daher ist ein niedriger free-Wert normal und oft erwünscht.

6. df – Festplattenspeicherbelegung

Der Befehl df meldet den verwendeten und verfügbaren Festplattenspeicherplatz auf Dateisystemen. Er ist unerlässlich für die Überwachung der Speicherkapazität und die Vermeidung von „Festplatte voll“-Szenarien.

Wichtige Metriken:

  • Filesystem: Der Name des Dateisystems.
  • Size: Gesamtgröße des Dateisystems.
  • Used: Menge des belegten Speicherplatzes.
  • Avail: Verfügbare Menge an Speicherplatz.
  • Use%: Prozentsatz des belegten Speicherplatzes.
  • Mounted on: Der Einhängepunkt des Dateisystems.

Grundlegende Verwendung:

df -h # Ausgabe in menschenlesbarer Form

Praktische Beispiele:

  • Inode-Nutzung anzeigen: df -i (Inodes sind Metadatenstrukturen; wenn diese ausgehen, können keine Dateien mehr erstellt werden, selbst wenn noch Speicherplatz vorhanden ist).
  • Dateisystemtyp anzeigen: df -hT -t ext4

Tipps:

  • Überprüfen Sie regelmäßig Use%, um zu verhindern, dass Dateisysteme voll laufen, was zu Anwendungsfehlern und Systeminstabilität führen kann.
  • Eine hohe Inode-Nutzung kann bei vielen kleinen Dateien ein Problem darstellen.

7. du – Festplattennutzung von Dateien und Verzeichnissen

Der Befehl du schätzt die Dateispeicherplatznutzung. Während df die gesamte Dateisystemnutzung prüft, wird du verwendet, um die Größe bestimmter Dateien oder Verzeichnisse herauszufinden, was entscheidend dafür ist, was den Speicherplatz verbraucht.

Wichtige Metriken:

  • Gesamtgröße der angegebenen Dateien oder Verzeichnisse.

Grundlegende Verwendung:

du -sh /var/log # Zusammenfassung, menschenlesbar für das Verzeichnis /var/log

Praktische Beispiele:

  • Größen aller Unterverzeichnisse anzeigen (eine Ebene tief): du -h --max-depth=1 /home/user
  • Die größten Dateien/Verzeichnisse finden: du -ah /path/to/check | sort -rh | head -n 10

Tipps:

  • Kombinieren Sie du mit sort und head, um schnell Speicherplatzfresser zu identifizieren.
  • Seien Sie vorsichtig, wenn Sie du auf großen Verzeichnissen ausführen, da dies ressourcenintensiv sein kann.

8. sar – System Activity Reporter

sar ist ein leistungsstarkes Werkzeug aus dem sysstat-Paket, das Systemaktivitätsinformationen sammelt, meldet oder speichert. Im Gegensatz zu top oder vmstat, die Echtzeit-Momentaufnahmen zeigen, glänzt sar durch die Bereitstellung historischer Daten, was es für langfristige Leistungsanalysen und Kapazitätsplanung unverzichtbar macht.

Hauptmerkmale:

  • CPU-Statistiken: %user, %nice, %system, %iowait, %steal, %idle.
  • Speicherstatistiken: kbmemfree, kbmemused, kbbuffers, kbcached.
  • Festplatten-I/O: tps, rd_sec/s, wr_sec/s.
  • Netzwerkstatistiken: rxpck/s, txpck/s, rxbyt/s, txbyt/s.
  • Lastdurchschnitt (Load Average), Swap-Aktivität, Kernel-Aktivität und mehr.

Grundlegende Verwendung:

# CPU-Auslastung alle 1 Sekunde, 5 Mal melden:
sar -u 1 5
# Festplattenaktivität melden:
sar -d
# Speicherauslastung melden:
sar -r
# Netzwerkstatistiken melden:
sar -n DEV

Praktische Beispiele:

  • CPU-Aktivität von gestern anzeigen: sar -u -f /var/log/sysstat/saDD (DD durch den Tag des Monats ersetzen)
  • Alle gesammelten Daten für heute anzeigen: sar -A

Tipps:

  • Stellen Sie sicher, dass das sysstat-Paket installiert und so konfiguriert ist, dass es regelmäßig Daten für die historische Analyse sammelt.
  • sar kann überwältigend sein; konzentrieren Sie sich auf spezifische Flags (-u, -r, -d, -n), die für Ihre Untersuchung relevant sind.

9. ss (Socket Statistics) – Netzwerkverbindungen

ss ist ein Dienstprogramm zur Untersuchung von Sockets. Es ist ein schnellerer und effizienterer Ersatz für den älteren Befehl netstat und liefert detailliertere Informationen über TCP-, UDP- und andere Socket-Typen, einschließlich ihres Zustands, lokaler/entfernter Adressen und Prozess-IDs.

Wichtige Metriken:

  • State (Zustand): ESTAB, LISTEN, TIME-WAIT, CLOSE-WAIT usw.
  • Recv-Q / Send-Q: Die Größe der Empfangs- und Sende-Warteschlange.
  • Local Address:Port / Peer Address:Port: Die lokalen und entfernten Endpunkte.
  • Process Name (Prozessname): Der dem Socket zugeordnete Prozess.

Grundlegende Verwendung:

ss -tuln # TCP, UDP, lauschend, numerische Ports

Praktische Beispiele:

  • Alle TCP-Verbindungen auflisten: ss -t
  • Alle UDP-Verbindungen auflisten: ss -u
  • Prozesse anzeigen, die auf bestimmten Ports lauschen: ss -tulnp | grep 80
  • Socket-Statistiken zusammenfassen: ss -s

Tipps:

  • Achten Sie auf eine ungewöhnlich hohe Anzahl von TIME-WAIT-Verbindungen, die auf clientseitige Probleme oder einen falsch konfigurierten Webserver hindeuten können.
  • Überwachen Sie Recv-Q und Send-Q auf Anzeichen von Netzwerkpufferungsproblemen oder langsamer Anwendungsverarbeitung.

10. uptime – System-Uptime und Lastdurchschnitt

Der Befehl uptime zeigt an, wie lange das System bereits läuft, die aktuelle Uhrzeit, wie viele Benutzer angemeldet sind, und die Systemlastdurchschnitte der letzten 1, 5 und 15 Minuten.

Wichtige Metriken:

  • Current time (Aktuelle Uhrzeit): Selbsterklärend.
  • Uptime: Wie lange das System bereits läuft.
  • Users (Benutzer): Anzahl der aktuell angemeldeten Benutzer.
  • Load average (Lastdurchschnitt): Die durchschnittliche Anzahl von Prozessen, die sich entweder im ausführbaren oder nicht unterbrechbaren Zustand befinden. Dies umfasst Prozesse, die auf der CPU laufen, auf die CPU warten oder auf Festplatten-I/O warten.
    • 1-Minuten-Lastdurchschnitt
    • 5-Minuten-Lastdurchschnitt
    • 15-Minuten-Lastdurchschnitt

Grundlegende Verwendung:

uptime

Praktische Beispiele:

  • Wird oft als schnelle Gesundheitsprüfung für die allgemeine Auslastung eines Servers verwendet.

Tipps:

  • Vergleichen Sie den Lastdurchschnitt mit der Anzahl der CPU-Kerne Ihres Systems. Ein Lastdurchschnitt, der konstant höher ist als die Anzahl der CPU-Kerne, deutet oft auf einen CPU- oder I/O-Engpass hin.
  • Ein über die Zeit ansteigender Lastdurchschnitt (z. B. 1-Minute > 5-Minuten > 15-Minuten) deutet darauf hin, dass das System beschäftigter wird.

Fazit

Die Beherrschung dieser zehn wesentlichen Linux-Befehle ist grundlegend für jeden Systemadministrator, der sich auf die Überwachung und Wartung gesunder, leistungsfähiger Systeme konzentriert. Von der schnellen Identifizierung von CPU-Spitzen mit top und htop bis hin zur Diagnose von I/O-Engpässen mit iostat und Speicherdruck mit vmstat bieten diese Tools einen umfassenden Werkzeugkasten für das proaktive Systemmanagement.

Wenn Sie diese Befehle regelmäßig in Ihre Überwachungsroutine aufnehmen, ihre Ausgabe verstehen und wissen, wann Sie welchen Befehl verwenden müssen, werden Sie in die Lage versetzt, Probleme effizient zu beheben, die Ressourcennutzung zu optimieren und die Zuverlässigkeit Ihrer Linux-Infrastruktur sicherzustellen. Erkunden Sie weiterhin ihre Optionen und integrieren Sie sie in Ihre Skripte für die automatisierte Berichterstattung, um Ihre Fähigkeiten im Systemmanagement zu erweitern. Viel Spaß beim Monitoring!