PHP-Einstellung pm.max_children anpassen

Vorwort

Die PHP Einstellung pm.max_children definiert die Anzahl der maximal gleichzeitig zur Verfügung stehenden PHP Child Prozesse. Wenn Ihre Webseite eine hohe Anzahl von Benutzern hat, müssen mehrere PHP-FPM Prozesse ausgeführt werden, um die Anfragen zu verarbeiten. Die Einstellung stellt sicher, dass die Anzahl der gleichzeitig ausgeführten Prozesse überwacht und optimiert werden, um den Server durch z. B. ein hohes Benutzeraufkommen nicht zu überlasten.


Werden zu viele PHP Child Prozesse gleichzeitig ausgeführt, kann dies dafür sorgen, dass der Server überlastet wird und der Betrieb Ihrer Webseite beeinträchtigt wird. Wir empfehlen die Einstellung so zu optimieren, dass diese multipliziert mit dem definierten memory_limit den für PHP-FPM zur Verfügung stehenden Arbeitsspeicher (MiB) nicht überschreiten.


Um die PHP Einstellung pm.max_children anzupassen, melden Sie sich zunächst in unserem Kundencenter unter account.creoline.com mit Ihren Zugangsdaten an.


Wählen Sie über die Navigation Ihren Server unter Server aus, für den Sie die PHP Einstellungen verändern möchten. Öffnen Sie anschließend das Plesk Control Panel über den Menüpunkt Plesk Control Panel.


Sollte der Menüpunkt in Ihrem Server nicht dargestellt werden, finden Sie im Artikel Anmeldung im Plesk Control Panel weitere Möglichkeiten für die Anmeldung.



Anpassung für eine einzelne Domain

Sobald Sie in Plesk angemeldet sind, können Sie die Domain über die globale Suche oder den Menüpunkt Websites & Domains auswählen.


Plesk – Websites & Domains – PHP-Einstellungen


Über die Schaltfläche PHP Einstellungen können Sie die allgemeinen PHP Einstellungen und die PHP-Einstellung pm.max_children anpassen.


Plesk - PHP-FPM-Einstellungen - pm.max_children


Der Wert pm.max_children definiert die Anzahl an maximalen gleichzeitigen PHP-Prozessen. Dieser Wert ist frei definierbar und wird in der Einheit Anzahl angegeben.



Brechnung pm.max_children (Maximal)

Der maximal mögliche Wert für pm.max_children kann mit folgender Formel berechnet werden:

(Arbeitsspeicher - 2 GiB) / Memory Limit = Maximaler Wert für pm.max_children
      ^              ^          ^          
      |              |          |
      |              |          |
      |              |          └ Definierter PHP Memory Limit Wert
      |              └ Reservierter Arbeitsspeicher für andere Dienste (Wert kann varieren)
      └ Arbeitsspeicher des gesamten Servers



Brechnung pm.max_children (Empfohlen)

Wir empfehlen, die Anzahl der pm.max_children mit folgender Formel zu berechnen:

(Arbeitsspeicher - 2 GiB) / PHP-Prozessgröße = Empfohlener Wert für pm.max_children
      ^             ^            ^          
      |             |            |
      |             |            |
      |             |            └ Durchschnittliche PHP-Prozessgröße
      |             └ Reservierter Arbeitsspeicher für andere Dienste (Wert kann varieren)
      └ Arbeitsspeicher des gesamten Servers


Die durchschnittliche PHP-Prozessgröße kann z. B. mit einem PHP-Profiler ermittelt werden. Wir empfehlen hier Tideways für das PHP-Profiling zu verwenden. Eine Tideways-Lizenz kann direkt über unseren Support erworben werden, siehe auch: Preisliste für Zusatzleistungen und Sonderleistungen


Nachdem die Einstellungen gespeichert wurden, lädt der Webserver automatisch die Konfiguration mithilfe eines Graceful-Restarts neu, sodass bestehende Requests nicht abgebrochen, sondern pausiert werden.



Beispielrechnung pm.max_children

Parameter Wert Erklärung
Server Arbeitsspeicher 16.384 MiB 16 GiB
Reservierter Arbeitsspeicher 6.144 MiB 6 GiB
Durchschnittliche PHP-Prozessgröße 100 MiB


# Berechnung des verfügbaren Arbeitsspeichers für PHP
16.384 MiB - 6.144 MiB = 10.240 MiB

# Berechnung des empfohlenen Wertes für pm.max_children
10.240 MiB / 100 MiB = ~102 pm.max_chidlren



Weitere Einstellungsmöglichkeiten

Unter den PHP-Einstellungen besteht auch die Möglichkeit, die pm.max_requests, den gewünschten pm Prozess-Manager oder die pm.start_servers, pm.min_spare_servers sowie die pm.max_spare_servers anzupassen.


PHP-Einstellung Beschreibung
pm Legt fest, wie der Prozess-Manager die Anzahl der Kindprozesse verwaltet.
Mögliche Werte: static, ondemand, dynamic – Diese Einstellung ist zwingend notwendig.

static – die Anzahl der Kindprozesse ist fest eingestellt durch pm.max_children

ondemand – die Kindprozesse werden gestartet, sobald sie benötigt werden, im Gegensatz zu dynamic, wo zu Beginn bereits pm.start_servers Prozesse gestartet werden.

dynamic – die Anzahl der Kindprozesse wird dynamisch eingestellt, wobei die folgenden Einstellungen zugrunde gelegt werden:
pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers
pm.start_servers Die Anzahl an Kindprozessen, die beim Start erstellt werden. Wird nur verwendet, wenn pm auf dynamic gesetzt ist.

Standardwert: min_spare_servers + (max_spare_serversmin_spare_servers) / 2
pm.min_spare_servers Die gewünschte Mindestanzahl an Serverprozessen im Leerlauf. Wird nur verwendet, wenn pm auf dynamic gesetzt ist. Ebenfalls zwingend notwendig.
pm.max_spare_servers Die gewünschte Maximalanzahl an Serverprozessen im Leerlauf. Wird nur verwendet, wenn pm auf dynamic gesetzt ist. Ebenfalls zwingend erforderlich.