Dedizierte vCPU auf Server-CPUs ab 2022 · NVMe · ohne KYC. Mit Krypto bezahlen: BTC, USDT, USDC, ETH, SOL, LTC, XMR
Sprache: Deutsch
Wählen Sie Ihre Kerne

Leitfaden · PostgreSQL · p99-Latenz

Wie viel CPU und RAM braucht PostgreSQL auf einem VPS mit dedizierten vCPU?

Wie viel CPU und RAM benötigt PostgreSQL auf einem VPS? Wie PostgreSQL Verbindungen in CPU-Arbeit umwandelt, was die PostgreSQL-18-Dokumentation über Arbeitsspeicher sagt, welcher Tarif zu welcher Datenbank passt und warum CPU-Steal zuerst in den langsamsten Abfragen auftaucht.

Zuletzt aktualisiert: · 7 Min. Lesezeit

Kurze Antwort

Wie viel CPU und RAM benötigt PostgreSQL auf einem VPS?

PostgreSQL benötigt etwa eine vCPU pro gleichzeitig laufender Abfrage und genug RAM, um den Arbeitsspeicherbedarf (Working Set) im Cache zu halten. Bei Cobaltfell passt Fell 2 (4 GB) zu einer kleinen Produktionsanwendung und Fell 8 (16 GB) zu einer Datenbank, die Berichte neben dem Live-Traffic ausführt. Die PostgreSQL-18-Dokumentation, gelesen am 2. November 2026, nennt 25 % des RAM als Ausgangswert für shared_buffers.

Wie viele vCPU nutzt PostgreSQL?

PostgreSQL nutzt einen CPU-Thread pro laufender Abfrage, denn jede Verbindung erhält einen eigenen Backend-Prozess. Die Dokumentation nennt das ein „Prozess pro Benutzer“-Modell: Der Postmaster startet für jede Verbindung ein neues Backend. Der CPU-Bedarf einer Datenbank richtet sich daher nach der Anzahl der gleichzeitig ausgeführten Abfragen, nicht nach der Anzahl der offenen Verbindungen. Eine untätige Verbindung kostet Speicher und keine CPU.

Drei Dinge kommen zu Ihren Abfragen als zusätzliche Threads hinzu:

  • Parallele Abfrage. Ein großer Scan zieht Helfer heran: max_parallel_workers_per_gather hat den Standardwert 2 und max_parallel_workers den Standardwert 8, entnommen aus max_worker_processes (Standard 8).
  • Autovacuum. Bis zu autovacuum_max_workers Prozesse (Standard 3) bereinigen Tabellen im Hintergrund.
  • Die Anwendung, wenn sie auf demselben VPS läuft.

Auf einem 2-vCPU-VPS kann ein Bericht, der parallel läuft, jeden Thread belegen, während die kurzen Abfragen der Anwendung dahinter warten. max_parallel_workers_per_gather für die Reporting-Rolle zu senken oder einen Tarif höher zu gehen, löst das. Die Regel Thread versus Kern hinter diesen Zahlen wird erklärt in ist eine dedizierte vCPU ein Kern oder ein Thread.

Wie viel RAM benötigt PostgreSQL auf einem VPS?

Starten Sie shared_buffers bei 25 % des RAM des VPS und überlassen Sie den Großteil des Rests dem Page Cache des Betriebssystems. Die PostgreSQL-18-Dokumentation nennt diesen Ausgangswert für einen dedizierten Datenbankserver mit 1 GB oder mehr RAM und ergänzt, dass mehr als 40 % wahrscheinlich nicht besser funktionieren, weil PostgreSQL auch auf den Cache des Kernels angewiesen ist. Der mitgelieferte Standardwert ist 128 MB.

Zwei weitere Einstellungen ergeben sich aus dem RAM:

  • effective_cache_size ist nur eine Schätzung für den Planer (Standard 4 GB). Setzen Sie ihn auf den Speicher, den shared_buffers und der Page Cache zusammen halten, damit Index-Scans korrekt bewertet werden.
  • work_mem (Standard 4 MB) gilt für jeden Sortier- oder Hash-Schritt in jeder Sitzung. Eine komplexe Abfrage nutzt ihn mehrfach, und viele Sitzungen tun dies gleichzeitig, also wächst er mit Bedacht.

Laut der Erhebung von Cobaltfell vom 2. November 2026 lieferten 106 der 202 Tarife mit dedizierter CPU, die bei Hosts erfasst wurden, die Krypto ohne Identitätsprüfung akzeptieren, 4 GB RAM oder mehr pro vCPU. Für eine Datenbank zählt RAM pro vCPU genauso viel wie die Anzahl der vCPU.

Die Tarife hinter dieser Zahl sind aufgeführt in was ein dedizierter CPU-VPS im November 2026 pro Kern kostet.

shared_buffers = 25 % des RAM des Tarifs, der Ausgangswert aus der PostgreSQL-18-Dokumentation. Die Spalte „Passt“ ist ein Ausgangspunkt, keine Messung: Unsere eigenen YABS- und Geekbench-6-Ergebnisse sowie die von uns gemessene Steal Time werden mit Datum veröffentlicht, sobald unsere erste Testmaschine geliefert ist. Bis dahin nennen wir keinen eigenen Performance-Wert.
PlanvCPURAMshared_buffers bei 25 %Geeignet für
Fell 224 GB1 GBDatenbank einer einzigen Anwendung, wenige gleichzeitig ausgelastete Verbindungen
Fell 448 GB2 GBEin SaaS-Backend mit stetigem Traffic oder eine Datenbank plus ihre Anwendung
Fell 8816 GB4 GBLive-Traffic plus Berichte oder parallele Scans
Fell 161632 GB8 GBViele gleichzeitige Abfragen und ein Arbeitsspeicherbedarf (Working Set) von Dutzenden Gigabyte

Wie wirkt sich CPU-Steal auf die PostgreSQL-p99-Latenz aus?

CPU-Steal dehnt die langsamsten 1 % der Abfragen lange bevor er den Durchschnitt bewegt. Der Linux-Kernel beschreibt Steal als unfreiwilliges Warten: Zeit, in der eine vCPU Arbeit hatte, während der Hypervisor jemand anderen laufen ließ. Ein Backend, das mitten in einer Abfrage pausiert wird, stoppt einfach, und jeder Client, der auf diese Abfrage wartet oder auf eine von ihr gehaltene Sperre, stoppt mit.

Die Pausen sind kurz und unregelmäßig, daher treffen sie nur die Abfragen, die in diesem Moment gerade auf der CPU liegen. Als Veranschaulichung, nicht als Messung: Wenn eine vCPU hier und da einige Dutzend Millisekunden an einen Nachbarn verliert, braucht eine 2-ms-Abfrage, die in eines dieser Fenster fällt, zehnmal so lange, während die Tausenden Abfragen drumherum mit normaler Geschwindigkeit laufen. Der Mittelwert ändert sich kaum; das 99. Perzentil trägt die gesamten Kosten.

Eine Datenbank auf einer geteilten vCPU wirkt daher in Durchschnittswerten gesund und erzeugt trotzdem Timeouts. Drei Messwerte legen es offen:

  • Steal: die Spalte %steal von mpstat während der verkehrsreichsten Stunde, erklärt in was CPU-Steal-Zeit ist und wie man sie auf einem VPS prüft.
  • Worst Cases: pg_stat_statements meldet max_exec_time und stddev_exec_time pro Statement, aber keine Perzentile.
  • Perzentile: log_min_duration_statement (zum Beispiel 250ms) protokolliert langsame Statements; ein Latenz-Histogramm in der Anwendung liefert das p99 selbst.
Aktive Abfragen zählen, Worst Cases finden, Steal beobachten
# queries on the CPU right now (run at your busiest hour)
psql -c "SELECT count(*) FROM pg_stat_activity WHERE state = 'active';"

# statements with the worst single run (needs pg_stat_statements in shared_preload_libraries)
psql -c "SELECT left(query, 60) AS query, calls,
  round(mean_exec_time::numeric, 2) AS mean_ms,
  round(max_exec_time::numeric, 2) AS max_ms
  FROM pg_stat_statements ORDER BY max_exec_time DESC LIMIT 10;"

# steal per vCPU, every 5 seconds (package sysstat)
mpstat -P ALL 5 6

Was ändert eine dedizierte vCPU für eine Datenbank?

Eine dedizierte vCPU beseitigt die eine Quelle von Tail-Latenz, die sich von innerhalb des VPS nicht beheben lässt. Langsame Pläne, fehlende Indizes und Lock-Contention liegen in der Hand des Betreibers; der Batch-Job eines Nachbarn auf einem geteilten Kern nicht. Der allgemeine Fall ist dargestellt in was der Unterschied zwischen einer geteilten und einer dedizierten vCPU ist. Auf einem Cobaltfell-VPS:

  • CPU: Eine vCPU ist ein Hardware-Thread des Host-Prozessors. Ihre vCPUs sind eins zu eins an Ihren VPS gebunden und werden nie an einen anderen Kunden verliehen, und die beiden Threads eines physischen Kerns bleiben zusammen, sodass je 2 vCPU einen ganzen Kern ergeben, den kein Nachbar teilt.
  • Steal: Bei einer dedizierten vCPU sollte die Steal Time bei oder nahe null liegen. Wir veröffentlichen den Wert, den wir auf unseren eigenen Maschinen messen, mit Datum, und niemals eine Schätzung.
  • Arbeitsspeicher: Der Arbeitsspeicher Ihres Plans ist für Ihren VPS reserviert und nicht überbucht.
  • Festplatte: NVMe-Speicher in jedem Plan.
  • Load: Volllast ist erlaubt, solange Ihre Arbeit sie benötigt: keine CPU-Credits, kein Burst-Fenster und kein Drosseln nach einigen Minuten bei 100 %. Ein langer VACUUM oder Index-Build läuft mit voller Leistung.

Die Prozessorfamilie ist AMD EPYC 9004/9005 (Zen 4 / Zen 5).

Wann ist ein VPS der falsche Ort für PostgreSQL?

Ein VPS ist der falsche Ort, wenn die jede Minute abgefragten Daten deutlich größer sind als der RAM des größten Tarifs oder wenn Replikate und Backups für Sie verwaltet werden müssen. Fell 16 hat 32 GB. Ein Arbeitsspeicherbedarf (Working Set), der nicht in den Speicher passt, macht jede Abfrage zu Festplattenlesevorgängen, und dann gibt der Speicherdurchsatz, nicht die vCPU, das Tempo vor.

Backups bleiben beim Betreiber: Backups sind in keinem Plan enthalten: Bewahren Sie eine Kopie Ihrer Daten woanders auf. Ein nächtliches pg_dump oder ein WAL-Archiv, das an einen anderen Ort im Speicher gesendet wird, deckt die meisten kleinen Datenbanken ab; ein Wiederherstellungstest gehört in den Kalender, bevor man ihn braucht.

Failover über zwei oder drei VPS mit Streaming-Replikation funktioniert, ist aber selbstverwaltet. Cobaltfell verkauft die Server, keine verwaltete Datenbank. Preise für jede Größe sind aufgeführt unter wie viel ein VPS mit dediziertem Kern kostet.

Welche anderen Fragen stellen Leute zu PostgreSQL auf einem VPS?

Sind 2 vCPU für PostgreSQL genug?

Für eine Anwendung mit mäßig vielen ausgelasteten Verbindungen ja. Zwei vCPU führen zwei Abfragen gleichzeitig aus; eine dritte wartet auf einen freien Thread. Fell 4 ist der nächste Schritt, wenn pg_stat_activity oft mehr aktive Abfragen als vCPU zeigt oder wenn die App den VPS mitnutzt.

Sollten App und Datenbank einen VPS gemeinsam nutzen?

Auf Fell 2 und Fell 4 ist das üblich und spart einen Netzwerk-Hop. Die ausgelasteten Prozesse der App zählen als zusätzliche vCPU-Nutzer. Trennen Sie sie, wenn Deploys oder Traffic-Spitzen im Slow-Query-Log der Datenbank auftauchen.

Braucht PostgreSQL auf einem VPS einen Connection Pooler?

In den meisten Webanwendungen ja. max_connections hat den Standardwert 100, und jede Verbindung ist ein vollständiger Prozess, der Speicher hält. Ein Pooler wie PgBouncer hält die Anzahl aktiver Backends nahe an der vCPU-Anzahl, während die App so viele Client-Verbindungen öffnet, wie sie braucht.

Was sollte man nach der Installation von PostgreSQL zuerst einstellen?

shared_buffers bei 25 % des RAM, effective_cache_size auf den Speicher, den shared_buffers und der Page Cache zusammen halten, und log_min_duration_statement, damit langsame Abfragen eine Spur hinterlassen. work_mem bleibt nahe seinem Standardwert, bis ein langsamer Plan eine Sortierung zeigt, die auf die Festplatte ausgelagert wird.

Sind Backups bei einem Cobaltfell-VPS inklusive?

Nein. Backups sind in keinem Plan enthalten: Bewahren Sie eine Kopie Ihrer Daten woanders auf.

Quellen (9)
  1. PostgreSQL 18: Ressourcenverbrauch (shared_buffers, work_mem, Worker-Prozesse) — The PostgreSQL Global Development Group (checked 2026-11-02)
  2. PostgreSQL 18: Abfrageplanung (effective_cache_size) — The PostgreSQL Global Development Group (checked 2026-11-02)
  3. PostgreSQL 18: Verbindungen und Authentifizierung (max_connections) — The PostgreSQL Global Development Group (checked 2026-11-02)
  4. PostgreSQL 18: Vacuuming (autovacuum_max_workers) — The PostgreSQL Global Development Group (checked 2026-11-02)
  5. PostgreSQL 18: Fehlerberichterstattung und Protokollierung (log_min_duration_statement) — The PostgreSQL Global Development Group (checked 2026-11-02)
  6. PostgreSQL 18: Wie Verbindungen aufgebaut werden — The PostgreSQL Global Development Group (checked 2026-11-02)
  7. PostgreSQL 18: pg_stat_statements — The PostgreSQL Global Development Group (checked 2026-11-02)
  8. Das /proc-Dateisystem: /proc/stat (steal) — The Linux kernel documentation (checked 2026-11-02)
  9. mpstat(1)-Handbuchseite (%steal) — man7.org / sysstat (checked 2026-11-02)

Ab $10.49/Monat · ohne KYC

Wählen Sie Ihre Kerne