Inhaltsverzeichnis
1. Wählen Sie den richtigen Prozessmanager (PM) aus
2. Setzen Sie pm.max_children basierend auf dem verfügbaren Speicher
3. Einstellungen zur Bearbeitung von Anforderungen und Zeitüberschreitungen
4. Optimieren Sie die E/A und die Zuschauer
5. überwachen und iterieren
Bonus: Verwenden Sie Opcache
Heim Backend-Entwicklung PHP-Tutorial Optimierung der PHP-FPM-Konfiguration für den maximalen Durchsatz

Optimierung der PHP-FPM-Konfiguration für den maximalen Durchsatz

Jul 24, 2025 pm 05:42 PM
php-fpm Leistungsoptimierung

Verwenden Sie in den meisten Fällen den dynamischen Prozessmanager, statisch für einen stetigen hohen Verkehr, und vermeiden Sie Ondemand für einen hohen Durchsatz. 2. Setzen Sie PM.MAX_Children basierend auf dem verfügbaren RAM geteilt durch durchschnittliche PHP -Prozessspeicher, und lassen Sie die Kopffreiheit, um den Austausch zu verhindern. A. Konfigurieren Sie PM.MAX_REQUESTS, um Arbeiter zu recyceln und Speicherlecks zu verhindern. Setzen Sie Request_terminate_Timeout, um langlebige Anforderungen abzutöten. Aktivieren Sie SlowLog, um Engpässe zu verfolgen. V. 5. Überwachen Sie kontinuierlich den FPM -Status, die Upstream -Antwortzeiten und die Systemmetriken unter Verwendung von Tools wie HTOP oder Grafana; Aktivieren Sie die OPCACHE mit geeigneten Einstellungen, um das Skript-Parsen-Overhead zu reduzieren und die Leistung erheblich zu steigern, da selbst gut abgestimmte PHP-FPM ohne sie unterdurchschnittlich ist.

Optimierung der PHP-FPM-Konfiguration für den maximalen Durchsatz

Bei der Optimierung von PHP-FPM für den maximalen Durchsatz geht es nicht darum, jede Einstellung auf den Maximum zu bringen. Es geht darum, die Konfiguration auf das Verhalten, die Serverressourcen und die Verkehrsmuster Ihrer Anwendung auszurichten. Schlecht abgestimmte PHP-FPM kann zu langsamen Reaktionszeiten, hoher Speicherverwendung oder sogar 502 Fehlern unter Last führen. Hier erfahren Sie, wie Sie das Beste daraus machen können.

Optimierung der PHP-FPM-Konfiguration für den maximalen Durchsatz

1. Wählen Sie den richtigen Prozessmanager (PM) aus

PHP-FPM unterstützt drei Prozessmanager: static , dynamic und ondemand . Ihre Auswahl wirkt sich direkt auf die Leistung und den Ressourcenverbrauch aus.

  • dynamic (für die meisten Fälle empfohlen)
    Balances Leistung und Gedächtnis. Hält einen Pool von Kinderprozessen, die auf der Nachfrage wachsen oder schrumpfen können.

    Optimierung der PHP-FPM-Konfiguration für den maximalen Durchsatz
     PM = dynamisch
    pm.max_children = 50
    PM.Start_Servers = 10
    pm.min_spare_servers = 5
    pm.max_spare_servers = 15
  • static
    Alle Kinderprozesse werden beim Start -up hervorgebracht. Am besten für einen hohen, konstanten Verkehr, wenn Sie sich den Speicher leisten können.

     PM = statisch
    pm.max_children = 30
  • ondemand
    Erzeugt Kinder nur, wenn Anfragen eintreffen. Speichert Speicher, erhöht jedoch die Latenz während Verkehrspikes-nicht ideal für Hochdurchsatzszenarien.

    Optimierung der PHP-FPM-Konfiguration für den maximalen Durchsatz

? Faustregel: Verwenden Sie dynamic , es sei denn, Sie haben vorhersehbaren, stetigen Verkehr und möchten das Overhead des Prozessmanagements minimieren.


2. Setzen Sie pm.max_children basierend auf dem verfügbaren Speicher

Dies ist die kritischste Einstellung . Zu hoch = Gedächtniserschöpfung. Zu niedrig = Anfrage Warteschlange.

Schätzen Sie max_children:

 max_children = Gesamt-RAM, der dem PHP-FPM / Durchschnittsspeicher pro PHP-Prozess gewidmet ist

Zum Beispiel:

  • Sie zuweisen 2 GB RAM an PHP-FPM
  • Durchschnittlicher PHP -Prozess verwendet ~ 64 MB
  • 2048 MB / 64 MB = 32

Setzen Sie also pm.max_children = 32 (hinterlassen Sie eine Kopffreiheit für System -Overhead).

Sie können den Speicher pro Prozess mit:

 PS -NO -Header -o "RSS, CMD" -C PHP -FPM | awk '{sum = $ 1} end {print int (sum/nr/1024) "mb"}'

⚠️ Vermeiden Sie das Überbindung von Speicher - Tauschkörnungen tötet die Leistung ab.


3. Einstellungen zur Bearbeitung von Anforderungen und Zeitüberschreitungen

Langzeit oder festgefahrene Anfragen können den Arbeiterpool erschöpfen.

 pm.max_requests = 500; Starten Sie die Arbeitnehmer nach 500 Anfragen neu (hilft, Speicherlecks zu verhindern)
PM.PROCESS_IDLE_Timeout = 10s; Nur für 'Ondemand'
Request_termate_timeout = 30s; Töten Sie Anfragen, die länger als 30er dauern
request_slowlog_timeout = 5s; Log langsame Anforderungen (Paar mit Slowlog)
catch_workers_output = yes; Erfassen Sie Stdout/Stderr
  • pm.max_requests hilft bei der Minderung von Speicherlecks in langlebigen Skripten (z. B. Legacy-Code).
  • request_terminate_timeout verhindert Hängendenanfragen von Blockierern.
  • Aktivieren Sie slowlog , um Engpässe zu identifizieren:
     Slowlog = /var/log/php-fpm-slow.log

4. Optimieren Sie die E/A und die Zuschauer

PHP-FPM funktioniert am besten, wenn es nicht zum Engpass wird. Kombinieren Sie es mit einem schnellen Webserver (wie nginx) und optimieren Sie den Anforderungsfluss.

  • Verwenden Sie Socket -Verbindungen anstelle von TCP (falls auf demselben Host):

     Hören Sie = /run/php/php8.1-fpm.sock
    Hören Sie
    hören.group = www-data
    listen.mode = 0660

    UNIX -Steckdosen haben einen niedrigeren Overhead als 127.0.0.1:9000 .

  • Passen Sie listen.backlog Wenn Sie Verbindungsablehnungen sehen:

     Hören Sie.backlog = 511

    Setzen Sie dies in der Nähe des backlog des Webservers (z. B. Nginx listen ... backlog=511 ).

  • Erhöhen Sie rlimit_files , wenn Sie die Dateideskriptorgrenzen drücken:

     rlimit_files = 65535

5. überwachen und iterieren

Tuning ist nicht einmalig. Überwachen Sie wichtige Metriken:

  • FPM -Statusseite (in Poolkonfiguration aktivieren):

     pm.status_path = /status

    Greifen Sie über Webserver zu, um aktive/idle -Prozesse, Warteschlangenlänge usw. anzuzeigen.

  • Nginx -Upstream -Antwortzeiten - Lange Wartezeiten können auf die FPM -Sättigung hinweisen.

  • Systemmetriken: CPU, Speicher, Swap und Lastdurchschnitt.

Verwenden Sie Tools wie htop , sysdig oder Prometheus Grafana, um einen tieferen Einblick zu erhalten.


Bonus: Verwenden Sie Opcache

PHP-FPM behandelt das Prozessmanagement, reduziert jedoch dramatisch das Skript-Parsen-Overhead.

 opcache.enable = 1
opcache.memory_constum = 256
opcache.max_accelerated_files = 20000
opcache.validate_timestamps = 0; In der Produktion deaktivieren (für Bereitstellungen wieder eingesetzt)
opcache.fast_shutdown = 1

Ohne Opcache wird auch perfekt abgestimmtes FPM unterdurchschnittlich.


Grundsätzlich ist das Optimieren von PHP-FPM auf: max_children mit dem Speicher, die Auswahl des richtigen Prozessmanagers, die Verhinderung von steckigen Anfragen und das Reduzieren von E/A-Overheads. Kombinieren Sie das mit Opcache und Überwachung, und Sie werden den größten Durchsatz aus Ihrem PHP -Stapel herausholen.

Das obige ist der detaillierte Inhalt vonOptimierung der PHP-FPM-Konfiguration für den maximalen Durchsatz. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Stock Market GPT

Stock Market GPT

KI-gestützte Anlageforschung für intelligentere Entscheidungen

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Nginx -Leistungsstimmung: Optimierung für Geschwindigkeit und niedrige Latenz Nginx -Leistungsstimmung: Optimierung für Geschwindigkeit und niedrige Latenz Apr 05, 2025 am 12:08 AM

Die Nginx -Leistungsstimmung kann erreicht werden, indem die Anzahl der Arbeitsprozesse, die Größe der Verbindungspool, die Gzip -Komprimierung und die HTTP/2 -Protokolle und die Verwendung von Cache und Lastausgleich angepasst werden. 1. Passen Sie die Anzahl der Arbeitsprozesse und die Größe des Verbindungspools an: Worker_ProcesssesAuto; Ereignisse {Worker_Connections 1024;}. 2. Aktivieren Sie die GZIP -Komprimierung und http/2 Protokoll: http {gzipon; server {listen443Sslhttp2;}}. 3.. Verwenden Sie die Cache -Optimierung: http {proxy_cache_path/path/to/cachelevels = 1: 2k

Apache Performance Tuning: Optimierung von Geschwindigkeit und Effizienz Apache Performance Tuning: Optimierung von Geschwindigkeit und Effizienz Apr 04, 2025 am 12:11 AM

Zu den Methoden zur Verbesserung der Apache-Leistung gehören: 1. Keepalive-Einstellungen einstellen, 2. Optimieren Sie Multi-Process-/Thread-Parameter, 3.. Verwenden Sie mod_deflate zur Komprimierung, 4. Cache implementieren und laden, 5. Durch diese Strategien können die Reaktionsgeschwindigkeit und die gleichzeitigen Verarbeitungsfähigkeiten von Apache -Servern erheblich verbessert werden.

Skalierung von XML/RSS -Verarbeitung: Leistungsoptimierungstechniken Skalierung von XML/RSS -Verarbeitung: Leistungsoptimierungstechniken Apr 27, 2025 am 12:28 AM

Bei der Verarbeitung von XML- und RSS -Daten können Sie die Leistung in den folgenden Schritten optimieren: 1) Effiziente Parser wie LXML verwenden, um die Parsengeschwindigkeit zu verbessern; 2) SAX -Parsers verwenden, um den Speicherverbrauch zu reduzieren. 3) Verwenden Sie XPath -Ausdrücke, um die Effizienz der Datenextraktion zu verbessern. 4) Implementieren Sie die parallele Verarbeitung von Multi-Process, um die Verarbeitungsgeschwindigkeit zu verbessern.

Etablierung einer integrierten Entwicklungsumgebung zwischen NGINX und PHP-FPM Etablierung einer integrierten Entwicklungsumgebung zwischen NGINX und PHP-FPM Apr 13, 2025 pm 10:15 PM

Der Schlüssel zur effizienten Kombination von Nginx und PHP-FPM ist, dass Nginx PHP an PHP-FPM weiterleitet. 1.Nginx-Konfiguration muss Standortblöcke enthalten, Regeln für die Verarbeitung von .php-Dateien angeben und FASTCGI_PASS festlegen, um auf die Höradresse von PHP-FPM zu verweisen (normalerweise 127.0.0.1:9000). 2. Die erweiterte Konfiguration umfasst NGINX -Lastausgleich, statische Ressourcen von Cache und sichere Konfiguration. 3. Die häufig gestellten Fragen enthalten PHP-FPM-Startfehler, Nginx kann keine Verbindung zu PHP-FPM- und 502-Fehlern herstellen, und Sie müssen die Konfiguration und den PHP-FPM-Prozess überprüfen. 4. Die Leistungsoptimierung kann eingestellt werden, indem die Anzahl der PHP-FPM-Prozesse angepasst, OPCACHE aktiviert und aktiviert wird

Yii 2.0 Deep Dive: Leistungsstimmen & Optimierung Yii 2.0 Deep Dive: Leistungsstimmen & Optimierung Apr 10, 2025 am 09:43 AM

Zu den Strategien zur Verbesserung der Anwendungsleistung von YII2.0 gehören: 1. Datenbankabfrageoptimierung, Verwenden von QueryBuilder und ActiveCord, um bestimmte Felder und Limit -Ergebnissätze auszuwählen; 2. Caching -Strategie, rationale Verwendung von Daten, Abfrage und Seitencache; 3.. Durch diese Methoden kann die Leistung von YII2.0 -Anwendungen erheblich verbessert werden.

Wie optimieren Sie das Layout von Datenstrukturen in C? Wie optimieren Sie das Layout von Datenstrukturen in C? Apr 28, 2025 pm 08:51 PM

Die Optimierung des Layouts von Datenstrukturen in C kann in den folgenden Schritten erreicht werden: 1. Anpassen der Speicherausrichtung und Reduzierung der Polsterung, z. B. Sortierstrukturelemente nach Größe. 2. Verbessern Sie die Freundlichkeit der Cache und setzen Sie häufig Mitglieder zusammen. 3. Optimieren Sie die Sortierung des Strukturmitglieds und stellen Sie die meistbesuchten Mitglieder vor. 4. Die Größe der Struktur so die Größe der Struktur so ein Vielfachen von Cache-Linien, um den Zugriff auf den Cache-Leitungen zu reduzieren. Durch diese Methoden können die Programmleistung und der Speicherverbrauch erheblich verbessert werden.

Was ist PHP-FPM und was sind ihre Vorteile gegenüber anderen PHP-Handlern? Was ist PHP-FPM und was sind ihre Vorteile gegenüber anderen PHP-Handlern? Jun 06, 2025 am 12:06 AM

PHP-FPMimprovesperformanceandresourcemanagementbyoperatingasaseparateservicewithprocesspooling.Unlikemod_phporCGI,itrunsindependentlyfromthewebserver(likeNginxorApache),allowingscalableandstablehandlingofPHPrequests.1.ItseparatesPHPprocessingfromthew

PHP -Leistungsoptimierungsdienst PHP -Leistungsoptimierungsdienst May 18, 2025 am 12:07 AM

PhpapplicationscanbeoptimizedByFocuseDonCodeeffizienz, Caching, DatenbankQueries und ServerConfiguration.1) UseFasterFunctionslikestrposoverpreg_matchForSimplestringoperations.2) Implementierung der Withapcu, memcachered, orreDististoredcescescescescescescescescescescescescescescescescescescescescescescescescescescescescescescescescescescescescescesces.3)

See all articles