Heim  >  Artikel  >  Backend-Entwicklung  >  Zwei Prozessverwaltungsmodi in PHP-FPM

Zwei Prozessverwaltungsmodi in PHP-FPM

小云云
小云云Original
2018-03-29 16:12:041440Durchsuche

Es gibt zwei Prozessverwaltungsmodi von PHP-FPM, die je nach Einstellung auch in dynamische und statische Prozesse unterteilt werden können. Eine besteht darin, eine bestimmte Anzahl von PHP-FPM-Prozessen direkt zu starten, ohne sie zu erhöhen oder zu verringern. Die andere besteht darin, eine bestimmte Anzahl von PHP-FPM-Prozessen zu Beginn zu starten und die PHP-FPM dynamisch zu erhöhen, wenn das Anforderungsvolumen größer wird Zählen Sie bis zur Obergrenze und geben Sie inaktive Prozesse automatisch frei. Die Anzahl der inaktiven Prozesse erreicht eine untere Grenze.
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 standardmäßige statische Verarbeitungsmethode von PHP5.3php-fpm führt dazu, dass der PHP-CGI-Prozess lange Zeit Speicher belegt und nicht freigegeben werden kann. Dies ist auch einer der Gründe für Nginx-Fehler. Daher ist die Verarbeitungsmethode von PHP-FPM kann in den Apache-Modus geändert werden.
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.
pm.min_spare_servers: Die Mindestanzahl von PHP-FPM-Prozessen im dynamischen Modus.
pm.max_spare_servers: Die maximale Anzahl von PHP-FPM-Prozessen im dynamischen Modus. Wenn dm auf static gesetzt ist, ist 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 basierend auf Speicher/30 MB 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.

Verwandte Empfehlungen:

php-fpm, wie man die Datei konfiguriert

php-fpm-Beispielcode für offene Statusstatistiken

Detaillierte Erläuterung der Erkundung des PHP-FPM-Prozesspools

Das obige ist der detaillierte Inhalt vonZwei Prozessverwaltungsmodi in PHP-FPM. 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