Wie viel Arbeitsspeicher und wie viele Kerne braucht eine Website?
Den meisten Websites reichen 2 GB Arbeitsspeicher und ein bis zwei Kerne, ein Shop mit tausenden Produkten braucht 4 GB und zwei Kerne. Der Arbeitsspeicher ist wichtiger als die Kerne: Fehlt er, wird die Website langsam oder stürzt ab, während ein zusätzlicher Kern ohne Speicher kaum etwas bringt. Unten zeige ich, wie Sie den Speicherbedarf Ihrer Website berechnen und wie Sie herausfinden, wie viel sie tatsächlich verbraucht.
Ist die Website noch nicht online und wissen Sie nicht, wie viel Sie nehmen sollen, starten Sie mit 2 GB Arbeitsspeicher und ein bis zwei Kernen. Das reicht für einen Blog, eine Unternehmenswebsite und einen kleinen WordPress-Shop, und bei den meisten Anbietern lässt sich der Tarif später ohne Neuinstallation vergrößern. Läuft die Website schon, müssen Sie nicht raten: In fünf Minuten sehen Sie, wie viel Speicher sie belegt, und nehmen einen Tarif mit etwa 30 % Reserve.
Der häufigste Fehler geht immer in dieselbe Richtung: Man nimmt vier Kerne und 1 GB Arbeitsspeicher, weil Kerne nach mehr klingen. Für eine Website ist das eine schlechte Kombination. PHP und die Datenbank verbrauchen ein Gigabyte in wenigen Minuten, der Server lagert Speicher auf die Festplatte aus, und Seiten brauchen mehrere Sekunden, obwohl der Prozessor fast nichts zu tun hat.
Was Sie für Ihr Geld bekommen
Ich habe rund 27.700 VPS-Tarife von 2.200 Anbietern aus dem Katalog von accsly mit Stand 27. Oktober 2026 nach Monatspreis sortiert und für jede Preisstufe den Median bei Arbeitsspeicher, Kernen und Festplatte ermittelt. Die Preise sind aus Rubel umgerechnet und grob auf Euro gerundet.
| Preis pro Monat | Arbeitsspeicher | Kerne | Festplatte |
|---|---|---|---|
| bis 3 € | 1 GB | 1 | 20 GB |
| 3 bis 6 € | 2 GB, bei einem Viertel 1 GB | 1 | 25 GB |
| 6 bis 10 € | 2 GB | 2 | 40 GB |
| 10 bis 20 € | 4 GB | 2 | 60 GB |
| 20 bis 40 € | 8 GB | 4 | 100 GB |
| 40 bis 80 € | 12 GB | 6 | 160 GB |
Das übliche Verhältnis am Markt ist ein Kern pro 2 GB Arbeitsspeicher. Tarife mit 2 GB teilen sich fast genau auf: Die Hälfte hat einen Kern, die andere Hälfte zwei. Bei 4 GB haben 61 % der Tarife zwei Kerne, bei 8 GB haben 57 % vier Kerne.
Ein Server mit 4 GB Arbeitsspeicher kostet im Median über alle Länder etwa 18 € im Monat, in deutschen Rechenzentren etwa 16 €. Auswahl nach Größe: VPS mit 2 GB, VPS mit 4 GB, VPS mit 8 GB.
Wohin der Arbeitsspeicher auf einem Webserver geht
Eine PHP-Website mit Datenbank teilt den Speicher unter vier Verbrauchern auf. Kennen Sie deren Bedarf, können Sie die nötige Größe auf einem Zettel ausrechnen.
- Das System selbst. Ein frisches Ubuntu oder Debian belegt nach dem Start 150 bis 300 MB.
- Der Webserver nginx braucht einige Dutzend Megabyte, den können Sie vernachlässigen.
- PHP-FPM. Jeder PHP-Worker belegt 40 bis 100 MB, bei WordPress mit einem Dutzend Plugins, bei Shopware oder Magento auch mehr. Es laufen so viele Prozesse, wie die Website Anfragen gleichzeitig bearbeitet.
- MySQL oder MariaDB. Der größte Verbraucher. Die Datenbank hält einen Puffer mit Daten und Indizes im Speicher, dazu kommen einige Megabyte pro Verbindung.
Ein Control Panel wie Plesk oder FastPanel kostet weitere 200 bis 500 MB, Redis als Cache ab 50 MB bis zur Größe dessen, was Sie darin ablegen.
Angenommen, Sie betreiben einen WooCommerce-Shop mit 5.000 Produkten und einer 800 MB großen Datenbank. Das System belegt 300 MB, der Datenbankpuffer für alle Daten mit Reserve 1 GB, die Datenbank selbst noch einmal 300 MB, 15 PHP-Prozesse zu je 80 MB 1,2 GB, Redis 100 MB. Zusammen sind das rund 3 GB. Auf einem Server mit 4 GB bleibt ein Gigabyte, das Linux als Dateicache nutzt, und das ist gut so. Auf 2 GB läuft der Shop auch, aber Datenbankpuffer und Zahl der PHP-Prozesse müssen Sie halbieren, und in Aktionswochen werden die Katalogseiten langsamer.
Und wie viele Kerne braucht es?
Weniger, als man denkt. Ein Kern führt zu jedem Zeitpunkt eine PHP-Anfrage aus. Braucht eine Seite 200 ms, liefert ein Kern fünf solcher Seiten pro Sekunde aus, zwei Kerne zehn.
Rechnen wir das in Besucher um. Eine Website mit 10.000 Besuchern am Tag zeigt rund 30.000 Seiten. Auf die stärkste Stunde entfällt etwa ein Zehntel, also 3.000 Seiten, weniger als eine pro Sekunde. Das schafft ein Kern. Ein zweiter hilft, damit Backend, Produktimport, Backups und Suchmaschinen-Crawler die Website für Besucher nicht ausbremsen. Und mit Seitencache erreicht der Großteil der Anfragen PHP gar nicht erst.
Kerne brauchen Sie dort, wo sich viele Seiten nicht cachen lassen: Katalogfilter, Suche, Warenkorb, Kundenkonto. Außerdem fressen schwere Hintergrundjobs Kerne, etwa Bildbearbeitung, Exporte zu Marktplätzen und der Import von Preislisten. Und mehrere Websites auf einem Server.
Kerne auf Vorrat zu bezahlen, ist ärgerlich. Bei 4 GB Arbeitsspeicher kostet ein Tarif mit vier Kernen im Marktmedian etwa 24 €, mit zwei Kernen etwa 17 €, also rund 7 € im Monat Unterschied. Bei 8 GB liegt der Unterschied zwischen zwei und vier Kernen nur bei etwa 2,60 €, auf dieser Größe sind vier Kerne also fast geschenkt. Für PHP zählt außerdem der Takt: Eine Seite wird auf einem Kern gebaut, und mit 4,5 GHz ist sie spürbar schneller fertig als mit 2,2 GHz. Solche Tarife finden Sie in der Auswahl VPS mit hoher Taktfrequenz.
Was Sie für typische Websites nehmen sollten
- Landingpage, statische Website, Visitenkarte ohne Datenbank: 1 GB und ein Kern. Das sind die günstigsten Tarife, hier gibt es nichts, wofür sich mehr Geld lohnt: VPS mit 1 GB.
- Blog oder Unternehmenswebsite mit WordPress und Cache: 2 GB und ein bis zwei Kerne: VPS für WordPress.
- Shop mit tausenden Produkten auf WooCommerce, OpenCart oder PrestaShop: 4 GB und zwei Kerne: VPS für einen Onlineshop.
- Shopware oder Magento: ab 4 GB, für einen Shop mit großem Katalog 8 GB und vier Kerne.
- Laravel-Anwendung mit Queues und Redis: 2 bis 4 GB, denn jeder Queue-Worker hält einen eigenen PHP-Prozess im Speicher. Auswahl: VPS für Laravel.
- Mehrere Websites und ein Control Panel: Addieren Sie den Bedarf der Websites und rechnen Sie 0,5 bis 1 GB für das Panel hinzu.
Wie viel Speicher die Website tatsächlich verbraucht
Melden Sie sich per SSH auf dem Server an und führen Sie aus:
free -m
Die Ausgabe sieht etwa so aus:
total used free shared buff/cache available
Mem: 3915 1720 240 60 1955 1890
Swap: 1023 12 1011
Lassen Sie sich von der kleinen Zahl in der Spalte free nicht erschrecken. Linux nutzt freien Speicher als Dateicache, das ist die Spalte buff/cache, und gibt ihn Programmen sofort zurück, wenn sie ihn brauchen. Entscheidend ist available: Hier hat der Server 1,9 GB, die Programme sofort nutzen können. Liegt available zu Spitzenzeiten unter 10 % von total, ist der Speicher knapp.
Die zweite Prüfung: Nutzt der Server den Swap?
vmstat 1 10
Der Befehl gibt zehnmal im Sekundenabstand eine Zeile mit Zahlen aus. Achten Sie auf die Spalten si und so: wie viele Daten der Server pro Sekunde aus dem Swap liest und hineinschreibt. Nullen bedeuten, alles ist in Ordnung, auch wenn in der Swap-Zeile von free etwas belegt ist. Stehen dort ständig Hunderte oder Tausende, lagert der Server Speicher auf die Festplatte aus, und das bremst die Website stärker als jedes andere Problem.
Die dritte: Hat das System Prozesse wegen Speichermangels beendet? Ist der Speicher vollständig aufgebraucht, wählt der Linux-Kernel den größten Prozess aus, oft MySQL, und beendet ihn. Für Besucher sieht das aus wie die Meldung „Error establishing a database connection“ oder ein Fehler 502.
journalctl -k | grep -i -E 'out of memory|killed process'
Findet der Befehl etwas, hat der Speicher mindestens einmal nicht gereicht. Nehmen Sie einen größeren Tarif oder senken Sie den Bedarf von PHP und Datenbank, wie unten beschrieben.
Wer den Speicher belegt: htop und ps
Starten Sie htop (unter Ubuntu und Debian mit apt install htop installieren) und drücken Sie M, um die Prozesse nach Speicher zu sortieren. Die Spalte RES zeigt, wie viel Arbeitsspeicher ein Prozess belegt. Oben stehen meist mysqld oder mariadbd und eine lange Reihe von php-fpm-Prozessen.
Wie viel Speicher PHP insgesamt und pro Prozess belegt, berechnen Sie mit einer Zeile:
ps -eo rss,comm | awk '/php-fpm/ {s+=$1; n++} END {printf "%d Prozesse, %.0f MB gesamt, %.0f MB pro Prozess\n", n, s/1024, s/n/1024}'
Die Summe fällt etwas zu hoch aus, weil sich PHP-Prozesse einen Teil des Speichers teilen. Für eine Abschätzung reicht das. Führen Sie den Befehl tagsüber aus, wenn Besucher auf der Website sind: Nachts schlafen die Prozesse und wirken kleiner.
Aus der durchschnittlichen Prozessgröße ergibt sich, wie viele PHP-Prozesse Sie zulassen können. Legen Sie fest, wie viel Speicher Sie PHP geben, und teilen Sie das durch die Prozessgröße. 1.200 MB bei 80 MB pro Prozess ergeben zum Beispiel 15 Prozesse. Diese Zahl tragen Sie im Parameter pm.max_children der Pool-Datei ein, unter Ubuntu und Debian ist das /etc/php/8.3/fpm/pool.d/www.conf, wobei 8.3 Ihre PHP-Version ist. Setzen Sie den Wert höher, belegt PHP bei einem Besucheransturm den gesamten Speicher, und das System beginnt, Prozesse zu beenden. Setzen Sie ihn niedriger, warten überzählige Anfragen in der Warteschlange, dafür bleibt der Server am Leben.
Der MySQL-Puffer: größter Verbraucher und größter Hebel
Eine Datenbank arbeitet schnell, solange ihre Daten und Indizes in den Puffer im Arbeitsspeicher passen. Wie groß die Tabellen sind, verrät eine Abfrage in der mysql-Konsole:
SELECT ROUND(SUM(data_length + index_length) / 1024 / 1024) AS mb
FROM information_schema.tables WHERE engine = 'InnoDB';
Die aktuelle Puffergröße:
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
Nach der Installation liegt sie oft bei 128 MB. Für einen Shop mit 800 MB Datenbank ist das viel zu wenig: Jeder Katalogfilter liest dann von der Festplatte. Ob der Puffer reicht, zeigen zwei Zähler:
SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_read%';
Teilen Sie Innodb_buffer_pool_reads durch Innodb_buffer_pool_read_requests. Die erste Zahl gibt an, wie oft die Datenbank auf die Festplatte zugreifen musste, die zweite, wie viele Lesevorgänge es insgesamt gab. Ist der Quotient kleiner als 0,01, gehen also weniger als 1 % der Lesevorgänge auf die Festplatte, reicht der Puffer. Schauen Sie sich diese Werte an, nachdem der Server mindestens einen Tag gelaufen ist.
Setzen Sie den Puffer auf die Größe der Daten plus 10 bis 20 % für Wachstum, auf einem Server, auf dem daneben PHP läuft, aber höchstens auf die Hälfte des gesamten Speichers. Den Wert legen Sie mit der Zeile innodb_buffer_pool_size = 1G im Abschnitt [mysqld] der Konfiguration fest (unter Ubuntu ist das /etc/mysql/mysql.conf.d/mysqld.cnf, bei MariaDB eine Datei in /etc/mysql/mariadb.conf.d/), danach starten Sie die Datenbank neu. Passt die Datenbank nicht einmal in die Hälfte des Speichers, ist das ein ehrlicher Grund für einen größeren Tarif. In diesem Fall hilft auch eine schnelle Festplatte, mehr dazu im Artikel NVMe oder SSD für die Website.
Wann Sie Speicher aufstocken und wann Kerne
Der Speicher ist knapp, wenn available zu Spitzenzeiten unter 10 % fällt, in vmstat bei si und so keine Nullen stehen oder das Journal beendete Prozesse zeigt. Mehr Kerne helfen hier nicht.
Die Kerne sind knapp, wenn Speicher frei ist, die Website unter Last aber langsam reagiert. Prüfen Sie das mit uptime: Die drei Zahlen am Ende der Zeile zeigen die durchschnittliche Last über 1, 5 und 15 Minuten. Vergleichen Sie sie mit der Zahl der Kerne aus dem Befehl nproc. Liegt die Last zu Spitzenzeiten länger über der Zahl der Kerne und ist der Prozessor in htop mit php-fpm-Prozessen beschäftigt, brauchen Sie mehr Kerne oder einen Seitencache, der oft günstiger ist.
In zwei Fällen hilft ein größerer Tarif beim selben Anbieter nicht. Zeigt top in der Zeile %Cpu(s) einen hohen Wert bei st, mindestens 10 %, nehmen Ihnen Nachbarn auf dem physischen Server Prozessorzeit weg. Dann hilft nur ein anderer Anbieter oder ein Tarif mit dedizierten Kernen. Ist wa hoch, wartet der Prozessor auf die Festplatte, und Sie müssen das Festplattenproblem lösen, nicht das der Kerne.
Schwanken Sie zwischen zwei Größen, nehmen Sie die kleinere bei einem Anbieter, bei dem Sie den Tarif in wenigen Minuten im Panel hochstufen können. Prüfen Sie vor dem Kauf in der Beschreibung, ob ein Tarifwechsel ohne Neuinstallation möglich ist. Und wenn Sie die Website auf mehreren Konfigurationen testen möchten, ist stündliche Abrechnung praktisch: Ein Server für einen Abend kostet meist weniger als einen Euro. Die übrigen Tarifparameter erklärt der Artikel So wählen Sie einen VPS.