Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-FPM statisch dynamisch

PHP-FPM statisch dynamisch

不言
不言Original
2018-04-19 09:22:192663Durchsuche

Dieser Artikel stellt hauptsächlich die statischen und dynamischen Aspekte von PHP-FPM vor. Jetzt teile ich ihn mit Ihnen und gebe ihn als Referenz. Werfen wir gemeinsam einen Blick darauf

Vergleich der Ausführungsmethoden zwischen statisch und dynamisch von php-fpm
Bei der Konfiguration von php-fpm habe ich es vor einiger Zeit zufällig entdeckt Es stellt sich heraus, dass er zwei andere Hinrichtungsarten hat. Wie bei Apache kann auch die Anzahl seiner Prozesse je nach Einstellungen in dynamisch und statisch unterteilt werden.
Es gibt auch zwei Möglichkeiten für PHP-FPM, eine bestimmte Anzahl von PHP-FPM-Prozessen direkt zu öffnen Wenn das Anforderungsvolumen groß wird, wird die Anzahl der PHP-FPM-Prozesse dynamisch auf die Obergrenze erhöht und im Leerlauf wird die Anzahl der Leerlaufprozesse automatisch auf eine Untergrenze freigegeben.
Diese beiden unterschiedlichen Ausführungsmethoden können entsprechend den tatsächlichen Anforderungen des Servers angepasst werden.
Lassen Sie uns über einige Parameter sprechen, die hier beteiligt sind: pm, pm.max_children, pm.start_servers, pm.min_spare_servers und pm.max_spare_servers.
pm gibt an, welche Methode verwendet werden soll. Es stehen zwei Werte zur Auswahl: statisch oder dynamisch. In älteren Versionen wurde Dynamic als Apache-like bezeichnet. Bitte beachten Sie die Hinweise in der Konfigurationsdatei.
Die folgenden vier Parameter bedeuten:

  1. pm.max_children: die Anzahl der im statischen Modus geöffneten PHP-FPM-Prozesse.

  2. pm.start_servers: Die Anzahl der gestarteten PHP-FPM-Prozesse im dynamischen Modus.

  3. pm.min_spare_servers: Die Mindestanzahl von PHP-FPM-Prozessen im dynamischen Modus.

  4. pm.max_spare_servers: Die maximale Anzahl von PHP-FPM-Prozessen im dynamischen Modus.

Wenn dm auf statisch eingestellt ist, wird nur der Parameter pm.max_children wirksam. Das System öffnet die festgelegte Anzahl von PHP-FPM-Prozessen.
Wenn dm auf dynamisch eingestellt ist, ist der Parameter pm.max_children ungültig und die nächsten drei Parameter werden wirksam. Das System startet die php-fpm-Prozesse von pm.start_servers, wenn php-fpm ausgeführt wird, und passt dann die Anzahl der php-fpm-Prozesse zwischen pm.min_spare_servers und pm.max_spare_servers entsprechend den Anforderungen des Systems dynamisch an.
Welche Ausführungsmethode ist also besser für unseren Server? Tatsächlich weist das von uns ausgeführte PHP-Programm wie Apache nach der Ausführung mehr oder weniger Speicherverluste auf. Dies ist auch der Grund, warum ein PHP-FPM-Prozess zu Beginn nur etwa 3 MB Speicher belegt und nach einiger Zeit auf 20 bis 30 MB ansteigt. Daher beendet die dynamische Methode redundante Prozesse und kann etwas Speicher recyceln und freigeben. Daher wird die Verwendung auf Servern oder VPS mit weniger Speicher empfohlen. Die spezifische Höchstmenge wird basierend auf Speicher/20 MB ermittelt. Für einen 512-MB-VPS wird beispielsweise empfohlen, pm.max_spare_servers auf 20 zu setzen. Für pm.min_spare_servers wird empfohlen, ihn entsprechend der Auslastung des Servers festzulegen. Ein geeigneterer Wert liegt zwischen 5 und 10.
Bei Servern mit relativ großem Speicher verbessert die Einstellung auf statisch die Effizienz. Da ein häufiger Wechsel des PHP-FPM-Prozesses zu Verzögerungen führt, ist es besser, die statische Funktion zu aktivieren, wenn der Speicher groß genug ist. Die Menge kann auch nach Speicher/30M ermittelt werden. Beispielsweise kann ein Server mit 2 GB Speicher auf 50 eingestellt werden; ein Server mit 4 GB Speicher kann auf 100 eingestellt werden usw.
Diese Site basiert auf einem 512M VPS, daher sind die Parameter, die ich eingestellt habe, wie folgt:
pm=dynamic
pm.max_children=20
pm.start_servers=5
pm.min_spare_servers= 5
pm.max_spare_servers=20
Dadurch kann maximaler Speicher gespart und die Ausführungseffizienz verbessert werden.
Im Anhang finden Sie die Beschreibungen der einzelnen Parameter:
pm string
Legen Sie fest, wie der Prozessmanager untergeordnete Prozesse verwaltet. Verfügbare Werte: statisch, OnDemand, dynamisch. Muss eingestellt werden.
statisch – die Anzahl der untergeordneten Prozesse ist festgelegt (pm.max_children).
ondemand – der Prozess wird erzeugt, wenn Bedarf besteht (im Gegensatz zu „Dynamic“ wird bei Anforderung „pm.start_servers“ gestartet, wenn der Dienst startet).
Dynamic – Die Anzahl der untergeordneten Prozesse wird basierend auf der folgenden Konfiguration dynamisch festgelegt: pm .max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers Gibt die maximale Anzahl an untergeordneten Prozessen an, die erstellt werden können.
Diese Option legt die Grenze für die Anzahl der Anfragen fest, die gleichzeitig bedient werden können und die Umgebungsvariable PHP_FCGI_CHILDREN in gewöhnlichem PHP FastCGI. Die Anzahl der erstellten untergeordneten Prozesse wird nur verwendet, wenn „pm“ auf „dynamisch“ eingestellt ist. min_spare_servers int
Legt die Mindestanzahl der inaktiven Dienstprozesse fest.
pm.max_spare_servers int
Legt die maximale Anzahl der inaktiven Dienstprozesse fest
pm.max_requests int
Festgelegt. Anzahl der verarbeiteten Anfragen, bevor jeder untergeordnete Prozess neu gestartet wird. Wenn er auf „0“ gesetzt ist, entspricht er der Umgebungsvariable PHP_FCGI_MAX_REQUESTS. >
Vergleich der Ausführungsmethoden von
statisch
und
dynamisch dynamisch
von php-fpm

Als ich vor einiger Zeit php-fpm konfigurierte, entdeckte ich zufällig, dass es zwei Ausführungsmethoden wie Apache hat Die Anzahl der Prozesse kann je nach Einstellung auch in dynamisch und statisch unterteilt werden. Es gibt auch zwei Methoden für das direkte Öffnen einer bestimmten Anzahl von PHP-FPM besteht darin, zu Beginn eine bestimmte Anzahl von PHP-FPM-Prozessen zu starten, die Anzahl der PHP-FPM-Prozesse dynamisch auf die Obergrenze zu erhöhen und die inaktiven Prozesse automatisch freizugeben, wenn sie eine Untergrenze erreichen .

Diese beiden unterschiedlichen Ausführungsmethoden können entsprechend den tatsächlichen Anforderungen des Servers angepasst werden. Lassen Sie uns über einige Parameter sprechen, die hier beteiligt sind: pm, pm.max_children, pm.start_servers, pm.min_spare_servers und pm.max_spare_servers. pm gibt an, welche Methode verwendet werden soll. Es stehen zwei Werte zur Auswahl: statisch oder dynamisch. In älteren Versionen wurde Dynamic als Apache-like bezeichnet. Bitte beachten Sie die Hinweise in der Konfigurationsdatei. Die folgenden vier Parameter bedeuten:


pm.max_children: die Anzahl der im statischen Modus geöffneten PHP-FPM-Prozesse.


pm.start_servers: Die Anzahl der gestarteten PHP-FPM-Prozesse im dynamischen Modus.
  1. pm.min_spare_servers: Die Mindestanzahl von PHP-FPM-Prozessen im dynamischen Modus.
  2. pm.max_spare_servers: Die maximale Anzahl von PHP-FPM-Prozessen im dynamischen Modus.

Wenn dm auf statisch eingestellt ist, wird nur der Parameter pm.max_children wirksam. Das System öffnet die festgelegte Anzahl von PHP-FPM-Prozessen.
Wenn dm auf dynamisch eingestellt ist, ist der Parameter pm.max_children ungültig und die nächsten drei Parameter werden wirksam. Das System startet die php-fpm-Prozesse von pm.start_servers, wenn php-fpm ausgeführt wird, und passt dann die Anzahl der php-fpm-Prozesse zwischen pm.min_spare_servers und pm.max_spare_servers entsprechend den Anforderungen des Systems dynamisch an.
Welche Ausführungsmethode ist also besser für unseren Server? Tatsächlich weist das von uns ausgeführte PHP-Programm wie Apache nach der Ausführung mehr oder weniger Speicherverluste auf. Dies ist auch der Grund, warum ein PHP-FPM-Prozess zu Beginn nur etwa 3 MB Speicher belegt und nach einiger Zeit auf 20 bis 30 MB ansteigt. Daher beendet die dynamische Methode redundante Prozesse und kann etwas Speicher recyceln und freigeben. Daher wird die Verwendung auf Servern oder VPS mit weniger Speicher empfohlen. Die spezifische Höchstmenge wird basierend auf Speicher/20 MB ermittelt. Für einen 512M VPS wird beispielsweise empfohlen, pm.max_spare_servers auf 20 zu setzen. Für pm.min_spare_servers wird empfohlen, ihn entsprechend der Auslastung des Servers festzulegen. Ein geeigneterer Wert liegt zwischen 5 und 10.
Bei Servern mit relativ großem Speicher verbessert die Einstellung auf statisch die Effizienz. Da ein häufiger Wechsel des PHP-FPM-Prozesses zu Verzögerungen führt, ist es besser, die statische Funktion zu aktivieren, wenn der Speicher groß genug ist. Die Menge kann auch nach Speicher/30M ermittelt werden. Beispielsweise kann ein Server mit 2 GB Speicher auf 50 eingestellt werden; ein Server mit 4 GB Speicher kann auf 100 eingestellt werden usw.
Diese Site basiert auf einem 512M VPS, daher sind die Parameter, die ich eingestellt habe, wie folgt:
pm=dynamic
pm.max_children=20
pm.start_servers=5
pm.min_spare_servers= 5
pm.max_spare_servers=20
Dadurch kann maximaler Speicher gespart und die Ausführungseffizienz verbessert werden.
Im Anhang finden Sie die Beschreibungen der einzelnen Parameter:
pm string
Legen Sie fest, wie der Prozessmanager untergeordnete Prozesse verwaltet. Verfügbare Werte: statisch, OnDemand, dynamisch. Muss eingestellt werden.
statisch – die Anzahl der untergeordneten Prozesse ist festgelegt (pm.max_children).
ondemand – der Prozess wird erzeugt, wenn Bedarf besteht (im Gegensatz zu „Dynamic“ wird bei Anforderung „pm.start_servers“ gestartet, wenn der Dienst startet).
Dynamic – Die Anzahl der untergeordneten Prozesse wird basierend auf der folgenden Konfiguration dynamisch festgelegt: pm .max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers Gibt die maximale Anzahl an untergeordneten Prozessen an, die erstellt werden können.
Diese Option legt die Grenze für die Anzahl der Anfragen fest, die gleichzeitig bedient werden können und die Umgebungsvariable PHP_FCGI_CHILDREN in gewöhnlichem PHP FastCGI. Die Anzahl der erstellten untergeordneten Prozesse wird nur verwendet, wenn „pm“ auf „dynamisch“ eingestellt ist. min_spare_servers int
Legt die Mindestanzahl der inaktiven Dienstprozesse fest.
pm.max_spare_servers int
Legt die maximale Anzahl der inaktiven Dienstprozesse fest
pm.max_requests int
Festgelegt. Anzahl der bearbeiteten Anfragen, bevor jeder untergeordnete Prozess neu gestartet wird. Wenn er auf „0“ gesetzt ist, entspricht er der Umgebungsvariable PHP_FCGI_MAX_REQUESTS. >
Verwandt Empfehlungen:


php-fpm-Pool, PHP-Protokoll für langsame Ausführung, open_basedir, PHP-fpm-Prozessverwaltung

php-fpm-Neustart

Das obige ist der detaillierte Inhalt vonPHP-FPM statisch dynamisch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:SQL-Anweisung in PHPNächster Artikel:SQL-Anweisung in PHP