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

3 minutos de lectura

avatar de usuario
Deepan Chakravarthy

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

avatar de usuario
ircmaxell

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 tubería de solicitud desde el inicio de la solicitud hasta el final es la misma). Está ahí para facilitar su implementación.

  • Una ventaja clave de php-fpm es que un caché de APC se puede compartir entre varios procesos. Con fcgid, la caché de APC es por proceso. El uso de fpm puede resultar en un gran ahorro de memoria, lo que le permite usar esa memoria guardada para generar más procesos y atender más tráfico.

    – cam8001

    18 de junio de 2013 a las 16:41

  • @ cam8001: eso no es del todo cierto. Puedes configurar SpawnFCGI cuántos procesos generar y el número de elementos PHP secundarios por proceso. Entonces generar 1 proceso PHP, con 100 niños es lo mismo que usar FPM con 100 niños… Sin embargo, lo contrario es cierto. Si FPM muere (segfault, lo que sea), todo su trabajador muere. En SpawnFCGI, si uno de los procesos muere, el resto puede permanecer vivo… Así que no está claro que uno sea mejor que el otro. Diferentes aproximaciones. FPM no se recomienda por razones técnicas, sino porque se mantiene a lo largo del núcleo lateral (en realidad)…

    – ircmaxell

    18 de junio de 2013 a las 16:47

avatar de usuario
mono espacial

Lo que dice Anthony es absolutamente correcto, pero me gustaría agregar que su experiencia probablemente muestre un rendimiento y una eficiencia mucho mejores (debido a que no fpm-vs-fcgi pero más a la implementación de su httpd).

Por ejemplo, tenía una máquina de cuatro núcleos funcionando lighttpd + fcgi tarareando muy bien. Actualicé a una máquina de 16 núcleos para hacer frente al crecimiento, y dos cosas explotaron: el uso de RAM y las fallas de segmento. Me encontré reiniciando lighttpd cada 30 minutos para mantener el sitio web activo.

Cambié a php-fpm y nginx, y el uso de RAM se redujo de >20 GB a 2 GB. Los fallos de segmento también desaparecieron. Después de investigar un poco, aprendí que lighttpd y fcgi no se llevan bien en máquinas multinúcleo bajo carga, y también tienen problemas de pérdida de memoria en ciertos casos.

¿Es esto debido a php-fpm siendo mejor que fcgi? No del todo, pero cómo te enganchas php-fpm parece ser mucho más eficiente que la forma en que sirve a través de fcgi.

  • ¿Son estos problemas hasta alrededor (abril de 2017)?

    – Señor Loh.

    31 de marzo de 2017 a las 19:14


  • Se recomienda cualquier actualización sobre la versión de lighttpd y fpm que usó, cualquier actualización de los problemas mencionados que aún aparecen (junio de 2018) también es útil para la comunidad.

    – soy

    10 de junio de 2018 a las 6:23

Ejecutar PHP como un CGI significa que básicamente le dice a su servidor web la ubicación del archivo ejecutable de PHP, y el servidor ejecuta ese ejecutable

mientras

PHP FastCGI Process Manager (PHP-FPM) es un demonio FastCGI alternativo para PHP que permite que un sitio web maneje cargas extenuantes. PHP-FPM mantiene grupos (trabajadores que pueden responder a las solicitudes de PHP) para lograr esto. PHP-FPM es más rápido que los métodos tradicionales basados ​​en CGI, como SUPHP, para entornos PHP multiusuario

Sin embargo, existen ventajas y desventajas para ambos y uno debe elegir según su caso de uso específico.

Encontré información en este enlace para fastcgi contra fpm bastante útil para elegir qué controlador usar en mi escenario.

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad