Ich versuche, PHP mit Fpm auf Macports zu installieren. Ich habe irgendwo gelesen, dass fpm FastCGI-Prozessmanager bedeutet. Bedeutet das, dass fastcgi und fpm gleich sind? Wenn sie gleich sind, warum haben wir dann zwei verschiedene Macport-Varianten für PHP, nämlich "php5 + fastcgi" und "php5 + fpm"?
117
SpawnFCGI
wie viele Prozesse erzeugt werden sollen und wie viele PHP-Kinder pro Prozess vorhanden sind. Das Laichen eines PHP-Prozesses mit 100 Kindern ist also dasselbe wie das Verwenden von FPM mit 100 Kindern ... Das Gegenteil ist jedoch der Fall. Wenn FPM getötet wird (Segfault, was auch immer), stirbt Ihr gesamter Arbeiter. Wenn in SpawnFCGI einer der Prozesse stirbt, kann der Rest am Leben bleiben ... Es ist also nicht klar, ob einer besser als der andere ist. Unterschiedliche Ansätze. FPM wird nicht aus technischen Gründen empfohlen, sondern weil es entlang des Seitenkerns (tatsächlich darin)Was Anthony sagt, ist absolut richtig, aber ich möchte hinzufügen, dass Ihre Erfahrung wahrscheinlich eine viel bessere Leistung und Effizienz zeigen wird (nicht aufgrund von
fpm
-vs-,fcgi
sondern eher aufgrund der Implementierung Ihrerhttpd
).Zum Beispiel hatte ich eine Quad-Core-Maschine, die gut lief
lighttpd
undfcgi
summte. Ich habe ein Upgrade auf einen 16-Kern-Computer durchgeführt, um mit dem Wachstum fertig zu werden, und zwei Dinge sind explodiert: RAM-Auslastung und Segfaults. Ich habelighttpd
alle 30 Minuten einen Neustart durchgeführt , um die Website auf dem neuesten Stand zu halten.Ich wechselte zu PHP-Fpm und Nginx und die RAM-Auslastung ging von> 20 GB auf 2 GB zurück. Segfaults verschwanden ebenfalls. Nachdem ich einige Nachforschungen angestellt hatte, stellte ich fest, dass lighttpd und fcgi auf Multi-Core-Computern unter Last nicht gut miteinander auskommen und in bestimmten Fällen auch Probleme mit Speicherverlusten haben.
Liegt das daran
php-fpm
, besser zu sein alsfcgi
? Nicht ganz, aber wie Siephp-fpm
sich einhaken, scheint viel effizienter zu sein, als wie Sie über dienenfcgi
.quelle
Das Ausführen von PHP als CGI bedeutet, dass Sie Ihrem Webserver im Grunde den Speicherort der ausführbaren PHP-Datei mitteilen und der Server diese ausführbare Datei ausführt
wohingegen
PHP FastCGI Process Manager (PHP-FPM) ist ein alternativer FastCGI-Daemon für PHP, mit dem eine Website mit hohen Belastungen umgehen kann. PHP-FPM verwaltet Pools (Mitarbeiter, die auf PHP-Anfragen antworten können), um dies zu erreichen. PHP-FPM ist für Mehrbenutzer-PHP-Umgebungen schneller als herkömmliche CGI-basierte Methoden wie SUPHP
Beide haben jedoch Vor- und Nachteile, und man sollte nach ihrem spezifischen Anwendungsfall wählen.
Ich fand Informationen zu diesem Link für fastcgi vs fpm sehr hilfreich bei der Auswahl des in meinem Szenario zu verwendenden Handlers .
quelle