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

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!

Hilfe benötigt?Unsere Ingenieure helfen Ihnen kostenlos bei jeder Frage in wenigen MinutenKontaktieren Sie uns