PHP
PHP (Preprocesador de Hipertexto) es un lenguaje de programación de código abierto especialmente adecuado para el desarrollo web. Se ejecuta en el lado del servidor, lo que significa que procesa el código en el servidor web antes de enviarlo al cliente (navegador). WordPress se basa en PHP; por lo tanto, es esencial para los sitios de WordPress. PHP permite a tu sitio de WordPress:
- Generar contenido dinámico y mostrarlo en un sitio web en tiempo real.
- Interactuar con tu base de datos, permitiéndole obtener y almacenar datos.
- Manejar formularios y procesar las entradas de los usuarios, haciendo que los sitios de WordPress sean más interactivos.
- Utilizar temas y plugins para ampliar las capacidades básicas de WordPress.
- Mejorar el rendimiento garantizando que gran parte del trabajo pesado se realiza en el servidor web antes de que el contenido llegue al navegador del usuario.
Cómo se procesa PHP
Cuando un visitante visita una página sin caché o realiza una acción en una página (por ejemplo, añadir algo a un carrito, enviar un formulario, etc.), se produce el siguiente proceso:
- El servidor web (Aquí en Kinsta, Nginx) recibe esa petición.
- Nginx pasa la solicitud a PHP, que se asigna a un hilo PHP disponible.
- El hilo PHP ejecuta el script PHP (por ejemplo, obteniendo datos de la base de datos o procesando formularios).
- Durante el procesamiento, el hilo PHP utiliza una parte de la memoria del servidor hasta el límite de memoria PHP establecido en Kinsta.
- Si hay varios visitantes simultáneos, cada solicitud se asigna a un hilo PHP diferente. Si todos los hilos están ocupados, las solicitudes adicionales esperan hasta que un hilo esté disponible.
- A continuación, PHP genera una página HTML utilizando los archivos PHP de tu tema (y los archivos de cualquier plugin, si procede).
- PHP devuelve la página HTML generada al servidor web.
- La página se sirve al visitante.
Si tu sitio no utiliza caché o no está optimizado, los hilos PHP pueden estar ocupados durante más tiempo, lo que puede degradar el rendimiento y provocar tiempos de espera o errores 503 y 504 cuando los visitantes accedan a tu sitio. Para obtener información sobre cómo comprobar el rendimiento de PHP y cómo optimizar tus hilos PHP, consulta Rendimiento de PHP.
Hilos PHP
Los hilos PHP (antes conocidos como PHP workers) son procesos PHP individuales responsables de gestionar las peticiones entrantes a tu sitio web. Cada hilo procesa una petición a la vez, lo que significa que si tienes dos hilos, sólo se pueden procesar dos peticiones simultáneamente.
Una vez que un hilo PHP termina de procesar una petición (por ejemplo, renderizando una página o recuperando datos de una base de datos), queda libre para gestionar la siguiente.
Los hilos PHP entran realmente en juego cuando un sitio no almacena o no puede almacenar en caché la mayor parte de su contenido. Cuanto más dinámico sea un sitio web, más hilos PHP necesitará. El contenido almacenado en caché no requiere hilos PHP; en realidad sólo son necesarios cuando el sitio necesita consultar la base de datos para obtener o cambiar información. Un sitio optimizado gestiona las peticiones rápidamente, liberando hilos PHP para la siguiente petición de la cola.
Para más información sobre cómo optimizar tus hilos PHP, consulta Rendimiento de PHP.
Planes Kinsta e hilos PHP
La siguiente tabla muestra el pool PHP por defecto, el número de hilos y la memoria por hilo que se incluyen por defecto en cada plan de Kinsta:
Plan | Tamaño del pool | Número de hilos | Memoria por hilo |
---|---|---|---|
Single 35k | 512 MB | 2 | 256 MB |
Single 65k | 1GB | 4 | 256MB |
Single 125k | 1.5GB | 6 | 256MB |
Single 315k | 1.5GB | 6 | 256MB |
Single 500k | 2GB | 8 | 256MB |
Single 750k | 2GB | 8 | 256MB |
WP 2 | 512MB | 2 | 256MB |
WP 5 | 1GB | 4 | 256MB |
WP 10 | 1GB | 4 | 256MB |
WP 20 | 1.5GB | 6 | 256MB |
WP 40 | 1.5GB | 6 | 256MB |
Puedes cambiar el número de hilos PHP para cada sitio dentro de los sitios WordPress > nombre del sitio > Información > Rendimiento PHP > Cambiar.
Los siguientes planes no tienen acceso actualmente a la función de rendimiento PHP ni a los pools PHP. Sin embargo, incluyen el siguiente número de hilos PHP por defecto:
Plan | Hilos PHP por sitio |
---|---|
Single 1,25M | 10 |
Single 1,9M | 12 |
Single 2,5M | 14 |
Single 3,15M | 16 |
WP 60 | 8 |
WP 80 | 10 |
PT 120 | 12 |
LB 150 | 14 |
Agency 20 | 6 |
Agency 40 | 6 |
Agency 60 | 8 |
Límite de memoria PHP
El límite de memoria PHP define la cantidad máxima de memoria (RAM) que cada hilo PHP puede utilizar mientras procesa una petición.
Este límite es crucial porque los scripts PHP (especialmente en WordPress) a menudo tienen que gestionar tareas que consumen mucha memoria, como grandes consultas a bases de datos, subidas de archivos multimedia o cálculos complejos.
Si un script supera el límite de memoria establecido, se produce un error (por ejemplo, «Tamaño de memoria permitido agotado»). Esto evita que un script consuma recursos excesivos del servidor.
Planes Kinsta y memoria PHP
El límite de memoria por defecto de Kinsta es de 256 MB para los planes Single 35k, 65k, 125k, 315k, 500k y 750k, y WP 2, 5, 10, 20 y 40, lo que es más que suficiente para la mayoría de plugins y sitios de WordPress. Los planes Single 1,25M, 1,9M, 2,5M y 3,15M, WP 60, 80, 120 y 150, y Agency 20, 40 y 60 tienen un límite de memoria de 512 MB. Este límite existe para evitar que los scripts PHP consuman demasiada memoria. Si estableces un límite demasiado alto, un script mal configurado o roto puede causar graves problemas al consumir demasiada memoria.
Puedes cambiar el límite de memoria PHP de un sitio dentro de sitios WordPress > nombre del sitio > Información > Rendimiento de PHP > Cambiar.
Interacción entre los hilos PHP y la memoria
El número de hilos PHP no debe confundirse con el límite de memoria PHP. Los hilos PHP son procesos PHP individuales que gestionan las peticiones web entrantes, mientras que el límite de memoria PHP especifica la cantidad máxima de memoria (RAM) que un único script PHP puede utilizar durante su ejecución.
Los hilos PHP gestionan la concurrencia procesando múltiples peticiones simultáneamente, mientras que el límite de memoria PHP gestiona la asignación de recursos restringiendo el uso de memoria de los scripts individuales. Esto evita que un único script utilice toda la memoria disponible del servidor.
Los límites de memoria PHP son importantes para los scripts que requieren mucha memoria, como los que realizan grandes consultas a bases de datos, manejan grandes cargas de archivos o ejecutan cálculos complejos. Si encuentras errores de límite de memoria en tu sitio, aumentar el número de hilos PHP no resolverá este problema. En su lugar, debes aumentar la memoria por hilo en sitios WordPress > nombre del sitio > Información > Rendimiento de PHP > Cambiar.
Interacción entre hilos PHP, CPU y RAM
Al añadir hilos PHP, hay que tener en cuenta los recursos de CPU y RAM. Si aumentas el número de hilos PHP, pero el servidor necesita más CPU y RAM para soportar esos hilos, se creará un cuello de botella porque las peticiones no se gestionarán eficientemente.
En Kinsta, cada contenedor LXD personalizado está configurado con 12 CPUs y 8 GB de RAM. Además, al utilizar máquinas virtuales C2 y C3D optimizadas para el cálculo y equipadas con las CPU más rápidas de Google Cloud, ayudamos a que los hilos PHP de tu sitio se ejecuten de forma más eficiente. Nuestra infraestructura escalable garantiza que los hilos PHP de tu sitio de WordPress tengan suficientes recursos de CPU para funcionar al máximo rendimiento.
Valores PHP predeterminados
Como servicio Administrado de WordPress, Kinsta tiene configurados los ajustes PHP óptimos para funcionar mejor con sitios de WordPress. Si tienes requisitos específicos de PHP, no dudes en ponerte en contacto con nuestro Equipo de Soporte para hablar de tus necesidades.
Kinsta ofrece PHP 7.4, 8.0, 8.1, 8.2, 8.3 y 8.4. Estas son las configuraciones por defecto para PHP:
- memory_limit = 256M
- post_max_size = 128M
- upload_max_filesize = 128M
- max_input_vars = 10000
- max_execution_time = 300