Heim  >  Artikel  >  Backend-Entwicklung  >  Was tun, wenn zu viele PHP-FPM-Prozesse vorhanden sind?

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

藏色散人
藏色散人Original
2021-06-15 09:17:053853Durchsuche

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.

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

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!

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