Zum Inhalt springen
Fehlerbehebung

VPS: Hohe CPU- und RAM-Auslastung prüfen

Hohe VPS-Auslastung mit lesenden Linux-Abfragen untersuchen: CPU, I/O, MemAvailable und OOM unterscheiden und vor einem Upgrade gezielt optimieren.

ServerQ Redaktion7 Min. Lesezeit

Bei hoher VPS-Auslastung sollten Sie zuerst unterscheiden, ob Prozesse rechnen, auf Ein- und Ausgabe warten oder unter Speicherdruck stehen. Eine hohe Load Average ist keine CPU-Prozentangabe. Ebenso beweist wenig vollständig freier RAM noch keinen Mangel, weil Linux verfügbaren Speicher als Cache nutzt. Beginnen Sie mit kurzen Messungen und vergleichen Sie sie mit dem tatsächlichen Anwendungsfehler.

Die folgenden Abfragen lesen Systemzustand und Protokolle. Sie beenden keine Prozesse und verändern keine Speicher- oder Dienstkonfiguration. Damit sammeln Sie Anhaltspunkte für eine gezielte Optimierung oder eine begründete Erweiterung. Ein einzelner Messpunkt reicht nicht, um einen defekten Host, eine bestimmte Kapazität oder den Bedarf eines größeren Pakets festzustellen.

Was Ihnen dieser Ratgeber ermöglicht

  • CPU-Beschäftigung, wartende Prozesse und Speicherknappheit auseinanderhalten.
  • MemAvailable, Swap-Aktivität und OOM-Meldungen im Zusammenhang bewerten.
  • Vor einem Upgrade eine konkrete Ursache und eine überprüfbare Verbesserung benennen.
Für wen dieser Ratgeber gedacht ist

Betreiber eines Linux-VPS mit erhöhten Antwortzeiten, hoher Last oder Speicherwarnungen. Die Beispiele setzen verfügbare procps-Werkzeuge voraus; die Protokollabfrage verwendet systemd.

Bevor Sie beginnen
  • Ein berechtigter Shell-Zugang und die Möglichkeit, Fehlerrate oder Antwortzeiten der Anwendung zu beobachten.
  • Kenntnis laufender Backups, Deployments, Importaufträge und geplanter Aufgaben.
  • Ausreichende Leserechte für die benötigten Protokolle; fehlende Sichtbarkeit als Einschränkung dokumentieren.

1. Zeitfenster und Auswirkung festhalten

Notieren Sie Beginn, Zeitzone und betroffene Funktion. Ist die gesamte Website langsam, nur eine Suche oder ein Hintergrundauftrag? Prüfen Sie, ob gleichzeitig ein Deployment, Backup oder Datenimport gestartet wurde. Diese Verbindung ist für die Ursachenanalyse oft hilfreicher als eine isolierte rote Anzeige im Dashboard.

Zeit, Lastmittel und verfügbare CPU-Zahl lesen
date -Is
uptime
nproc

uptime zeigt unter anderem Lastmittel über eine, fünf und fünfzehn Minuten. Die Werte sind nicht auf die CPU-Anzahl normiert. nproc liefert eine Orientierung für die verfügbaren CPUs; zusätzliche Prozess- und Containerlimits müssen Sie separat berücksichtigen. Erfassen Sie dasselbe Zeitfenster später nochmals im normalen Betrieb. Dokumentieren Sie auch Neustarts, weil diese den Vergleich verändern.

2. Rechenlast von Wartezeiten unterscheiden

Fünf kurze vmstat-Beobachtungen
vmstat 1 5

Bei vmstat enthält die erste Ausgabe für viele Zähler Mittelwerte seit dem Systemstart. Die weiteren Ausgaben beziehen sich auf das gewählte Intervall; Prozess- und Speicherwerte sind Momentaufnahmen. Vergleichen Sie deshalb mehrere Folgezeilen. Unter Linux berücksichtigt die Load Average auch Prozesse in nicht unterbrechbarem Wartezustand, häufig wegen I/O. Sie kann hoch sein, obwohl nicht alle CPUs rechnen.

Wichtige vmstat-Felder einordnen
FeldBedeutungNächste Frage
rLaufende oder auf CPU-Zeit wartende Prozesse.Bleibt die Warteschlange während der Störung hoch?
us und syCPU-Zeit für Anwendung und Kernel.Welcher Prozess oder Vorgang passt zum Anstieg?
b und waBlockierte Prozesse und CPU-Zeit mit I/O-Warten.Sind Datenträger oder andere I/O-Wege auffällig?
stDer virtuellen Maschine entzogene CPU-Zeit.Ist der Wert wiederholt auffällig und mit Verzögerungen verbunden?

Ein hoher wa-Wert allein identifiziert weder einen bestimmten Datenträger noch dessen Ursache. Auch ein einzelner st-Ausschlag beweist kein dauerhaftes Hostproblem. Bewahren Sie Messzeit und Anwendungswirkung auf, wenn wiederholte Beobachtungen eine Prüfung durch den Anbieter sinnvoll machen.

3. Verfügbaren Speicher und Swap-Aktivität prüfen

RAM und ausgewählte Kernel-Speicherwerte lesen
free -h
grep -E '^(MemTotal|MemFree|MemAvailable|SwapTotal|SwapFree):' /proc/meminfo

MemAvailable schätzt, wie viel Speicher für neue Anwendungen verfügbar ist, ohne auslagern zu müssen. Die Schätzung berücksichtigt unter anderem teilweise freigebbare Caches. Ein kleiner MemFree-Wert bei ausreichendem MemAvailable und stabilen Antwortzeiten kann daher normal sein. Betrachten Sie den Verlauf und nicht nur die optische Aufteilung in „benutzt“ und „frei“.

Belegter Swap bedeutet ebenfalls nicht automatisch eine aktuelle Störung. Entscheidend ist unter anderem, ob vmstat in den Feldern si und so während der Verzögerung anhaltende Ein- und Auslagerung zeigt. Zusammen mit wenig verfügbarem RAM kann das auf Speicherdruck hindeuten. Kein Swap und unauffällige si/so-Werte schließen einen Engpass jedoch nicht aus. Bei Containern können zudem niedrigere Grenzen als für den gesamten VPS gelten.

4. Nach OOM-Ereignissen und Dienstgrenzen suchen

Aktuelle Kernelmeldungen nach Speicherabbrüchen durchsuchen
journalctl -k -b --since '-30min' --no-pager | grep -Ei 'out of memory|oom-kill|killed process'

Diese Suche findet auch OOM-Warnungen und Handler-Aufrufe, die keine Prozessbeendigung beweisen. Bestätigen Sie eine ausdrückliche OOM-Prozessbeendigung, etwa durch „Killed process“, und gleichen Sie Zeitpunkt und PID mit dem betroffenen Dienst ab. Ein leerer Trefferbereich schließt OOM nicht aus: Leserechte, Aufbewahrung oder Zeitfilter können Ereignisse verbergen. Auch Exit-Code 137 allein beweist kein OOM-Ereignis.

Ein Container oder systemd-Dienst kann seine Speichergrenze erreichen, obwohl der VPS noch RAM hat. Bei cgroup v2 setzt memory.max eine Grenze. Prüfen Sie die Dienstgruppe und übergeordnete Gruppen beziehungsweise Slices: Ein lokales memory.max=max hebt strengere Grenzen übergeordneter Gruppen nicht auf. In memory.events zählt oom OOM-Situationen; oom_kill zählt durch einen OOM-Killer beendete Prozesse. Zähleranstiege nennen keine PID: Gleichen Sie sie mit dem Zeitfenster und Prozessmeldungen ab. Mehr VPS-RAM hebt konfigurierte Dienstgrenzen nicht automatisch an.

5. Auffällige Prozesse ohne Eingriff eingrenzen

Prozesse nach CPU und residentem Speicher sortieren
ps -eo pid,comm,%cpu,%mem,rss --sort=-%cpu | head -n 12
ps -eo pid,comm,%cpu,%mem,rss --sort=-rss | head -n 12

Die Anzeige verwendet Prozessnamen statt vollständiger Argumente, um etwa Zugangsdaten in Kommandozeilen nicht unnötig auszugeben. Trotzdem sollten Sie Diagnoseausgaben vor dem Weitergeben prüfen. RSS beschreibt unter Linux den residenten Speicher in KiB. Gemeinsam genutzte Speicherseiten können in mehreren Prozessen auftauchen; die Summe aller RSS-Werte ist deshalb kein exakter Gesamtverbrauch.

Der CPU-Wert von ps ist über die bisherige Prozesslaufzeit gemittelt und keine präzise Messung der letzten Sekunde. Nutzen Sie die Liste als Ausgangspunkt und vergleichen Sie sie mit wiederholten Messungen, Diensten und geplanten Aufgaben. Ein großer Datenbankprozess ist nicht schon wegen seiner Größe fehlerhaft.

6. Vor einer Vergrößerung die Arbeitslast prüfen

  • Überlappende Backups oder Importe zeitlich entzerren und ihre Parallelität prüfen.
  • Langsame Abfragen, fehlende geeignete Indizes und unnötig wiederholte Arbeit untersuchen.
  • Anzahl und Speicherbedarf von Workern an den tatsächlich verfügbaren RAM anpassen.
  • Unerwarteten Verkehr und Fehlerschleifen anhand passender Anwendungsprotokolle eingrenzen.

Ändern Sie jeweils einen nachvollziehbaren Faktor und vergleichen Sie denselben Ablauf erneut. Weniger parallele Worker können Speicherdruck senken, aber Warteschlangen verlängern; prüfen Sie beides. Caches pauschal zu leeren oder Prozesse ohne Kenntnis ihrer Aufgabe abzubrechen liefert keine belastbare Optimierung. Ein wachsender Speicherbedarf nach jeder gleichartigen Anfrage kann beispielsweise eine Anwendungsanalyse erfordern.

7. Ein Upgrade mit Messwerten begründen

Mehr RAM ist plausibel, wenn der notwendige Arbeitsbestand trotz sinnvoller Konfiguration dauerhaft unter Speicherdruck steht. Zusätzliche vCPU können bei parallelisierbarer Rechenlast helfen. Eine serielle Engstelle, eine langsame externe API oder eine feste Containergrenze wird dadurch nicht automatisch beseitigt. Benennen Sie vor der Bestellung die erwartete Wirkung.

  • Zeitfenster und betroffene Funktion.
  • Wiederholte CPU-, Speicher- und I/O-Beobachtungen.
  • Bereits untersuchte Jobs, Konfigurationen und Dienstgrenzen.
  • Ein Erfolgskriterium wie kürzere Warteschlangen oder ausbleibende Speicherabbrüche.

Prüfen Sie nach jeder Änderung auch Fehlerrate und Antwortzeit. Die technische Ressource ist ein Mittel zum zuverlässigeren Betrieb; eine grüne Auslastungsanzeige allein bestätigt noch keine funktionierende Anwendung.

Umfang der Prüfung

Die verlinkten Primärquellen und die beschriebenen Optionen wurden am 1. Oktober 2026 geprüft. Die Shell-Beispiele wurden auf Syntax geprüft, aber nicht auf einem Produktionsserver ausgeführt. Eine vollständige Migration oder Fehlerbehebung auf einem VPS wurde nicht getestet. Prüfen Sie den Ablauf mit Ihren Softwareversionen, Berechtigungen und Daten in einer getrennten Umgebung.

Offizielle Quellen

Prüfen Sie Versions- und Konfigurationsdetails in der aktuellen Dokumentation des jeweiligen Projekts.