php python gearman supervisord

php - Haga que Supervisord reinicie periódicamente los procesos secundarios



python gearman (2)

Puede usar crontab para pasar comandos directamente a supervisorctl. Por ejemplo, lo siguiente reiniciará un proceso cada 20 minutos.

0,20,40 * * * * /path/to/supervisorctl restart [supervisor_process]

Estoy usando Supervisor (3.0a12) en ubuntu 12.04 para administrar a los trabajadores de php gearman. A veces los trabajadores quedan atrapados en un estado extraño en el que usan toneladas de CPU y ariete. Mientras estoy resolviendo este problema, pensé que sería bueno que el Supervisor automáticamente mate y actualice a los trabajadores de vez en cuando. Revisé http://supervisord.org/configuration.html la documentación de configuración y no vi ninguna opción que permitiera esto.

¿Alguien sabe si es posible tener supervisord reiniciar periódicamente todos los procesos que gobierna?


El paquete superlance ofrece un complemento memmon para supervisor. memmon monitorea el uso de la memoria para programas bajo control de supervisor.

Configura memmon como supervisor de eventos:

[eventlistener:memmon] command=memmon -a 200MB events=TICK_60

La configuración anterior establece memmon para reiniciar cualquier programa bajo el control del supervisor si excede el uso de memoria de 200 MB. Comprueba cada 60 segundos.

Puede configurar memmon para monitorear programas específicos o grupos de programas, estableciendo límites para cada uno.