Zusammenfassung
PHP FastCGI Prozess Manager (PHP-FPM)
FPM (FastCGI Process Manager) ist eine alternative PHP FastCGI–Implementierung mit einigen zusätzlichen Funktionen (meist) nützlich für schwere geladenen Seiten. PHP-FPM hat zwei große Teil der Konfiguration und nutzt auch php.ini PHP Konfiguration – laden
Globale Richtlinien (Php-fpm.conf)
Pool–Richtlinien (Default ist www.conf, nennen Sie es Website Zweck zB. blog.conf, forum.conf, etc..)
PHP-FPM Konfiguration 101 Artikel soll bieten Zweck, Einsicht und empfohlene Konfiguration, die Sie vom ersten Tag in optimaler Weise hilft.
Kenne die Bestimmung, nimm es, tune es 🙂
Hinweis: Nach Konfigurationswerte in VPS mit Debian Squeeze (512 MB, 4 CPU–Kerne) entlang der bereitgestellten NGINX und MySQL, System laufen glatt wird.
Beginnen wir mit den globalen Richtlinien.
Globale Richtlinien (Php-fpm.conf)
Emergency_restart_threshold Wert definieren
Zweck: Wenn diese Anzahl der Kindprozesse mit Segmentierung, Seitenfehler und Zugriffsverletzung (SIGSEGV oder SIGBUS) innerhalb der Emergency_restart_interval festgelegten Zeitspanne beenden wird dann FPM neu gestartet
Standardwert: 0 bedeutet, dass aus
Konfiguration:
1
Emergency_restart_threshold = 10
Emergency_restart_interval Wert definieren
Zweck: Zeitintervall verwendet, um festzustellen, wann ein unterbrechungsfreier Neustart initiiert wird. Dies ist nützlich, um unbeabsichtigte Beschädigungen im shared Memory ein Beschleuniger zu umgehen
Standardwert: 0
Verfügbare Einheiten: s(econds), m(inutes), h(ours) oder d(ays)
Konfiguration:
2
Emergency_restart_interval = 1m
Process_control_timeout Wert definieren
Zweck: Frist für Child–Prozesse, warten, bis eine Reaktion auf Signale vom master
Standardwert:
Konfiguration:
3
Process_control_timeout = 10
Weißt du die Plattform, definieren Sie Ereignisse Benachrichtigungsmechanismus für FPM
Zweck: Gewählten Mechanismus von FPM für Ereignisse Benachrichtigung verwendet
Mechanismen unterstützt:
Wählen Sie (alle POSIX–os)
Umfrage (alle POSIX–os)
Epoll (Linux > = 2.5.44)
Kqueue (FreeBSD > = 4.1, OpenBSD > = 2.9, NetBSD > = 2.0)
/ Dev/Poll (Solaris > = 7)
Port (Solaris > = 10)
4
Events.Mechanism = Epoll
Pool–Richtlinien (Standardname lautet www.conf)
Mehrere Pools der Kindprozesse können mit verschiedenen überwachten Ports sowie verschiedene Optionen gestartet werden. Der Name des Pools werden in Protokollen und Statistiken verwendet werden. Es gibt keine Begrenzung der Anzahl der Pools der FPM verarbeiten kann. Systemgrenze ist also die FPM–Grenze.
Listen–Modus definieren, FPM unterstützt Unix–Socket und TCP–Socket
Zweck: Es verwendet, um Modus verbinden Mechanismus über PHP Request von Frontend–Server (wie Nginx, etc.)
Standardwert: TCP–Socket
Konfiguration:
1
hören = 127.0.0.1:9000
Benötigen Sie weitere Pool für Anwendung bestimmten
hören = 127.0.0.1:9001
hören = 127.0.0.1:9002
Rückstand Grenze definieren
Zweck: Das Rückstand–Argument definiert die maximale Länge, der Warteschlange schwebender Verbindungen
Standardwert: 128 für Linux /-1 für FreeBSD und OpenBSD (‘-1 ‘ bedeutet unbegrenzt)
Konfiguration:
2
Listen.Backlog =-1
Process Manager Controll Mechanismus der untergeordnete Prozess definieren
Mögliche Werte: statisch, dynamisch, ondemand
Beschreibung der Werte: weit verbreitete Werte sind statische und dynamische
statisch–eine feste Anzahl (pm.max_children) von untergeordneten Prozessen
dynamisch – die Anzahl der Kindprozesse dynamisch basierend auf folgenden Richtlinien festgelegt sind. Mit diesem Prozessmanagement werden es immer mindestens 1 Kinder
OnDemand – entstehen keine Kinder beim Start. Kinder werden geforkt werden, wenn neue Anforderungen verbunden wird
Konfiguration: Dies ist eine obligatorische Wert
3
PM = dynamische
Process Manager Maximum Kinder Grenze definieren
Zweck: Die Anzahl der Kindprozesse erstellt werden, wenn pm “statischen” und die maximale Anzahl der Kindprozesse festgelegt ist, wenn die Uhr auf “dynamisch” oder “Ondemand” festgelegt ist
Hinweis: Entspricht der ApacheMaxClients–Richtlinie mit mpm_prefork
Standardwert: 5
Konfiguration: Dieser Wert ist obligatorisch.
4
PM.max_children = 5
Support–Richtlinien für Prozessmanager Definition definieren
Zweck: Kind Prozess–Management–Konfiguration für FPM, diese Konfigurations–Optionen ist anwendbar, wenn pm zu “dynamischen” festgelegt ist
Konfiguration:
5
6
7
PM.start_servers = 2
PM.min_spare_servers = 1
PM.max_spare_servers = 3
Maxmium Anfragen Grenze für untergeordnete Prozess definieren
Zweck: Die Anzahl der Anfragen, dass jedem Kindprozess ausgeführt werden soll, vor dem respawning (Erholung der Kindprozess)
Standardwert: 0
Konfiguration: Für endlose Anforderungsverarbeitung angeben ‘ 0′
8
PM.max_requests = 10000
Fordern Sie Slowlog Zeit heraus zu definieren
Zweck: Das Zeitlimit für die Zustellung einer einzelnen Anforderung, wonach eine PHP–Backtrace in die Datei ‘Slowlog’ übertragbar wird.
Standardwert: 0
Konfiguration: Der Wert “0 s” bedeutet “aus”
9
Request_slowlog_timeout = 5 s
Skript langsamen Protokoll definieren
Zweck: Protokollierung langsam fordert Informationen in slowlog
Standardwert: nicht definiert
Hinweis: Slowlog ist obligatorisch, wenn Request_slowlog_timeout festgelegt ist
Konfiguration:
10
Slowlog = /var/log/$pool.log.slow
Anforderung definieren Frist zu kündigen
Zweck: Das Zeitlimit für die Zustellung einer einzelnen Anforderung, nach der der Arbeitsprozess getötet werden. Diese Option sollte verwendet werden, wenn die “Max_execution_time” Ini–Option die Skriptausführung aus irgendeinem Grund nicht Halt macht
Standardwert: 0
Verfügbare Einheiten: s(econds)(default), m(inutes), h(ours) oder d(ays)
Konfiguration: Der Wert “0 bedeutet“aus”
11
Request_terminate_timeout = 300 s
Datei öffnen Descripter Grenze definieren
Zweck: Die Direktive erlaubt das Überschreiben einer definierten Systemgrenze für geöffnete Datei–Deskriptor für PHP-FPM
Standardwert: System definierten Wert
Alternative (System definiert): weiche & schwer Nofile Begrenzung auf Systemebene
Konfiguration:
12
Rlimit_files = 131072
Max Core Grenze definieren
Zweck: Ein Prozess kann Grenzwert festlegen, seine weiche RLIMIT_CORE Ressource um eine Obergrenze für die Größe der Core–Dump–Datei platzieren, die erzeugt wird, wenn es ein “Core Dump”–Signal empfängt
Standardwert: System definierten Wert
Mögliche Werte: ‘unbegrenzt’ oder eine ganze Zahl größer oder gleich 0
Konfiguration:
13
Rlimit_core = unbegrenzt
Definieren Sie ob Arbeitnehmer Ausgabe abgefangen
Zweck: Umleitung der Arbeitnehmer Stdout und Stderr in Haupt–Fehlerprotokoll. Set, Stdout und Stderr werden auf/dev/null nach FastCGI Angaben weitergeleitet, wenn nicht
Standardwert: keine
Betrachtung: Hoch geladenen Umweltfragen, kann dies einige Verzögerung in der Seite–Bearbeitungszeit (mehrere ms) führen
Konfiguration:
14
Catch_workers_output = Yes
Environment–Variablen an PHP-FPM–Prozess übergeben
Zweck: Alle $VARIABLEs stammen aus der aktuellen Umgebung.
Standardwert: saubere env
Konfiguration:
15
16
17
18
ENV [HOSTNAME] = $HOSTNAME
ENV [TMP] = / tmp
ENV [TMPDIR] = / tmp
ENV [TEMP] = / tmp
Leave a Reply