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

Lernen Sie zehn Linux-Überwachungsbefehle zur Überprüfung von CPU, Speicher, Festplatte, Netzwerk-Sockets, Auslastung und historischer Systemaktivität.

Top Ten unverzichtbare Befehle für die Linux-Systemüberwachung

Wenn ein Linux-Server langsam erscheint, benötigen Sie Befehle, die Ihnen sagen, ob der Druck auf CPU, Speicher, Festplatte, Netzwerk oder Auslastung liegt. Diese Linux-Überwachungsbefehle helfen Ihnen, von „Der Server ist langsam“ zu einem konkreten nächsten Schritt zu gelangen.

Die zehn unten aufgeführten Werkzeuge bieten Ihnen schnelle Momentaufnahmen, interaktive Ansichten und historische Daten. Verwenden Sie sie zusammen, anstatt sich auf eine einzelne Zahl isoliert zu verlassen.

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. Administratoren greifen oft als erstes auf dieses Werkzeug zurück, um einen schnellen Überblick über die Systemaktivität zu erhalten.

Wichtige Metriken:

  • CPU-Auslastung: us (Benutzer), sy (System), ni (Nice), id (Leerlauf), wa (E/A-Wartezeit), hi (Hardware-IRQ), si (Software-IRQ), st (Steal-Zeit).
  • Speichernutzung: Gesamt, frei, belegt, Puffer/Cache.
  • Swap-Nutzung: Gesamt, frei, belegt.
  • Prozessliste: PID, Benutzer, PR (Priorität), NI (Nice-Wert), VIRT (virtueller Speicher), RES (residenter Speicher), SHR (gemeinsam genutzter Speicher), S (Status), %CPU, %MEM, TIME+, BEFEHL.

Grundlegende Verwendung:

top

Praktische Beispiele:

  • Nach CPU-Auslastung sortieren: Drücken Sie in top die Taste P.
  • Nach Speichernutzung sortieren: Drücken Sie in top die Taste M.
  • Bestimmte Benutzerprozesse anzeigen: Drücken Sie in top die Taste u und geben Sie dann den Benutzernamen ein.
  • Einen Prozess beenden: Drücken Sie in top die Taste 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 traditionellen Befehl top bietet. Er präsentiert eine optisch ansprechendere und navigierbarere Oberfläche, die die Überwachung und Verwaltung von Prozessen erleichtert.

Hauptvorteile:

  • Visuelle Messanzeigen: 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 zu sehen.
  • Einfache Prozessverwaltung: Beenden, 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 ist eine 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 Anzeigeoptionen von htop (F2) an Ihren Arbeitsablauf an.

3. vmstat - Virtuelle Speicherstatistiken

Der Befehl vmstat meldet Informationen über Prozesse, Speicher, Paging, Block-E/A, Unterbrechungen und CPU-Aktivität. Er ist ein hervorragendes Werkzeug zur Identifizierung von Speicherengpässen oder hoher Festplatten-E/A.

Wichtige Metriken:

  • r: Anzahl der Prozesse, die auf Laufzeit warten.
  • b: Anzahl der Prozesse, die in nicht unterbrechbarem Schlaf schlafen (typischerweise E/A).
  • swpd: Menge des verwendeten virtuellen Speichers.
  • free: Menge des freien Speichers.
  • si / so: Menge des Speichers, der von der Festplatte eingelagert / auf die Festplatte ausgelagert wurde.
  • bi / bo: Blöcke, die von einem Blockgerät empfangen / an ein Blockgerät gesendet wurden.
  • wa: Zeit, die mit Warten auf den Abschluss von E/A verbracht wurde.

Grundlegende Verwendung:

vmstat 1 5 # Bericht alle 1 Sekunde, 5 Mal

Praktische Beispiele:

  • 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 erheblich beeinträchtigen kann.
  • Ein konstant hoher wa-Prozentsatz deutet auf einen E/A-Engpass hin.

4. iostat - E/A-Statistiken

iostat ist Teil des Pakets sysstat und meldet CPU-Auslastung und E/A-Statistiken für Geräte, Partitionen und Netzwerkdateisysteme. Es ist entscheidend für das Verständnis von Festplattenleistungsproblemen.

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 E/A-Anfragen an das Gerät zu bedienen.
  • %util: Prozentsatz der verstrichenen Zeit, in der das Gerät E/A-Anfragen in Bearbeitung hatte.

Grundlegende Verwendung:

# Möglicherweise ist eine 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äteauslastung anzeigen: iostat -d

Tipps:

  • Ein hoher %util-Wert in Kombination mit einer hohen await-Zeit deutet oft auf einen E/A-Engpass auf diesem Gerät hin. Bei modernen SSDs und virtualisiertem Speicher bestätigen Sie dies mit der Anwendungslatenz, bevor Sie davon ausgehen, dass die Festplatte gesättigt ist.
  • Vergleichen Sie rkB/s und wkB/s mit r/s und w/s, um die durchschnittliche E/A-Größe zu verstehen.

5. free - Speichernutzung

Der Befehl free zeigt die Gesamtmenge an freiem und genutztem physischem Speicher und Swap-Speicher im System sowie die vom Kernel verwendeten Puffer und Caches an.

Wichtige Metriken:

  • total: Gesamter installierter Speicher.
  • used: Genutzter Speicher (einschließlich Puffer/Cache).
  • free: Ungenutzter Speicher.
  • shared: Von tmpfs genutzter Speicher (gemeinsam genutzte Speichersegmente).
  • buff/cache: Von Kernel-Puffern und Seiten-Cache genutzter Speicher.
  • available: Eine Schätzung, wie viel Speicher für das Starten neuer Anwendungen ohne Swapping verfügbar ist.

Grundlegende Verwendung:

free -h # Für Menschen lesbare Ausgabe

Praktische Beispiele:

  • Speicher in Megabyte anzeigen: free -m
  • Kontinuierlich alle 5 Sekunden aktualisieren: watch -n 5 free -h

Tipps:

  • Die Spalte available ist die wichtigste Metrik, um zu verstehen, wie viel Speicher wirklich für neue Prozesse frei ist.
  • Linux verwendet verfügbaren Speicher aggressiv für die Festplattenzwischenspeicherung, daher ist ein niedriger free-Wert normal und oft wünschenswert.

6. df - Festplattenplatznutzung

Der Befehl df meldet die Menge des verwendeten und verfügbaren Festplattenplatzes auf Dateisystemen. Er ist unerlässlich für die Überwachung der Speicherkapazität und die Vermeidung von Szenarien mit voller Festplatte.

Wichtige Metriken:

  • Filesystem: Der Name des Dateisystems.
  • Size: Gesamtgröße des Dateisystems.
  • Used: Menge des verwendeten Festplattenplatzes.
  • Avail: Menge des verfügbaren Festplattenplatzes.
  • Use%: Prozentsatz des verwendeten Festplattenplatzes.
  • Mounted on: Der Einhängepunkt des Dateisystems.

Grundlegende Verwendung:

df -h # Für Menschen lesbare Ausgabe

Praktische Beispiele:

  • Inode-Nutzung anzeigen: df -i (Inodes sind Metadatenstrukturen; wenn sie ausgehen, kann dies die Dateierstellung verhindern, selbst wenn freier Speicherplatz vorhanden ist).
  • Bestimmten Dateisystemtyp anzeigen: df -hT -t ext4

Tipps:

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

7. du - Festplattennutzung von Dateien und Verzeichnissen

Der Befehl du schätzt die Dateispeichernutzung. Während df die gesamte Dateisystemnutzung überprüft, wird du verwendet, um die Größe bestimmter Dateien oder Verzeichnisse zu ermitteln, was entscheidend ist, um zu identifizieren, was Festplattenplatz verbraucht.

Wichtige Metriken:

  • Gesamtgröße der angegebenen Dateien oder Verzeichnisse.

Grundlegende Verwendung:

du -sh /var/log # Zusammenfassung, für Menschen lesbar 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 Speicherfresser zu identifizieren.
  • Seien Sie vorsichtig, wenn Sie du auf großen Verzeichnissen ausführen, da dies ressourcenintensiv sein kann.

8. sar - Systemaktivitätsbericht

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

Hauptmerkmale:

  • CPU-Statistiken: %user, %nice, %system, %iowait, %steal, %idle.
  • Speicherstatistiken: kbmemfree, kbmemused, kbbuffers, kbcached.
  • Festplatten-E/A: tps, rd_sec/s, wr_sec/s.
  • Netzwerkstatistiken: rxpck/s, txpck/s, rxbyt/s, txbyt/s.
  • Lastdurchschnitt, 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
# Speichernutzung melden:
sar -r
# Netzwerkstatistiken melden:
sar -n DEV

Praktische Beispiele:

  • Eine gespeicherte CPU-Aktivitätsdatei anzeigen: sar -u -f /var/log/sysstat/saDD auf vielen Debian-basierten Systemen oder /var/log/sa/saDD auf vielen RHEL-basierten Systemen. Ersetzen Sie DD durch den Tag des Monats.
  • Alle gesammelten Daten für heute anzeigen: sar -A

Tipps:

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

9. ss (Socket-Statistiken) - Netzwerkverbindungen

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

Wichtige Metriken:

  • Status: ESTAB, LISTEN, TIME-WAIT, CLOSE-WAIT usw.
  • Recv-Q / Send-Q: Die Größen der Empfangs- und Sendewarteschlangen.
  • Lokale Adresse:Port / Peer-Adresse:Port: Die lokalen und entfernten Endpunkte.
  • Prozessname: Der dem Socket zugeordnete Prozess.

Grundlegende Verwendung:

ss -tuln # TCP, UDP, abhörend, 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:

  • Eine hohe Anzahl von TIME-WAIT-Sockets ist nicht automatisch schlecht; es kann bei stark frequentierten TCP-Diensten normal sein. Kombinieren Sie es mit Port-Erschöpfung, fehlgeschlagenen Verbindungen oder Warteschlangenwachstum, bevor Sie es als Problem behandeln.
  • Überwachen Sie Recv-Q und Send-Q auf Anzeichen von Netzwerkpufferungsproblemen oder langsamer Anwendungsverarbeitung.

10. uptime - Systembetriebszeit und Lastdurchschnitt

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

Wichtige Metriken:

  • Aktuelle Uhrzeit: Selbsterklärend.
  • Betriebszeit: Wie lange das System läuft.
  • Benutzer: Anzahl der derzeit angemeldeten Benutzer.
  • Lastdurchschnitt: Die durchschnittliche Anzahl von Prozessen, die sich entweder in einem ausführbaren oder nicht unterbrechbaren Zustand befinden. Dies umfasst Prozesse, die auf der CPU laufen, auf die CPU warten oder auf Festplatten-E/A 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 auf Ihrem System. Ein Lastdurchschnitt, der konstant höher ist als die Anzahl der CPU-Kerne, deutet oft auf einen CPU- oder E/A-Engpass hin.
  • Ein steigender Lastdurchschnitt im Laufe der Zeit (z. B. 1 Minute > 5 Minuten > 15 Minuten) deutet darauf hin, dass das System ausgelasteter wird.

Ein einfacher Fehlerbehebungsablauf

Beginnen Sie bei einem langsamen Server mit uptime, um die Auslastung zu überprüfen, und verwenden Sie dann top oder htop, um ausgelastete Prozesse zu finden. Überprüfen Sie free -h und vmstat 1 5 auf Speicherdruck, iostat -xz 1 5 auf Festplattenlatenz und ss -tulnp auf lauschende Dienste oder gestaute Warteschlangen. Wenn das Problem früher aufgetreten ist, verwenden Sie sar, um das schlechte Zeitfenster mit einem normalen zu vergleichen.

Die Schlussfolgerung ist einfach: Jeder Befehl beantwortet einen Teil der Geschichte. Ihre Aufgabe ist es, CPU-, Speicher-, Festplatten- und Netzwerkbeweise zusammenzutragen, bevor Sie Dienste neu starten oder die Maschine vergrößern.