Heim > Artikel > Backend-Entwicklung > Was tun, wenn zu viele PHP-FPM-Prozesse vorhanden sind?
Lösung für zu viele PHP-FPM-Prozesse: Sichern Sie zuerst die ursprüngliche Konfigurationsdatei. Öffnen Sie dann die Konfigurationsdatei und ändern Sie sie schließlich durch einen Neustart.
Die Betriebsumgebung dieses Artikels: CentOS 7-System, PHP7.1-Version, DELL G3-Computer
Was soll ich tun, wenn zu viele PHP-FPM-Prozesse vorhanden sind?
Lösen Sie das Problem des übermäßigen Verbrauchs von Serverspeicherressourcen, der durch zu viele PHP-FPM-Prozesse in CentOS 7 verursacht wird.
Was ist PHP-FPM:
php-fpm ist der FastCGI-Prozessmanager, der zur Steuerung des Speichers von verwendet wird PHP und Prozesse usw.
Betriebsumgebung:
CentOS 7
Problemprüfung:
Überprüfen Sie zunächst die Gesamtzahl der PHP-Prozesse:
pstree|grep php-fpm
Echo:
|-php-fpm---20*[php-fpm]
Laut Echo-Informationen gibt es während der Abfrage 20 PHP-FPM-Prozesse.
Sie können auch den folgenden Befehl verwenden, um die 50 Prozesse aufzulisten, die am meisten Speicher verbrauchen:
ps auxw|head -1;ps auxw|sort -rn -k4|head -50
Lösungsprozess:
Nachfolgend optimieren wir PHP-FPM, indem wir die Konfigurationsdatei ändern, um die Speichernutzung zu reduzieren.
Meine PHP-FPM-Konfigurationsdatei befindet sich im Verzeichnis …/server/php/etc/. Geben Sie dieses Verzeichnis ein.
Sichern Sie zuerst die ursprüngliche Konfigurationsdatei:
cp php-fpm.conf php-fpm.conf.bak
Hinweis: Nachdem Sie vim zum Öffnen der Konfigurationsdatei verwendet haben, drücken Sie die Esc-Taste, geben Sie „/“ ein und geben Sie dann „xxx“ ein, um die Zeichenfolge „xxx“ zu finden.
Die spezifischen Konfigurationsparameter lauten wie folgt:
pm.max_children = 100改为:pm.max_children = 25 pm.start_servers = 20改为pm.start_servers = 5 pm.min_spare_servers = 5改为pm.min_spare_servers = 2 pm.max_spare_servers = 35改为pm.max_spare_servers = 10
Starten Sie den Server neu:
reboot
Nach dem Neustart können Sie feststellen, dass die Speichernutzung geringer ist als zuvor.
Hinweis:
Erklärung der Parameter in php-fpm.conf:
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: Mindestanzahl von PHP-FPM-Prozessen im dynamischen Modus.
pm.max_spare_servers: Die maximale Anzahl von PHP-FPM-Prozessen im dynamischen Modus.
Wenn ich die obigen Einstellungen vornehme, stelle ich den Ausführungsmodus von php-fpm auf dynamisch ein:
pm = dynamisch
php-fpm hat zwei Ausführungsmodi:
Einer ist statisch und der andere ist dynamisch. Bei der Einstellung „statisch“ wird nur der Parameter „pm.max_children“ wirksam. Bei der Einstellung „Dynamic“ werden die drei Parameter pm.start_servers, pm.min_spare_servers und pm.max_spare_servers wirksam. Nachdem Sie es auf „dynamisch“ eingestellt haben, startet PHP-FPM die entsprechende Anzahl von Prozessen gemäß der Parametereinstellung von PM.Start_Servers. Danach wird die Anzahl der Prozesse von PHP-FPM zwischen der durch PM angegebenen Anzahl beibehalten .min_spare_servers und pm.max_spare_servers.
So wählen Sie den statischen oder dynamischen Ausführungsmodus von PHP-FPM:
Der dynamische PHP-FPM-Ausführungsmodus ermöglicht es PHP-FPM, redundante Prozesse freizugeben und so Speicherressourcen zu sparen.
Die statische PHP-FPM-Ausführungsmethode erlaubt PHP-FPM nicht, mehr als Prozesse freizugeben, wodurch das häufige Starten oder Stoppen des PHP-FPM-Prozesses vermieden wird, wodurch in einigen Fällen die Antwortzeit des Servers verkürzt wird.
Empfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas tun, wenn zu viele PHP-FPM-Prozesse vorhanden sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!