Mein Server ist langsam geworden: RAM, CPU und Festplatte prüfen
Ist Ihr Server langsamer geworden, sehen Sie sich drei Dinge an: RAM, CPU und Festplatte. Verbinden Sie sich und führen Sie drei Befehle aus: free -h für den Speicher, top für den Prozessor und df -h für die Festplatte. Was davon voll ist, ist der Engpass. Sehen alle drei gut aus, liegt das Problem meist in der Anwendung selbst.
Beginnen Sie mit der Last
Die Load Average ist die durchschnittliche Zahl der Prozesse, die auf die CPU oder die Festplatte warten. Die ersten drei Zahlen in der Ausgabe unten sind die Durchschnitte der letzten 1, 5 und 15 Minuten. Vergleichen Sie sie mit Ihrer Kernzahl:
cat /proc/loadavg
nproc
Bleibt die Last lange über der Kernzahl, kommt der Server mit seiner Arbeit nicht hinterher.
RAM: free -h
free -h
Die wichtigste Spalte ist available. Ist sie sehr klein und füllt sich die Zeile Swap, ist Ihr RAM aufgebraucht. Geht der Speicher aus, beendet der Kernel einen der Prozesse mit dem höchsten Speicherverbrauch (den OOM-Killer). Eine Datenbank oder Webanwendung, die sich von selbst schließt, deutet oft darauf hin. So prüfen Sie es:
sudo dmesg -T | grep -i -E "out of memory|killed process"
CPU: top
top
Auf dem Bildschirm, der sich öffnet, sortiert die Taste P die Prozesse nach CPU-Nutzung und die Taste M nach Speichernutzung. Mit q beenden Sie. Achten Sie in der CPU-Zeile oben auf Folgendes:
- us: der Anteil der Benutzerprozesse. Ist er hoch, frisst eine Anwendung die CPU.
- wa: Zeit, die auf Festplatten-Ein- und -Ausgabe gewartet wird. Ist sie hoch, liegt das Problem nicht an der CPU, sondern an der Festplatte.
- st: „gestohlene“ Zeit des virtuellen Servers, also Zeit, die die Virtualisierungsschicht der CPU für etwas anderes gegeben hat. Bleibt sie hoch, liegt das Problem möglicherweise nicht in Ihrem Server. Wenden Sie sich in diesem Fall an den Support.
Festplatte: df -h
df -h
df -i
Der erste Befehl zeigt den belegten Platz, der zweite die Grenze für die Dateianzahl (Inodes). Ist die Festplatte völlig voll, können Datenbanken und Anwendungen nicht schreiben, und der Server wird langsam oder wirft Fehler. So finden Sie heraus, was den Platz belegt:
sudo du -xh / --max-depth=1 2>/dev/null | sort -h | tail -n 8
Sind die Systemprotokolle gewachsen, verkleinern Sie sie mit sudo journalctl --vacuum-size=200M. Wenn Sie Docker nutzen, zeigt docker system df den von Images und Containern belegten Platz, und docker stats --no-stream zeigt, wie viel CPU und Speicher jeder Container verbraucht.
Symptom, wahrscheinliche Ursache und Lösung
| Symptom | Wahrscheinliche Ursache | Was zu tun ist |
|---|---|---|
| Seiten sind ab und zu langsam, available ist niedrig, Swap ist voll | Nicht genug RAM | Beenden Sie Dienste, die Sie nicht brauchen, und kürzen Sie die Speichereinstellungen der Anwendung (zum Beispiel die Zahl der PHP-FPM-Worker oder den Datenbankspeicher). Reicht das nicht, vergrößern Sie den Server. |
Ein Dienst schließt sich von selbst, in der Ausgabe von dmesg erscheint „killed process“ | Der Speicher ging aus, und der OOM-Killer hat eingegriffen | Mehr RAM hinzufügen oder den Speicherverbrauch senken. |
Ein Prozess in top lastet dauerhaft einen ganzen Kern voll aus | Ein hängender Prozess, ein fehlerhaftes Plugin oder eine Schleife | Finden Sie den Prozess und beheben oder deaktivieren Sie dann die Anwendung oder das Plugin dahinter. |
| Die Last ist hoch, die CPU im Leerlauf, wa ist hoch | Auf die Festplatte wird gewartet (starkes Schreiben oder Swap) | Sehen Sie sich die Spalten si und so in vmstat 1 5 an. Wird Swap genutzt, fügen Sie RAM hinzu. |
df -h oder df -i ist voll | Kein Festplattenplatz oder keine Inodes mehr | Räumen Sie große Dateien und Protokolle auf. Füllt es sich immer wieder, vergrößern Sie. |
| st bleibt hoch | Das Problem liegt möglicherweise außerhalb Ihres Servers | Wenden Sie sich an den Support. |
Bei Seturack ist die Festplattengeschwindigkeit jedes Servers begrenzt: dauerhaft 500 MB/s und 20.000 IOPS beim Lesen sowie 200 MB/s und 8.000 IOPS beim Schreiben. Liegen Ihre Werte in der Ausgabe von iostat -x 1 5 bei diesen Zahlen, bremst Sie die Festplattenlast. Verringern Sie die Arbeit durch Caching oder verteilen Sie sie über die Zeit. Fehlt iostat, installieren Sie es mit sudo apt install -y sysstat.
Wann hilft Swap?
Swap nutzt die Festplatte anstelle von RAM. Er hilft dem Server, kurze Speicherspitzen ohne den OOM-Killer zu überstehen, ist aber nicht so schnell wie RAM. Bleiben si und so in der Ausgabe von vmstat 1 5 über null, schreibt der Server ständig in den Swap. Die Lösung ist RAM, nicht Swap. Haben Sie keinen Swap (swapon --show gibt nichts aus) und möchten Spitzen glätten, können Sie eine Swap-Datei von 2 GB anlegen. Diese Befehle gelten für ein ext4-Dateisystem:
sudo fallocate -l 2G /swapfile && sudo chmod 600 /swapfile
sudo mkswap /swapfile && sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Wenn die Ressourcen in Ordnung aussehen
Sehen RAM, CPU und Festplatte komfortabel aus, prüfen Sie den Namen des obersten Prozesses in top:
- Stehen
php-fpm,apache2odernginxoben, liegt das Problem meist an der Website selbst: ein schweres Plugin, fehlendes Caching oder ein plötzlicher Besucheranstieg. - Stehen
mysqldodermariadbdoben, gibt es langsame Abfragen. Schalten Sie das Slow-Query-Log der Datenbank ein und sehen Sie, welche Abfragen lange dauern. - Frisst ein Prozess, den Sie nicht kennen, dauerhaft CPU, wurde der Server möglicherweise kompromittiert. Ändern Sie Ihre Passwörter, prüfen Sie offene Sitzungen und die Ausgabe von
sudo ss -tulpnund installieren Sie den Server bei Bedarf mit einem sauberen System neu.
Wann Sie vergrößern sollten
Die Reihenfolge lautet: zuerst optimieren, Caching ergänzen, unnötige Arbeit abschalten. Ist die Last danach noch hoch, vergrößern Sie den Server. Öffnen Sie im Panel den Tab Größe Ihres Servers, stellen Sie die Regler auf die neue Größe und bestätigen Sie. Nach der Zahlung startet der Server einmal von selbst neu und kommt in der neuen Größe zurück. Ihre IP-Adresse und Ihre Daten bleiben gleich, und Sie zahlen nur die Differenz für die verbleibenden Tage. RAM, vCores und Festplatte können Sie getrennt vergrößern, Sie erhöhen also nur, was knapp wird. Beim Vergrößern wächst die Festplatte, beim Verkleinern schrumpft sie nicht. Einzelheiten stehen im Artikel zum Skalieren.
Reagiert der Server wegen der Last gar nicht mehr, verbindet SSH womöglich nicht. Öffnen Sie in diesem Fall die VNC-Konsole im Panel oder starten Sie den Server über das Panel neu.
Kommentare0
Noch keine Kommentare
Schreiben Sie den ersten Kommentar und teilen Sie Ihre Gedanken.
Bitte melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen.