Skip to content
VDS · Fehlerbehebung

Server ist langsam: wo Sie anfangen sollten

Ein fünfminütiges Diagnoseverfahren: CPU, Arbeitsspeicher, Festplatte, Netzwerk — wie Sie mit wenigen Befehlen feststellen, was genau bremst, und was als Nächstes zu tun ist.

Aktualisiert am 23. August 2026

„Alles ist langsam“ ist keine Diagnose. Es gibt nur vier Engpässe: CPU, Arbeitsspeicher, Festplatte und Netzwerk. Im Folgenden finden Sie eine Prüfreihenfolge, die in fünf Minuten auf einen davon hinweist.

Schritt 1: Der Überblick

uptime
free -h
df -h

Drei Befehle schließen sofort die Hälfte der Möglichkeiten aus. Wenn die durchschnittliche Last deutlich höher ist als die Anzahl der Kerne Ihres Tarifs, gibt es eine Warteschlange – siehe Load average. Ein available nahe null bedeutet Arbeitsspeicher. Wenn die Partition zu 100 % voll ist, suchen Sie nicht weiter – lesen Sie Out of space.

Schritt 2: Was genau der Engpass ist

vmstat 2 5

Betrachten Sie die gemittelten Spalten, alle außer der ersten Zeile:

  • hohe Werte bei us und sy, großes r – CPU-gebunden;
  • hoher Wert bei wa, großes b – festplattengebunden;
  • si und so ungleich null – es findet Swapping statt, das heißt, der Arbeitsspeicher geht zur Neige;
  • hoher Wert bei st – Zeit, die der Hypervisor beansprucht; das ist eine externe Ursache, wenden Sie sich an den Support.

Schritt 3: Den Verursacher finden

ps aux --sort=-%cpu | head -10
ps aux --sort=-%mem | head -10
iotop -boPan 3 | head -20        # apt install iotop
ss -tn state established | wc -l

Das Live-Bild lässt sich in htop oder btop leichter lesen. Achten Sie auf Prozesse im Zustand D – sie warten auf die Festplatte und treiben die Last in die Höhe.

Wenn der Verursacher Ihre Anwendung ist, stellt sich die nächste Frage zu ihr: langsame Datenbankabfragen, ein fehlender Index, zu viele Worker, eine Endlosschleife nach einem Deploy. Bringen Sie den Zeitpunkt, an dem die Verlangsamung begann, mit dem Log in Verbindung:

journalctl --since "1 hour ago" -p warning

Schritt 4: Die Historie prüfen

Öffnen Sie „Übersicht“ im Panel /hosting/vds/m/<id> und sehen Sie sich die Diagramme für den letzten Tag und die letzte Woche an. Drei typische Muster:

  • ein Sprung nach oben zu einem bestimmten Zeitpunkt – etwas hat sich geändert: ein Deploy, ein Update, ein neuer Cron-Job;
  • eine regelmäßige Spitze nach Zeitplan – eine Hintergrundaufgabe; verlegen Sie sie in die Nacht oder begrenzen Sie sie mit nice und ionice;
  • ein flaches Plateau über Wochen – Sie sind einfach aus Ihrem Tarif herausgewachsen.

Was mit dem Ergebnis zu tun ist

EngpassSchnelle MaßnahmeLangfristige Lösung
CPUden überzähligen Prozess finden und stoppenein Tarif mit mehr Kernen
ArbeitsspeicherWorker und Datenbankpuffer begrenzen, Swap hinzufügenein Tarif mit mehr Arbeitsspeicher
FestplatteBackups mit ionice begrenzen, Logs kürzenein höherer Tarif: Das Plateau wächst mit der Anzahl der Kerne
NetzwerkHintergrund-Downloads mit --bwlimit begrenzendie Traffic-Quelle untersuchen

Das Festplatten-Plateau wird wie folgt berechnet: 60 MB/s Schreibvorgänge pro Kern, nicht niedriger als 60 und nicht höher als 400, bei doppelt so hohen Lesevorgängen. Wenn Sie dauerhaft am Plateau liegen, wird die Festplatte ohne einen Wechsel nach oben nicht schneller – siehe Benchmark.

Häufige Fehler

  • Den Rechner sofort neu starten. Ein Neustart löscht das Bild, und in einer Stunde wiederholt sich alles. Sammeln Sie zuerst die Zahlen.
  • Einem einzelnen Frame vertrauen. Eine Spitze in dem Moment, in dem Sie htop starten, bedeutet nichts – beobachten Sie eine Minute lang.
  • Vollen Arbeitsspeicher als Problem betrachten. Sehen Sie sich available und Swap an, nicht free.
  • Den Tarif wechseln, ohne Klarheit zu haben. Ein Speicherleck oder ein in einer Schleife hängendes Skript zieht mit Ihnen in den neuen Tarif um. Ein Downgrade zurück wird nicht unterstützt.

Wenn CPU, Arbeitsspeicher und Festplatte ruhig sind, die Anwendung aber langsam ist, liegt der Engpass außerhalb der Maschine: eine langsame externe API, DNS oder das Netzwerk des Clients. Prüfen Sie curl -w '%{time_total}\n' -o /dev/null -s an die benötigte Adresse.