Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Was tun, wenn in CentOS 7 zu viele PHP-FPM-Prozesse vorhanden sind?

Was tun, wenn in CentOS 7 zu viele PHP-FPM-Prozesse vorhanden sind?

藏色散人
藏色散人Original
2020-08-19 09:23:332315Durchsuche

Die Lösung für zu viele PHP-FPM-Prozesse: Überprüfen Sie zuerst die Gesamtzahl der PHP-Prozesse, listen Sie dann die 50 Prozesse auf, die den meisten Speicher verbrauchen, und optimieren Sie dann „php-FPM“, indem Sie die Konfigurationsdatei ändern .

Was tun, wenn in CentOS 7 zu viele PHP-FPM-Prozesse vorhanden sind?

Empfohlen: „PHP-Video-Tutorial

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 und der Prozesse 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 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:

Jetzt 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“ gesetzt haben, wird beim Start von PHP-FPM die entsprechende Anzahl von Prozessen gemäß der Parametereinstellung von PM.Start_Servers gestartet. Danach wird die Anzahl der PHP-FPM-Prozesse 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.

Das obige ist der detaillierte Inhalt vonWas tun, wenn in CentOS 7 zu viele PHP-FPM-Prozesse vorhanden sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn