Próbuję zainstalować php z fpm na macports. Czytałem gdzieś, że fpm oznacza menedżera procesów FastCGI. Czy to oznacza, że fastcgi i fpm są takie same? Jeśli są takie same, to dlaczego mamy dwa różne warianty macportów dla php, a mianowicie „php5 + fastcgi” i „php5 + fpm”
117
SpawnFCGI
liczbę odradzanych procesów i liczbę dzieci PHP na proces. Tak więc zrobienie 1 procesu PHP ze 100 dziećmi jest tym samym, co użycie FPM ze 100 dziećmi ... Jednak jest odwrotnie. Jeśli FPM zostanie zabity (segfault, cokolwiek), cały twój pracownik zginie. W SpawnFCGI, jeśli jeden z procesów umrze, reszta może pozostać żywa ... Więc nie jest jasne, że jeden jest lepszy od drugiego. Różne podejścia. FPM jest zalecane nie ze względów technicznych, ale dlatego, że jest utrzymywane wzdłuż bocznego rdzenia (w rzeczywistości) ...To, co mówi Anthony, jest absolutnie poprawne, ale chciałbym dodać, że twoje doświadczenie prawdopodobnie pokaże dużo lepszą wydajność i efektywność (nie dzięki
fpm
-vs-,fcgi
ale bardziej dzięki implementacji twojegohttpd
).Na przykład miałem czterordzeniową maszynę pracującą
lighttpd
ifcgi
ładnie pracującą . Zaktualizowałem komputer do 16-rdzeniowej maszyny, aby poradzić sobie z rozwojem, i eksplodowały dwie rzeczy: użycie pamięci RAM i segfault. Okazało się, że uruchamiałem się ponownielighttpd
co 30 minut, aby utrzymać stronę internetową.Przerzuciłem się na php-fpm i nginx, a użycie pamięci RAM spadło z> 20 GB do 2 GB. Segfaulty również zniknęły. Po przeprowadzeniu pewnych badań dowiedziałem się, że lighttpd i fcgi nie radzą sobie dobrze na maszynach wielordzeniowych pod obciążeniem, a także w niektórych przypadkach występują problemy z wyciekiem pamięci.
Czy to dlatego, że
php-fpm
jest lepszy niżfcgi
? Nie do końca, ale sposób , w jaki się podłączasz,php-fpm
wydaje się być o wiele bardziej skuteczny niż sposób serwowania przezfcgi
.źródło
Uruchomienie PHP jako CGI oznacza, że zasadniczo przekazujesz serwerowi WWW lokalizację pliku wykonywalnego PHP, a serwer uruchamia ten plik wykonywalny
natomiast
PHP FastCGI Process Manager (PHP-FPM) to alternatywny demon FastCGI dla PHP, który umożliwia witrynie obsługę uciążliwych obciążeń. PHP-FPM utrzymuje pule (pracownicy, którzy mogą odpowiadać na żądania PHP), aby to osiągnąć. PHP-FPM jest szybsze niż tradycyjne metody oparte na CGI, takie jak SUPHP, w środowiskach PHP z wieloma użytkownikami
Istnieją jednak wady i zalety obu i należy wybierać zgodnie z ich konkretnym przypadkiem użycia.
Znalazłem informacje na ten link dla fastcgi vs fpm bardzo pomocne w wyborze programu obsługi do użycia w moim scenariuszu.
źródło