Bei der Installation von PHP können diejenigen, die vorsichtig sind, feststellen, dass wir auch das PHP-FPM-Modul installiert haben. Das FPM-Modul ist für die Verarbeitung des Anforderungsprozesses verantwortlich. Die damit verbundenen Vorgänge von fpm wirken sich direkt darauf aus, auf wie viele Anfragen der Server reagieren kann. Durch die richtigen Einstellungen wird die Verarbeitungseffizienz effektiv verbessert, andernfalls tritt ein 502-Gateway-Timeout oder ein 504-Fehler auf.
Öffnen wir die www.conf-Datei unter /etc/php/7.2/fpm/pool.d und finden die folgenden Parameter:
pm=dynamicpm.max_children=5pm.start_servers=2pm.min_spare_servers=1pm.max_spare_servers=3;pm.max_requests=500
Dies sind die Standardparameter, nachdem der Autor PHP installiert hat. Ich werde sie im Folgenden einzeln erklären:
Die erste Dynamik zeigt an, dass der Verarbeitungsmodus des Prozesses dynamisch ist, und es gibt auch einen entsprechenden statischen Modus.
Wenn pm auf staic gesetzt ist, ist nur der Parameter pm.max_childern wirksam.
Wenn pm auf dynamisch eingestellt ist, werden die nächsten vier 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.
Der zweite Parameter pm.max_children gibt die maximale Anzahl an Prozessen an, die geforkt (gestartet) werden können. Je größer die Anzahl, desto mehr Anfragen können natürlich gleichzeitig gestellt werden Lange Wartezeiten bei Anfragen, aber die CPU oder der Speicher sind weiterhin verfügbar. Die Auslastung ist nicht hoch. Dieser Wert bezieht sich auf die Anzahl der geöffneten PHP-FPM-Prozesse im statischen Modus und begrenzt die maximale Anzahl der PHP-FPM-Prozesse im dynamischen Modus.
Der dritte Parameter pm.start_servers gibt an, dass im dynamischen Modus mehrere Prozesse im Anfangszustand gestartet und dann je nach Bedarf dynamisch angepasst werden. Er wird durch die beiden Parameter pm.min_spare_servers und pm.max_spare_servers bestimmt.
Der vierte Parameter pm.min_spare_servers stellt die Mindestanzahl der PHP-FPM-Prozesse im Leerlauf im dynamischen Modus dar und die Anzahl, die nach der Bereinigung inaktiver Prozesse beibehalten wird
Der fünfte Parameter pm.max_spare_servers stellt die maximale Anzahl von PHP-FPM-Prozessen im Leerlauf im dynamischen Modus dar, d. h. wenn die Leerlaufprozesse diesen Wert erreichen, werden sie bereinigt.
Der sechste Parameter pm.max_requests gibt die Anzahl der Anfragen an, bevor der Prozess zerstört und neu gestartet wird, wodurch Speicherverluste vermieden werden können.
Offensichtlich ist max_children hier 5, was am Anfang ausreicht. Wenn der Datenverkehr zunimmt, wird es definitiv nicht ausreichen, über den Wert von pm.max_children zu sprechen : Speicher-CPU-System Wenn die Systemressourcen es zulassen, gilt: Je größer, desto besser. Wenn der Server beispielsweise über 4G-Speicher verfügt, kann er etwa 150 bis 300 betragen Beobachten Sie dann den Serverstatus und nehmen Sie Anpassungen vor
Im Allgemeinen können große Speicherserver (z. B. 32 und 64 G und höher) den statischen Modus in Betracht ziehen, der gute Parallelitätseffekte hat. Kleine Speicherserver können den dynamischen Modus in Betracht ziehen, der bei Bedarf automatisch gesteuert werden kann.
Sie können Stresstests entsprechend Ihrer eigenen Situation durchführen und Anpassungen entsprechend Ihren eigenen Serverbedingungen vornehmen.