emperor - uwsgi vs gunicorn
uWSGI:--master con--emperor genera dos emperadores (3)
Puedo ver que si comienzo uwsgi así:
sudo /usr/local/bin/uwsgi --emperor /etc/uwsgi/vassals --uid www --gid www
crea una copia de emperador. Pero si lo comienzo con --master
adicionalmente (como se recomienda here ), crea dos copias de emperador. ¿Tiene sentido usar --master
con --emperor
? Yo diría que no, pero si lo ejecuto sin esa opción, obtengo esta advertencia:
*** WARNING: you are running uWSGI without its master process manager ***
Aquí está lo que dice la documentación oficial :
Generalmente, el emperador no debe ejecutarse con --master, a menos que se necesiten específicamente funciones maestras como el registro avanzado.
Si te estás preguntando qué hace la opción master
, here está la respuesta:
dominar
El modo de gestión de múltiples trabajadores prefork + threading incorporado de uWSGI, se activa al encender el interruptor principal. Para todas las implementaciones prácticas de servicio, no es realmente una buena idea no usar el modo maestro.
Entonces, para resumir:
- Utilice
--master
para la instancia uWSGI habitual, - No utilice
--master
para uWSGI Emperor.
Me gustaría agregar alguna información específica para usar el modo harakiri para vasallos que se ejecutan bajo el emperador. Si el maestro no está también en la configuración para los vasallos, harakiri no tendrá ningún efecto, independientemente de si el maestro / harakiri está especificado en la configuración del emperador. Dado un ejemplo de configuración del emperador:
[uwsgi]
emperor = ...
daemonize = ...
emperor-pidfile = ...
vassal-set = enable-metrics=1
emperor-stats = 127.0.0.1:6000
Los vasallos necesitarán lo siguiente para que funcione el harakiri:
[uwsgi]
strict
processes = 4
stats = 127.0.0.1:5000
memory-report
daemonize = ...
pidfile = ...
close-on-exec
py-tracebacker = /tmp/tbsocket
master
harakiri = 5
harakiri-verbose
Tenga en cuenta que tanto el maestro como el harakiri están presentes en el vasallo y que establecerlos en emperor config no tendría ningún efecto sobre los vasallos para la versión 2.0.12 de uwsgi
No estoy de acuerdo: la documentación dice que no es una buena idea NO usarla, en la producción de todos modos; Supongo que el doble negativo podría escribirse más claramente.
Por lo tanto, parece que es una buena idea usarlo, de ahí la advertencia.