Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Speicher, CPU und Festplatte dimensionieren

Die Zahlen zu Arbeitsspeicher, CPU und Festplatte, die das Exponential-Repository tatsächlich nennt (PHP-Speichergrenzen, Velocity-Worker, OPcache, APCu, SQLite-Seitencache, MongoDB, Schwellen für die Festplatte…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/hosting/basics/sizing-memory-cpu-and-disk.md

On this page

This page is a translation. Read the English original

Speicher, CPU und Festplatte dimensionieren

Diese Seite ist für Systemadministratoren und Produktmanager bei einem Hosting-Anbieter, die Server und Tarife für Exponential-Websites dimensionieren. Sie beantwortet: welche Zahlen die Dokumentation und die Einstellungen des Projekts tatsächlich nennen, was auf einer laufenden Website Arbeitsspeicher, CPU und Festplatte verbraucht und wie Sie eine echte Website messen. Sie nennt keine Zahlen, die das Repository nicht nennt; Kapitel 2.10 sagt dasselbe: Die Dokumentation nennt wenige harte Zahlen, und das Buch erfindet keine weiteren.

Inhalt

  1. Die Zahlen, die das Repository nennt
  2. Arbeitsspeicher
  3. CPU
  4. Festplatte
  5. Messen, nicht raten
  6. Aus Messungen Tarife machen
  7. Checkliste
  8. Verwandte Seiten

Die Zahlen, die das Repository nennt

ElementWertQuelle
PHP memory_limit, Untergrenze des Installers64Msettings/setup.ini, [memory_limit] MinMemoryLimit
PHP memory_limit, Zustandsprüfungunter 128M ein Fehler, unter 256M eine WarnungSysteminformationen
PHP memory_limit unter FrankenPHP512M mitgeliefertsettings/velocity.ini, [FrankenPHPSettings] IniOptions[]
Ein Velocity-Workeretwa 10 MB privater Speicher (gemessen)settings/velocity.ini; Velocity-Webserver
Velocity-PoolWorkers=4 mitgeliefert; der eigene Standard der Engine ist, was in den RAM passt, höchstens 8 pro Kern und 64, nie weniger als 4settings/velocity.ini, Kapitel 2.10
OPcachememory_consumption=256, max_accelerated_files=20000, interned_strings_buffer=32Kapitel 10.12 und velocity.ini [PHPSettings]
APCu für Velocityapc.shm_size=256M (reserviert, nicht genutzt, bis er sich füllt)velocity.ini [PHPSettings]
SQLite-Seitencachebis zu 64 MB pro Prozess, der die Datenbank geöffnet hat; 256 MB Memory MapDatenbankunterstützung
SQLite VACUUMetwa die doppelte Größe der Datenbank als freier SpeicherplatzKapitel 9.2
Eine MongoDB-InstallationRAM mindestens 512 MB, empfohlen 2 GB; Festplatte mindestens 2 GB, empfohlen 10 GBReferenz zur Portierung, Abschnitt 24.1
Freier Speicherplatz, Zustandsprüfungunter 1 GB oder 5 % ein Fehler; unter 5 GB oder 10 % eine WarnungSysteminformationen
Log-Rotationjedes Log wird bei LogFileMaxSize=2097152 (2 MB) rotiert, LogFileRotateCount=3 werden behaltensettings/site.ini, [FileSettings]
Ein Kernel-Klon mit Historieetwa 370 MBKapitel 3.2

Arbeitsspeicher

Was auf einem Server mit Exponential-Websites Arbeitsspeicher verbraucht:

  • PHP-Prozesse. Jedes PHP-FPM-Kind oder jeder Velocity-Worker in der Spitze bis zu seinem memory_limit; Paketinstallationen, Importe und Bildarbeit brauchen am meisten. Planen Sie die Pool-Größen so, dass der geschäftigste Moment hineinpasst (Abstimmung von PHP-FPM).
  • Velocity-Worker halten ab dem Moment, in dem sie geforkt werden, je etwa 10 MB privaten Speicher, ob untätig oder nicht. Mit SpareWorkers hält der Pool in ruhigen Zeiten nur so viele und wächst unter Last bis Workers, wobei er untätige Worker nach IdleWorkerTimeout Sekunden beendet.
  • Gemeinsame Caches. OPcache (opcache.memory_consumption) und APCu (apc.shm_size) reservieren gemeinsamen Speicher. PHP-FPM nimmt sie aus seiner php.ini; Velocity setzt seine eigenen in velocity.ini [PHPSettings] IniOptions[], weil der Standard der Kommandozeile für APCu 32 MB beträgt, zu wenig für seinen Antwort-Cache und den SQL-Abfrage-Cache zusammen.
  • Die Datenbank. Der Seitencache von SQLite zählt pro Prozess, der sie genutzt hat: SQLitePragmas[]=cache_size=-16384 senkt ihn auf 16 MB, was auf Servern mit vielen kleinen SQLite-Websites hilft. Datenbankserver brauchen ihre eigene Dimensionierung.
  • Optionale Dienste. Solr, Valkey oder Redis, wenn ein Tarif sie enthält.

Hinweis Lesen Sie den Speicher von Velocity so, wie sein Kontrollzentrum ihn zeigt: als Proportional Set Size (PSS) des Elternprozesses und seiner Worker. Die Resident Set Size (RSS) jedes geforkten Workers zählt den gemeinsam genutzten Speicher immer wieder mit und summiert sich zu weit mehr, als die Maschine tatsächlich nutzt (Kapitel 2.10).

CPU

  • Zwischengespeicherte Seiten kosten wenig. Der Antwort-Cache von Velocity beantwortet anonyme Besucher im Serverprozess ohne Worker. settings/velocity.ini hält eine Messung fest: Ein Server beantwortet zwischengespeicherte Seiten mit etwa 0,3 ms CPU je Seite, etwa 3.500 pro Sekunde auf einer Maschine mit 12 Kernen; mit Instances über 1 verteilt der Kernel Verbindungen auf mehrere Server (zwei gemessen 6.600 bis 6.900, vier 12.200 bis 13.100). Gerenderte Seiten sind durch die Worker begrenzt, nicht dadurch.
  • Gerenderte Seiten (erste Aufrufe nach dem Leeren, angemeldete Redakteure, Suche) verbrauchen die CPU. Lassen Sie den Content-View-Cache und den Template-Block-Cache an (beide mitgeliefert), und lassen Sie den statischen Cache aus (Kapitel 10.12).
  • OPcache zählt. Unter Velocity ließ opcache.file_update_protection über 0 ein Rendering etwa das Vierfache der CPU kosten, die es unter PHP-FPM braucht; die mitgelieferte velocity.ini setzt es auf 0 (Opcode-Cache von Velocity).
  • FrankenPHP-Threads sind standardmäßig doppelt so viele wie CPU-Kerne, wenn [FrankenPHPSettings] Workers leer ist.
  • Cron und Bildarbeit bringen Lastspitzen: Bildvarianten werden bei der ersten Verwendung erzeugt, und die Cronjobs laufen nach Zeitplan.

Festplatte

Was wächstWoWie Sie es im Griff behalten
Hochgeladene Dateien und Bildvariantenvar/storage (pro Website var/<site>/storage)wächst mit den Inhalten; der Hauptfaktor für die Festplatte eines Tarifs
Cachesvar/cache (pro Website var/<site>/cache)werden geleert und neu aufgebaut; können auf einem Dateisystem im Arbeitsspeicher liegen (Pfade bei mehreren Websites)
Logsvar/log, var/vc/ für VelocityRotation (LogFileMaxSize, LogFileRotateCount, LogFileCompress), dazu logrotate des Systems für Cron-Logs
Die SQLite-Datenbankvar/storage/sqlite3/Platz für die doppelte Größe der Datenbank, für VACUUM und Backups
Backupsidealerweise außerhalb der Maschinenie nur auf derselben Festplatte
Codedie Installation, vendor/, Klone von ErweiterungenGit-Klone mit Historie brauchen mehr als Archive

Die Festplattenprüfung der Administration (Setup > Systeminformationen) schlägt unter 1 GB oder 5 % frei fehl und warnt unter 5 GB oder 10 %; nutzen Sie dieselben Schwellen in Ihrer Überwachung. Siehe auch das Runbook bei voller Festplatte.

Messen, nicht raten

php bin/php/console exp:benchmark --save=var/benchmark/base.json --allow-root-user
php bin/php/console exp:benchmark kernel --repeat=30 --allow-root-user
php bin/php/console exp:system:info --json --allow-root-user
du -sh var/storage var/cache var/log

exp:benchmark ruft die Startseite, Menüseiten, die Suchseite und die Anmeldeseite der Administration ab und gibt Median, p90 und p99 aus; gegenüber anderen Hosts ist es standardmäßig zurückhaltend (Benchmarking). exp:system:info gibt die Fakten und Zustandsprüfungen von Setup > Systeminformationen aus (Speichergrenze, OPcache und APCu, Festplatte, Arbeitsspeicher und Last der Maschine). Das Kontrollzentrum von Velocity zeigt den Speicher des Pools.

Tipp Bauen Sie eine Referenz-Website nach Ihrem häufigsten Tarif, messen Sie sie mit diesen Befehlen auf Ihrer Hardware, und dimensionieren Sie danach. Eine auf Ihren eigenen Servern gemessene Zahl ist mehr wert als jede Faustregel.

Aus Messungen Tarife machen

Das Repository nennt keine Tarifgrößen und keine Preise; dies sind die Dimensionen, für die ein Hoster Grenzen festlegen kann, jede mit den Befehlen oben messbar:

DimensionGemessen mit
Festplatte für var/storagedu -sh var/storage
PHP-Speicher pro Prozessmemory_limit und die Spitze des Pools
Anzahl der PHP-Workerdie Pool-Größe oder Workers von Velocity
DatenbankgrößeSetup > Systeminformationen, die Karte Datenbank
Upload-Größeupload_max_filesize, post_max_size

Checkliste

  • To do: memory_limit 256M oder mehr für Produktions-Pools.
  • To do: Workers von Velocity ausdrücklich gesetzt; SpareWorkers auf ausgelasteten Servern mit mehreren Websites erwogen.
  • To do: Größen von OPcache und APCu für PHP-FPM und für Velocity getrennt gesetzt.
  • To do: Speicher von Velocity als PSS gelesen.
  • To do: Festplattenüberwachung mit den Schwellen der Systeminformationen.
  • To do: Eine Referenz-Website auf Ihrer eigenen Hardware gemessen.

Verwandte Seiten

Werden Sie Exponential-Partner

Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x