PHP-FPM en cPanel 300% más veloz

Nuestros ingenieros siempre están buscando formas de mejorar la pila. Uno de los principales objetivos de nuestras integraciones de pila es mejorar la velocidad de los procesos generales de nuestra pila.

Siguiendo con esta práctica, en un intento por aumentar la velocidad de los aspectos de Hosting Cloud Managed junto con mejoras constantes basadas en los comentarios de los usuarios, Unlockers Cloud ahora ha integrado PHP-FPM en todos sus servidores. Debido a esta integración, las aplicaciones alojadas en servidores de alojamiento MySQL de Unlockers Cloud, PHP ahora funcionarán hasta 3 veces más rápido.

¿Por qué PHP-FPM?

Desde la perspectiva de un visitante del sitio web, cambiar de mod_PHP a PHP-FPM podría no ser un gran problema. Sin embargo, desde el punto de vista del administrador del sistema, ambos son cosas completamente diferentes.

Todos los administradores de sistemas son conscientes de que PHP funciona con todos los principales servidores web y se puede ejecutar de diferentes maneras en su servidor. Una de las formas más comunes conocidas para ejecutar PHP es el módulo mod_php. Esto se debe a que viene por defecto en los servidores HTTP Apache. Pero hay un pequeño problema. A diferencia de PHP-FPM, mod_PHP bloquea los procesos e interrumpe el rendimiento de un sitio web.

Si su objetivo principal para alojar su aplicación web con un servicio en la nube optimizado es lograr un rendimiento y una seguridad óptimos, entonces PHP-FPM es el camino a seguir.

PHP-FPM (FastCGI Process Manager) acelera drásticamente el rendimiento de su entorno PHP.

PHP-FPM vs. mod_PHP Benchmarks de rendimiento

Usando un entorno controlado probamos un sitio web de WordPress usando PHP-FPM y mod_PHP. No hemos utilizado barniz o trementina para la prueba. Cada vez, notamos un mayor rendimiento y estabilidad con la pila que contenía PHP-FPM.

Rendimiento con mod_PHP

Utilizamos un servidor DigitalOcean de 4 GB. La aplicación para esta prueba fue un sitio web de WordPress.

wordpress-mod-php

La prueba generó 38,046 visitas exitosas en 295.0 segundos con una transferencia de datos de 7,399.11 KB y 206,219.42 KB  desde la aplicación. La tasa de éxito promedio de 128.0 / segundo se traduce en aproximadamente 1,1059,200 visitas / día.

El tiempo de respuesta promedio fue de 2150 ms .

Rendimiento con PHP-FPM

Lo único diferente en esta prueba es la adición de PHP-FPM.

wordpress-php-fpm

La prueba generó 85,829 visitas exitosas en 295.0 segundos con una transferencia de 16,465.18 KB y 465,728.74 KB de datos desde la aplicación. La tasa de éxito promedio de 290.0 / segundo se traduce en aproximadamente 25,056,000 visitas / día.

El tiempo de respuesta promedio fue de 628 ms .

Resultados

Puede notar que PHP-FPM hizo que nuestro sitio web de prueba sea casi un 350% más rápido cuando se trata de tiempos de carga. Además, hizo que el sitio tuviera el doble de eficiencia de recursos que con mod_php.

PHP-FPM, una de las formas más nuevas de usar PHP junto con un servidor web, es una implementación alternativa de PHP FastCGI. Este módulo de PHP se puede usar con cualquier servidor web que sea compatible con el protocolo de FastCGI.

La principal ventaja de PHP-FPM es que se basa en el concepto de gestión de agrupaciones. Cada grupo de PHP-FPM se puede ver como una instancia completa de PHP, que tiene una configuración, límite y restricciones propios. Estas limitaciones, restricciones y configuraciones están en términos de procesos secundarios, módulos, variables de entorno, carpetas y registros.

¿Cómo habilitar PHP-FPM?

Para los servidores lanzados después de este anuncio del 23 de agosto de 2016, PHP-FPM se ha habilitado de forma predeterminada. Para las nuevas instancias del servidor, mod_PHP se ha retirado de forma predeterminada. Para los servidores lanzados antes del 23 de agosto, puede habilitar PHP-FPM revisando esta guía paso a paso .

PHP-FPM vs. mod_PHP: ¿Cuál es mejor?

Creemos que realmente no se trata de PHP-FPM vs mod_PHP. Con este movimiento, apuntamos a los aspectos principales que Unlockers Cloud aspira a lograr: confiabilidad, seguridad, escalabilidad y velocidad. PHP-FPM proporciona todo esto junto con muchas oportunidades de personalización y ajuste de rendimiento. Por lo tanto, solo es factible que pasemos de procesos más lentos (mod_PHP) a procesos mucho más rápidos con PHP-FPM.

PHP FastCGI Process Manager (PHP-FPM) es un demonio FastCGI alternativo para PHP que permite que un sitio web maneje cargas elevadas. PHP-FPM mantiene grupos (trabajadores que pueden responder a solicitudes 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. No hace  no  sobrecargar la memoria de un sistema con PHP a partir de procesos de Apache.

  • LiteSpeed ​​Web Server usa el  lsphp binario. LiteSpeed ​​Web Server  no  utiliza la implementación PHP-FPM del sistema en la interfaz del Administrador MultiPHP de WHM ( WHM >> Inicio >> Software >> Administrador MultiPHP ).

  • Para monitorear aplicaciones que usan PHP-FPM, seleccione la casilla de verificación Monitor para el servicio PHP-FPM para el servicio cPanel Daemons en la interfaz del Administrador de servicios de WHM ( WHM >> Inicio >> Configuración del servicio >> Administrador de servicios ).

Ejecutar PHP-FPM con CentOS 7 y EasyApache 4

En los sistemas CentOS 7, EasyApache 4 usa la  PrivateTmp opción con PHP-FPM. EasyApache 4 hace esto para aumentar la seguridad de los archivos temporales que los procesos en ejecución tienen acceso PHP-FPM. La  PrivateTmp opción crea directorios especiales en el  /tmp directorio para cada versión de Apache PHP-FPM que utiliza su sistema. Es posible que cada vez que usted o el sistema reinicie el servicio PHP-FPM, la  PrivateTmp opción cree un nuevo directorio.

Advertencia:

Eliminar los  PrivateTmpdirectorios creados, ya sea manual o automáticamente, causará errores en las aplicaciones o sitios web que usan PHP-FPM. Le  recomendamos encarecidamente  que no  elimine estos directorios. Si necesita eliminar alguno de estos directorios, le recomendamos que reinicie el servicio Apache PHP-FPM. Esto asegura que Apache PHP-FPM funcionará correctamente.

Para reiniciar Apache PHP-FPM, use el siguiente comando:

/scripts/restartsrv_apache_php_fpm --hard

Más recursos para usar PHP-FPM

Estos recursos pueden ayudarlo a utilizar PHP-FPM por completo: 

Documentación adicional