Optimizar php-fpm

Administrar maquinas conectadas a internet sin tener presupuesto para un buen firewall esta empezando a ser una tarea complicada. Los putos bots se pasan las 24 horas del día tocando las narices.

Llevo algún tiempo intentando mantener una de mis maquinas online el mayor tiempo posible (y no lo estoy consiguiendo, me temo). 2 cores y 4Gb de memoria debería ser mas que suficiente para llevar unas cuantas webs (5000 visitas al mes entre todas aproximadamente).

https://serversforhackers.com/c/php-fpm-process-management

Ya había probado cosas como estas … hacer números para intentar aprovechar todos los recursos disponibles en la maquina, ademas de usar todos los plugins de cache, empezar a pasar el trafico a través de cloudflare.

Lo unico que me faltaba por probar es algún tipo de CDN, pero todos son de pago y mi tarjeta no da para mas …

Y al final, la solución (mas o menos) estaba en este post y era de lo mas simple.

http://linuxbsdos.com/2015/02/17/how-to-reduce-php-fpm-php5-fpm-ram-usage-by-about-50/

Resulta que, en la configuración de los pooles de php puedes arrancarlos de 3 formas, static, dynamic y ondemand.

En todos los sitios que había mirado siempre hablaban de las dos primeras, salvo en esta url. Resulta que si lo pones como ondemand, como no arranca ningún proceso si no hay trafico puedes usar esos recursos para otra cosa (otra web normalmente).

Tampoco es que esto sea magia, pero después de unos días si que es cierto que la maquina parece que aguanta bastante mas, la media de carga ha pasado de mas de 20 a estar por debajo de 5.

El “truco” es que … en vez de tener siempre arrancados los procesos (que ocupan sobre 30Mb cada uno), solo los arranca cuando son necesarios … sirven lo que tengan que servir y después de 10 segundos (configurable) se mueren y liberan los recursos.

Digamos que es parecido a tener un solo pool para todas las urls que tienes que servir.

Curioso … que te pases horas y horas buscando una solución y que al final aparezca de suerte …

Be the first to leave a comment. Don’t be shy.

Join the Discussion

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>