Tengo un sitio web hecho con Codeigniter, ejecutándose en Ubuntu con Nginx y PHP-FPM. Funcionó bien hasta anoche, cuando comenzó a cargar páginas muy lentamente, a veces dando 504, otras veces cargando páginas rápidamente.
Si reinicio nginx o php-fpm, el sitio funciona bien durante 20-30 segundos, luego vuelve a ocurrir el problema.
Esto es lo que dice el registro de errores de nginx:
[error] 25226#25226: *65 upstream agotó el tiempo de espera (110: conexión agotada) al leer el encabezado de respuesta del upstream, cliente: XXXX, servidor: www.mydomain.ext, solicitud: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php5.6-fpm.sock:", servidor: "www.midominio.ext"
Estuve buscando en Google y jugando con la configuración de nginx y php-fpm durante las últimas horas, pero no pude resolverlo.
¿Alguien sabe cómo ayudarme?
A mí me parece un problema con la gestión de procesos de FPM. Consulte este enlace para obtener más información. Parece que tiene un número estático de procesos disponibles para php-fpm y el tráfico lo supera. Estaba enfrentando problemas similares, pero no recuerdo si este era el mensaje de error exacto en ese entonces. Pero el comportamiento fue como lo explicaste, algunas conexiones eran realmente lentas (¿Esperando fpm?) Otras devolvían 504.
ACTUALIZACIÓN: Para confirmar mi teoría, debe verificar el archivo /etc/php5.6/pool.d/www.conf y verificar esta línea:
pm.max_children = XAumente el número y reinicie fpm. Luego ver si el problema está resuelto.
Intenta modificar tu configuración de la siguiente manera:
pm = ondemand pm.max_children = 200 pm.process_idle_timeout = 1s pm.max_requests = 1000reinicie fpm y su problema debería resolverse.