Heim  >  Artikel  >  Backend-Entwicklung  >  Lösen Sie das Problem des übermäßigen Verbrauchs von Serverspeicherressourcen, der durch zu viele PHP-FPM-Prozesse in CentOS7 verursacht wird

Lösen Sie das Problem des übermäßigen Verbrauchs von Serverspeicherressourcen, der durch zu viele PHP-FPM-Prozesse in CentOS7 verursacht wird

藏色散人
藏色散人nach vorne
2020-01-13 14:03:323047Durchsuche

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen