Heim > Backend-Entwicklung > PHP-Tutorial > 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

藏色散人
Freigeben: 2023-04-08 08:16:01
nach vorne
3200 Leute haben es durchsucht

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
Nach dem Login kopieren

Echo:

|-php-fpm---20*[php-fpm]
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

Starten Sie den Server neu:

reboot
Nach dem Login kopieren

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进程数量。
Nach dem Login kopieren

2 php -Der Ausführungsmodus von fpm ist auf dynamisch eingestellt:

pm = dynamic
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage