Reciclador de procesos idle php-fpm para Core-Admin -- WebhostingManagement


#1

1. Introducción

A continuación se describe el monitor de procesos php-fpm idle que proporciona Core-Admin y que permite:

  • Retirar/reciclar procesos php-fpm en estado idle tras un tiempo sin hacer trabajo útil (usualmente 60 segundos).
  • Ayudar a contener el uso de memoria consumida por procesos php-fpm en el contexto de máquinas con webs pesadas o webs con mucha visita debido a bots y similares.
  • Ayudar a reducir el número de eventos OOM killer debido a que se obtiene una mayor media de memoria disponible (al reciclar antes debido a actividad observada).

2. Funcionamiento

  1. Arranque: con un core-admin actualizado, se puede activar el monitor ejecutando:

    # ARRANQUE:
    >> crad-webhosting-mgr.pyc --start-recycle-php-fpm-idle-processes
    INFO: /usr/sbin/crad-webhosting-mgr.pyc: start_recycle_php_fpm_idle_processes, started monitor (pid file /var/run/crad-webhosting-mgr-recycle-php-fpm-idle-processes.pid):1912136`

    Esto lanzará el proceso de monitorización, desplegando un proceso permanente auto-supervisado y que queda disponible incluso tras reinicios.

  2. Parada: Para detener el monitor y por tanto la protección proporcionada, simplemente ejecutar:

    # PARADA:
    >> crad-webhosting-mgr.pyc --stop-recycle-php-fpm-idle-processes

3. Actualización y mantenimiento

  1. Desactivado permanente: Para máquinas donde se desee que nunca se active este proceso, se puede ejecutar lo siguiente para marcar la instalación:

    # DESACTIVADO PERMANENTE:
    >> crad-webhosting-mgr.pyc --disable-recycle-php-fpm-idle-processes

    Esto no solo desactivará el servicio, también detendrá el monitor arrancaso si lo hubiese.

  2. Recarga tras actualización: durante la actualización de core-admin, si hubiese un monitor arrancado, este será recargado utilizando:

    # RECARGA TRAS ACTUALIZACIÓN:
    >> crad-webhosting-mgr.pyc --reload-recycle-php-fpm-idle-processes

    NOTA: este proceso es automático. No hace falta ejecutarlo manualmente tras actualizar.

  3. Revisión y reactivación en caso de reinicio o fallo: una vez activado el monitor, el sistema instala un cron para auto-supervisar el servicio para asegurar que ejecuta e implementa las tareas de reciclado. El cron está localizado en:

    >> cat /etc/cron.d/crad-webhosting-mgr-recycle-php-fpm-idle-processes-cron
    # Core-Admin : Cron to ensure RecyclePhpFpmIdleProcesses work
    # Enabled on: Mon Apr 14 17:11:52 2025
    # Disable this cron with: /usr/sbin/crad-webhosting-mgr.pyc --stop-recycle-php-fpm-idle-processes
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    */5 * * * * root /usr/sbin/crad-webhosting-mgr.pyc --start-recycle-php-fpm-idle-processes > /dev/null 2>&1