Analyse der Serverauslastung
So überwachen Sie CPU-, Arbeitsspeicher-, Laufwerk- und Netzwerkauslastung auf einem Linux-Server.
Serverlast bezeichnet den prozentualen Anteil genutzter Schlüsselressourcen — CPU, RAM und Speicherplatz. Die Überwachung dieser Metriken ermöglicht es, die Ursache von Performance-Problemen schnell zu identifizieren.
Die Hardware eines Servers gliedert sich in vier Hauptkomponenten: CPU, Arbeitsspeicher, Laufwerk und Netzwerkschnittstelle. Die Lastanalyse umfasst das Erfassen und Auswerten der Statistiken für jede einzelne Komponente.
CPU
Das Werkzeug top liefert eine einfache Echtzeitansicht der CPU-Auslastung:
top
Beispielausgabe:
top - 13:29:39 up 7 days, 1:10, 1 user, load average: 0.03, 0.03, 0.00
Tasks: 104 total, 2 running, 102 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 1.0 sy, 0.0 ni, 97.0 id, 0.0 wa, 0.0 hi, 1.3 si, 0.3 st
MiB Mem : 969.5 total, 68.8 free, 635.9 used, 264.8 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 106.7 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
823 mysql 20 0 1852008 401812 0 S 1.0 40.5 81:24.20 mysqld
13 root 20 0 0 0 0 R 0.3 0.0 26:11.00 rcu_sched
695 redis 20 0 66776 4216 2100 S 0.3 0.4 19:55.21 redis-server
Wichtige Metriken:
us— CPU-Zeit für Benutzerprozesse. Ein hoher Wert bedeutet, dass die Anwendung die CPU stark beansprucht.id— CPU-Leerlauf. Sollte unter normalen Bedingungen zwischen 80 und 100 % liegen.wa— Wartezeit auf I/O. Ein hoher Wert weist auf eine Überlastung des Disk-Subsystems hin.
Überschreitet us dauerhaft 20 %, sollten Sie Ihre Anwendung optimieren oder den Server skalieren.
Für detaillierte Statistiken pro CPU-Kern installieren Sie mpstat aus dem Paket sysstat:
apt-get install sysstat
mpstat -P ALL
Beispielausgabe:
Linux 5.15.0-46-generic (dsde1139-22869.fornex.org) 09/06/2022 _x86_64_ (1 CPU)
02:37:21 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
02:37:21 PM all 0.90 0.00 0.74 0.13 0.00 0.96 0.32 0.00 0.00 96.95
02:37:21 PM 0 0.90 0.00 0.74 0.13 0.00 0.96 0.32 0.00 0.00 96.95
Für eine übersichtlichere Darstellung zeigt htop die CPU-Auslastung in einem leicht lesbaren Format an:
apt-get install htop
htop
CPU-Monitoring in htop
Arbeitsspeicher
Mit dem Befehl free prüfen Sie die RAM-Auslastung:
free
Beispielausgabe:
total used free shared buff/cache available
Mem: 992724 655200 73968 86748 263556 104972
Swap: 0 0 0
Achten Sie besonders auf Swap — dieser Wert zeigt, wie viel Speicherplatz als Überlaufspeicher genutzt wird, wenn der RAM erschöpft ist. Wenig freier RAM allein ist noch kein kritisches Problem, aber ein wachsender Swap-Verbrauch erfordert sofortiges Handeln: Fügen Sie mehr Arbeitsspeicher hinzu oder verteilen Sie die Last auf mehrere Server.
Für eine detaillierte Aufschlüsselung der Speichernutzung:
cat /proc/meminfo
Beispielausgabe:
MemTotal: 992724 kB
MemFree: 73192 kB
MemAvailable: 104864 kB
Buffers: 10856 kB
Cached: 226868 kB
SwapCached: 0 kB
...
Laufwerk
Beginnen Sie mit der Prüfung des verfügbaren Speicherplatzes:
df -h
Beispielausgabe:
Filesystem Size Used Avail Use% Mounted on
tmpfs 97M 732K 97M 1% /run
/dev/vda1 9.8G 8.5G 846M 92% /
tmpfs 485M 0 485M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 97M 0 97M 0% /run/user/0
Die Spalte Use% zeigt, wie viel Platz auf jeder Partition belegt ist.
Um Lese- und Schreibaktivitäten aufgeschlüsselt nach Prozessen zu überwachen, verwenden Sie iotop:
apt-get install iotop
iotop
Beispielausgabe:
Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s
Current DISK READ: 0.00 B/s | Current DISK WRITE: 0.00 B/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
1 be/4 root 0.00 B/s 0.00 B/s ?unavailable? init
2 be/4 root 0.00 B/s 0.00 B/s ?unavailable? [kthreadd]
...
Wichtige Metriken:
Actual DISK READ— tatsächlich vom Laufwerk gelesene Datenmenge (unter Berücksichtigung des Caches).Actual DISK WRITE— tatsächlich auf das Laufwerk geschriebene Datenmenge.
Empfehlungen bei hoher Disk-Last:
- Hohe Leselast durch die Anwendung — aktivieren Sie APC-Caching.
- Hohe Leselast durch die Datenbank — überprüfen Sie Ihre Datenbankkonfiguration.
- Hohe Leselast durch den Webserver — erwägen Sie den Einsatz von HTTP-Caching.
- Hohe Schreiblast — stellen Sie sicher, dass Access- und Debug-Logging deaktiviert sind; die wahrscheinlichsten Verursacher sind die Datenbank oder Datei-Uploads.
Netzwerk
Das Werkzeug cbm zeigt den Live-Netzwerkverkehr pro Schnittstelle an:
apt-get install cbm
cbm
Beispielausgabe:
Interface Receive Transmit Total
lo 0.00 B/s 0.00 B/s 0.00 B/s
eth0 35.90 kB/s 758.75 B/s 36.65 kB/s
Hoher Netzwerkverkehr ist an sich kein Problem, aber dauerhaft nahezu ausgelastete Werte sind ein Signal, mit der Skalierungsplanung zu beginnen.
Gesamtstatistik
Das Werkzeug dstat zeigt eine Live-Übersicht aller Subsysteme, die jede Sekunde aktualisiert wird:
apt-get install dstat
dstat
Beispielausgabe:
--total-cpu-usage-- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai stl| read writ| recv send| in out | int csw
2 1 97 0 0| 35k 29k| 0 0 | 0 0 | 683 702
1 0 99 0 0| 124k 0 | 39k 1162B| 0 0 |1003 822
3 4 86 6 1|3580k 8776k| 37k 522B| 0 0 |1161 1018
Wichtige Spalten:
total-cpu-usage— CPU-Auslastung.dsk/total— Laufwerkaktivität.net/total— Netzwerkaktivität.
Hilfe
Bei Fragen oder wenn Sie Unterstützung brauchen, erreichen Sie uns jederzeit über das Ticketsystem — wir helfen Ihnen gern weiter!