¿Cuál es la diferencia entre fastcgi y fpm?

Estoy tratando de instalar php con fpm en macports. Leí en alguna parte que fpm significa administrador de procesos FastCGI. ¿Eso quiere decir que fastcgi y fpm son los mismos? Si son iguales, ¿por qué tenemos dos variantes de macports diferentes para php, a saber, “php5 + fastcgi” y “php5 + fpm”

    FPM es un administrador de procesos para administrar FastCGI SAPI (Server API) en PHP.

    Básicamente, reemplaza la necesidad de algo como SpawnFCGI . Genera los niños FastCGI de forma adaptativa (lo que significa lanzar más si la carga actual lo requiere).

    De lo contrario, no hay mucha diferencia operativa entre él y FastCGI (La solicitud de canalización desde el inicio de la solicitud hasta el final es la misma). Está ahí para facilitar la implementación.

    Lo que Anthony dice es absolutamente correcto, pero me gustaría añadir que su experiencia probablemente mostrará mucho mejor rendimiento y eficiencia (no por fpm-vs-fcgi, sino más por la implementación de su httpd).

    Por ejemplo, tenía una máquina de cuatro núcleos ejecutando lighttpd + fcgi zumbando muy bien. Me actualicé a una máquina de 16 núcleos para hacer frente al crecimiento, y aparecieron dos cosas: el uso de RAM y segfaults. Me encontré a mí mismo reiniciando lighttpd cada 30 minutos para mantener el sitio web en funcionamiento.

    Cambié a php-fpm y nginx, y el uso de RAM cayó de> 20GB a 2GB. Segfaults desapareció también. Después de investigar un poco, me enteré de que lighttpd y fcgi no se llevan bien en máquinas multi-core bajo carga, y que también tienen problemas de pérdida de memoria en ciertas instancias.

    ¿Esto se debe a que php-fpm es mejor que fcgi? No del todo, pero la forma en que se conecta a php-fpm parece ser mucho más eficiente que cómo se sirve a través de fcgi.