Heim >Backend-Entwicklung >PHP-Tutorial >Eine detaillierte Erklärung der PHP-FPM-Optimierungsmethoden

Eine detaillierte Erklärung der PHP-FPM-Optimierungsmethoden

黄舟
黄舟Original
2017-07-27 10:24:521556Durchsuche

php-fpm-Optimierungsmethode

Es gibt zwei Methoden für php-fpm, die eine besteht darin, die angegebene Anzahl von php-fpm-Prozessen direkt zu starten, ohne sie zu erhöhen oder zu verringern Eine bestimmte Anzahl von PHP-FPM-Prozessen wird zu jedem Zeitpunkt geöffnet. Wenn das Anforderungsvolumen groß wird, wird die Anzahl der PHP-FPM-Prozesse dynamisch auf die Obergrenze erhöht. Im Leerlauf wird die Anzahl der inaktiven Prozesse automatisch auf eine Untergrenze freigegeben .
Diese beiden unterschiedlichen Ausführungsmethoden können entsprechend den tatsächlichen Anforderungen des Servers angepasst werden.

Einige zu verwendende Parameter 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.

Die folgenden vier Parameter bedeuten:



pm.max_children: Die Anzahl der PHP-FPM-Prozesse, die im statischen Modus geöffnet werden, und im dynamischen Modus begrenzt sie PHP- Das Maximum Anzahl der fpm-Prozesse (beachten Sie hier, dass der Wert von pm.max_spare_servers nur kleiner oder gleich pm.max_children sein kann)

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

Wenn dm auf static gesetzt 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, werden alle 4 Parameter 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 den Server? Tatsächlich weist das laufende 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. (www. Script School)

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 (512*0,8/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.

Und bei Servern mit relativ großem Speicher verbessert die Einstellung auf statisch die Effizienz.

Da häufiges Umschalten des PHP-FPM-Prozesses zu Verzögerungen führt, ist der statische Effekt besser, wenn der Speicher groß genug ist. Die Menge kann auch nach Speicher/30M ermittelt werden.
Zum Beispiel kann ein Server mit 2 GB Speicher auf 50 eingestellt werden; ein Server mit 4 GB Speicher kann auf 100 eingestellt werden usw.

Wenn es sich beispielsweise um einen 512M VPS handelt, lauten die eingestellten Parameter wie folgt:


Codebeispiel:

pm=dynamic
pm.max_children=20
pm.start_servers=5
pm.min_spare_servers=5
pm.max_spare_servers=20
kann am meisten Speicher sparen und Verbesserung der Ausführungseffizienz.

Das obige ist der detaillierte Inhalt vonEine detaillierte Erklärung der PHP-FPM-Optimierungsmethoden. 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