PHP-FPM (PHP FastCGI Process Manager) ist eine wichtige Komponente von PHP, die speziell zum Verwalten von Prozessen verwendet wird, die PHP-Skripte verarbeiten. Im Gegensatz zum herkömmlichen threadbasierten Modell verwendet PHP-FPM eine prozessbasierte Methode, um Anforderungen zu verarbeiten, und jede Anforderung hat einen unabhängigen PHP-FPM-Prozess für die Verarbeitung. Dieses Modell kann die Gleichzeitleistung und Stabilität besser verbessern.
PHP-FPM kann unabhängig von Webservern (wie Nginx, Apache) ausgeführt und über das FastCGI-Protokoll mit dem Webserver kommunizieren. Es kann die Anzahl der Prozesse automatisch gemäß der Konfigurationsdatei einstellen und dem System helfen, mit unterschiedlichen Lastbedingungen umzugehen.
In PHP-FPM-Konfigurationsdateien ist max_children eine sehr wichtige Option. Es wird verwendet, um die maximale Anzahl von PHP-FPM-Prozessen zu begrenzen. Jeder PHP-FPM-Prozess verbraucht eine bestimmte Menge an Speicher- und CPU-Ressourcen. Daher ist es entscheidend, den Wert von max_children ordnungsgemäß zu konfigurieren.
Wenn die Einstellung max_children zu klein ist, kann dies zu einer Erhöhung der Anfrage und der Reaktionszeit führen. Wenn die Einstellung zu groß ist, kann sie einen unzureichenden Systemspeicher verursachen, was sich auf die Systemstabilität auswirken und sogar zu Abstürmen führen kann.
Bevor Sie max_children angepasst werden, müssen Sie zunächst den Hardware -Ressourcenstatus des Servers, einschließlich des verfügbaren Speichers und der Anzahl der CPU -Kerne, verstehen. Sie können die Ressourcennutzung über Befehlszeilen -Tools wie Top oder HTOP anzeigen.
Angenommen, der Serverspeicher beträgt 8 GB und die CPU 4 Kerne.
Die Menge an Speicher, die von jedem PHP-FPM-Prozess verbraucht wird, hängt von der Komplexität und Codequalität der PHP-Anwendung ab. Unter der Annahme, dass jeder Prozess etwa 200 MB Speicher verbraucht, kann ein Server mit 8 GB Speicher 40 PHP-FPM-Prozesse berücksichtigen. Das System muss jedoch auch eine bestimmte Menge an Speicher für andere Prozesse behalten, sodass 6 GB Speicher verwendet werden kann, um PHP-FPM-Prozesse zu unterstützen.
Angesichts der Tatsache, dass die Anzahl der CPU -Kerne klein ist, kann max_children auf 4 eingestellt werden, dh die Anzahl der CPU -Kerne des Servers.
Um den Wert von max_children zu ändern, müssen Sie die PHP-FPM-Konfigurationsdatei bearbeiten. Im Allgemeinen befindet sich die Konfigurationsdatei in /etc/php-fpm.conf oder /etc/php/7.4/fpm/php-fpm.conf Path.
Suchen Sie die Option max_children in der Konfigurationsdatei und ändern Sie den Wert beispielsweise nach Bedarf:
pm.max_children = 4
Speichern Sie nach der Änderung die Konfigurationsdatei und starten Sie den PHP-FPM-Dienst neu, damit die Einstellungen wirksam werden.
Das Anpassen der Konfiguration von max_children ist nur Teil der Leistungsoptimierung, und in Zukunft ist eine kontinuierliche Überwachung und Abstimmung erforderlich.
Sie können Befehlszeilen-Tools wie Top und HTOP oder PHP-FPM-eigene PHP-FPM-Status-Seite verwenden, um den Prozessstatus zu überwachen. Diese Tools können dazu beitragen, die aktuelle Anzahl von PHP-FPM-Prozessen, Speicherverbrauch usw. anzuzeigen, um potenzielle Probleme zu entdecken und rechtzeitig Anpassungen vorzunehmen.
Wenn Sie feststellen, dass die Anzahl der PHP-FPM-Prozesse unzureichend ist, was zu einer langsamen Anfrageverarbeitung führt, können Sie den Wert von max_children angemessen erhöhen. Wenn der Systemspeicher nicht ausreicht, können Sie diesen Wert reduzieren. Abhängig von der tatsächlichen Lastsituation können auch andere Konfigurationsoptionen angepasst werden, wie z.
Bei der Anpassung max_children ist sorgfältig zu berücksichtigt. Zu große Werte können zu einer übermäßigen Belastung des Systems führen, und zu kleine Werte können einen Rückstand von Anforderungen verursachen. Eine detaillierte Prüfung und Bewertung werden vor Anpassungen empfohlen.
Wenn auf dem Server andere Nicht-Php-Prozesse vorhanden sind, muss der Ressourcenverbrauch in Betracht gezogen werden, um zu vermeiden, dass die Leistung von PHP-FPM beeinflusst wird.
Durch die vernünftige Anpassung der Max_Children-Konfiguration von PHP-FPM kann die Stabilität und Leistung des Systems effektiv verbessert werden. Legen Sie diesen Wert anhand der Hardwareressourcen des Servers und des erwarteten Anforderungsvolumens einverstanden ein und überwachen Sie regelmäßig, um sicherzustellen, dass das System immer in bestem Zustand ist.