Vorwort:
Die Speicherauslastung des Servers war in letzter Zeit hoch. Nach einer Überprüfung wurde festgestellt, dass dies möglicherweise mit der übermäßigen Anzahl von PHP-FPM-Prozessen zusammenhängt. Dieser Artikel zeichnet meinen Prozess der Optimierung der PHP-FPM-Konfigurationsdatei auf und fügt einige Kenntnisse im Zusammenhang mit PHP-FPM hinzu.
Was ist php-fpm:
php-fpm ist der FastCGI-Prozessmanager, der zur Steuerung des Speichers und Prozesses von PHP verwendet wird.
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 die 50 Prozesse, die am meisten Speicher verbrauchen, auch mit dem folgenden Befehl auflisten:
ps auxw|head -1;ps auxw|sort -rn -k4|head -50
Lösungsprozess:
Nachfolgend ändern wir die Konfigurationsdatei zur Optimierung von PHP-FPM zur Reduzierung der Speichernutzung.
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 und dann Geben Sie „/“ und dann „xxx“ ein, um nach der Zeichenfolge „xxx“ zu suchen.
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:
1. Beschreibung der Parameter in php-fpm.conf:
pm.max_children:静态方式下开启的php-fpm进程数量。 pm.start_servers:动态方式下的起始php-fpm进程数量。 pm.min_spare_servers:动态方式下的最小php-fpm进程数。 pm.max_spare_servers:动态方式下的最大php-fpm进程数量。
2 php -Der Ausführungsmodus von fpm ist auf dynamisch eingestellt:
pm = dynamic
3.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.
4. So wählen Sie den statischen oder dynamischen Ausführungsmodus von PHP-FPM aus:
Der dynamische PHP-FPM-Ausführungsmodus ermöglicht es PHP-FPM, redundante Prozesse freizugeben und dadurch 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.
Weitere PHP-Kenntnisse finden Sie im PHP-Tutorial!
Das obige ist der detaillierte Inhalt vonLösen Sie das Problem des übermäßigen Verbrauchs von Serverspeicherressourcen, der durch zu viele PHP-FPM-Prozesse in CentOS7 verursacht wird. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!