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
topdie TasteP. - Nach Speichernutzung sortieren: Drücken Sie in
topdie TasteM. - Bestimmte Benutzerprozesse anzeigen: Drücken Sie in
topdie Tasteuund geben Sie dann den Benutzernamen ein. - Einen Prozess beenden: Drücken Sie in
topdie Tastekund 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 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:
htopwird 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 hohenawait-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/sundwkB/smitr/sundw/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
availableist 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
dumitsortundhead, um schnell Speicherfresser zu identifizieren. - Seien Sie vorsichtig, wenn Sie
duauf 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/saDDauf vielen Debian-basierten Systemen oder/var/log/sa/saDDauf vielen RHEL-basierten Systemen. Ersetzen SieDDdurch den Tag des Monats. - Alle gesammelten Daten für heute anzeigen:
sar -A
Tipps:
- Stellen Sie sicher, dass das Paket
sysstatinstalliert und konfiguriert ist, um regelmäßig Daten für die historische Analyse zu sammeln. sarkann ü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-WAITusw. - 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-QundSend-Qauf 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.