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-FensterP. - Nach Speichernutzung sortieren: Drücken Sie im
top-FensterM. - Prozesse eines bestimmten Benutzers anzeigen: Drücken Sie im
top-Fensteruund geben Sie dann den Benutzernamen ein. - Einen Prozess beenden (Kill): Drücken Sie im
top-Fensterkund geben Sie die PID ein.
Tipps:
- Drücken Sie
1, um die Anzeige einzelner CPU-Kerne umzuschalten. - Drücken Sie
q, umtopzu 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:
htopwird 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 hohenawait-Zeit deutet auf einen I/O-Engpass bei diesem Gerät hin. - Vergleichen Sie
rkB/sundwkB/smitr/sundw/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
availableist 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
dumitsortundhead, um schnell Speicherplatzfresser zu identifizieren. - Seien Sie vorsichtig, wenn Sie
duauf 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. sarkann ü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-WAITusw. - 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-QundSend-Qauf 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!