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

Dedizierte Server

Wie Sie einen dedizierten Server für Exponential nutzen - eine große Website oder viele abgeschottete, die Größe des Worker-Pools und der Instanzen von Velocity aus den gemessenen Zahlen der Quellen, die Datenbank auf…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/hosting/models/dedicated-servers.md

On this page

This page is a translation. Read the English original

Dedizierte Server

Diese Seite ist für Hosting-Anbieter, die Exponential auf einen dedizierten (physischen) Server stellen: entweder eine große Kunden-Website auf einer eigenen Maschine oder viele Kunden-Websites auf einer großen Maschine. Sie beantwortet, wie die Quellen des Projekts die Ressourcen einer solchen Maschine zu nutzen empfehlen, welche Zahlen sie nennen und was Sie selbst messen müssen.

Inhalt

  1. Zwei Arten, einen dedizierten Server zu nutzen
  2. Die Kerne nutzen: Worker und Instanzen
  3. Arbeitsspeicher: PSS lesen, nicht RSS
  4. Die Datenbank auf einem dedizierten Server
  5. Viele Websites auf einer Maschine
  6. Messen, bevor Sie kaufen
  7. Checkliste

Zwei Arten, einen dedizierten Server zu nutzen

NutzungFormHauptanliegen
Eine große WebsiteVelocity zu den Besuchern hin, ein großer Worker-Pool, vielleicht mehrere Instanzen; die Datenbank auf derselben Maschine oder einer zweitenalle Kerne nutzen; Schreibvorgänge in die Datenbank
Viele Kunden-Websitesein PHP-FPM-Pool oder eine Velocity-Instanz pro Website, jeweils als eigener BenutzerAbschottung; faire Aufteilung von Speicher und CPU

Ein dedizierter Server ist Stufe 1, 2 oder 3 nach der Distribution, die Sie installieren, genau wie eine virtuelle Maschine (Betriebssystemunterstützung). Der eigene Entwicklungsserver des Projekts ist eine Maschine mit AlmaLinux 9 und Plesk, die Apache mit PHP-FPM 8.5 und Exponential Velocity auf derselben Installation betreibt (Stufe 1).

Die Kerne nutzen: Worker und Instanzen

Die Kapazität von Velocity wird in settings/override/velocity.ini.append.php, [ServerSettings] gesetzt (8.3.6):

EinstellungMitgeliefertBedeutung
Workers4die Größe des Pools; mit SpareWorkers das Maximum, bis zu dem er wächst
SpareWorkers0über 0: ein dynamischer Pool, der so viele untätige Worker vorhält
IdleWorkerTimeout60Sekunden, die ein zusätzlicher Worker untätig bleiben darf, bevor er beendet wird
Instances1Server, die sich mit SO_REUSEPORT dieselben Ports teilen (Linux und die BSDs); Workers und SpareWorkers gelten pro Instanz

Kapitel 8 schlägt als guten Anfang für eine Produktions-Website einen dynamischen Pool vor:

# settings/override/velocity.ini.append.php
[ServerSettings]
Workers=64
SpareWorkers=8
IdleWorkerTimeout=60

Was die Quellen gemessen haben: Ein Server beantwortet zwischengespeicherte Seiten in seinem eigenen Prozess und ist durch einen Kern begrenzt (gemessen: etwa 2.950 zwischengespeicherte Seiten pro Sekunde über TLS; vier Instanzen etwa 12.000). Gerenderte Seiten sind durch die Worker begrenzt, nicht durch die Anzahl der Instanzen. Auf einer Maschine mit vielen Kernen verteilt Instances über 1 den zwischengespeicherten Verkehr; die Anzahl der Worker entscheidet über den gerenderten Verkehr.

Hinweis Diese Zahlen sind die eigene Messung des Projekts auf seiner eigenen Maschine, zitiert, damit Sie die Form der Skalierung kennen. Sie sind kein Versprechen für Ihre Hardware. Messen Sie Ihre eigenen (siehe Messen, bevor Sie kaufen).

Mit Apache oder nginx und PHP-FPM übernehmen die Prozesseinstellungen des PHP-FPM-Pools die Rolle von Workers; siehe Abstimmung von PHP-FPM.

Arbeitsspeicher: PSS lesen, nicht RSS

Ein Worker eines vollständigen Exponential kostet etwa 10 bis 11 MB eigenen Speicher (gemessen als PSS auf 12 Kernen und PHP 8.5); der gemeinsame Teil, etwa 47 MB, wird einmal bezahlt. Beurteilen Sie den Speicher nach PSS oder privatem Speicher, nie nach RSS, das jede gemeinsame Seite einmal pro Worker zählt und einen Pool um ein Vielfaches überschätzt (8.3.6).

Für einen dedizierten Server heißt das: Ein großer Pool ist im Speicher günstig; die Grenzen kommen von CPU, Datenbank und Caches. Das Kontrollzentrum von Velocity zeigt den Speicher als PSS (Kontrollzentrum von Velocity).

Worker werden außerdem von selbst ersetzt nach maxRequests (1000), wenn der Heap workerMemoryCeiling überschreitet, oder wenn eine Anfrage länger als requestTimeout läuft (30 Sekunden, der Client erhält 504). Das sind Einstellungen der Engine (Worker-Pool von Velocity).

Die Datenbank auf einem dedizierten Server

In der offiziellen Reihenfolge: 1. SQLite 3 (der Standard) · 2. PostgreSQL · 3. MongoDB · 4. MariaDB · 5. Oracle · 6. MySQL. Microsoft SQL Server ist derzeit bekanntermaßen mit zusätzlicher Arbeit möglich.

  • 1. SQLite 3 auf derselben Maschine skaliert Lesezugriffe mit der Anzahl der Prozesse; Schreibvorgänge stehen in einer Warteschlange. Es ist eine vollwertige Produktionsdatenbank für eine Maschine. Rechnen Sie mit bis zu 64 MB Seitencache pro Prozess, der die Datenbank geöffnet hat, wenn Sie den Speicher für einen großen Worker-Pool bemessen (SQLitePragmas[]=cache_size=-16384 senkt ihn auf 16 MB) (Leistung und Skalierung).
  • 2. PostgreSQL (und 4. MariaDB, 6. MySQL) skalieren Schreibvorgänge mit Sperren auf Zeilenebene; unter Velocity hält jeder Worker seine Verbindung, sodass der Datenbankserver so viele Verbindungen annehmen muss, wie es Worker über alle Instanzen gibt.
  • Eine zweite Maschine für die Datenbank ist der Schritt zu mehreren Web-Knoten.

Die meisten Anfragen erreichen die Datenbank nie: Der Antwort-Cache von Velocity, der View-Cache und der Template-Block-Cache antworten zuerst (Cache-Schichten).

Viele Websites auf einer Maschine

Für viele Kunden auf einem dedizierten Server folgen Sie der Regel zur Abschottung aus der README.md im Wurzelverzeichnis: Betreiben Sie eine Velocity-Instanz pro Website hinter einem Proxy, jede als eigener Benutzer des Betriebssystems, oder nutzen Sie einen klassischen Server mit einem PHP-FPM-Pool pro Website (8.1). Eine Exponential-Installation mit mehreren Siteaccesses ist keine Grenze zwischen Kunden (Trennung von Mandanten).

Jede Website hat dann ihr eigenes var/, ihre eigenen Cron-Zeilen in der Crontab ihres eigenen Benutzers und ihre eigenen Backups.

Messen, bevor Sie kaufen

Das Installationsbuch nennt wenige harte Zahlen und erfindet keine weiteren (2.10 Arbeitsspeicher, CPU und Festplatte). Messen Sie eine repräsentative Website auf der Hardware, die in Frage kommt:

php bin/php/console exp:benchmark
php bin/php/console exp:benchmark --compare=https://example.com,https://example.com:8080

Die zweite Form vergleicht zwei Adressen, zum Beispiel Apache und Velocity auf derselben Installation (Benchmark, Benchmark einer gehosteten Website). Halten Sie zu jedem Ergebnis Hardware, PHP-Version, Engine, Worker-Einstellungen und Zustand des Caches fest.

Checkliste

  • To do: Eine große Website oder viele Websites entschieden; Abschottung pro Website bei vielen Kunden.
  • To do: Workers, SpareWorkers und Instances ausdrücklich gesetzt und gemessen.
  • To do: Speicher nach PSS beurteilt; die Verbindungsgrenzen der Datenbank passen zur Anzahl der Worker.
  • To do: Datenbank in der offiziellen Reihenfolge, auf dieser Maschine oder einer zweiten.
  • To do: Benchmarks für den Maschinentyp festgehalten, bevor er als Tarif verkauft wird.
  • To do: Startdienst für Velocity, Überwachung und Backups eingerichtet.

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