python django nginx celery uwsgi

python - uwsgi: ¿Qué define el número de trabajadores/proceso que necesita una aplicación django?



nginx celery (1)

  • ¿Cuáles son las reglas que definen el número de trabajadores para la máquina?

    De los documentos de uWsgi :

    No hay una regla mágica para establecer el número de procesos o subprocesos. Es dependiente de la aplicación y del sistema. No piense que usar matemáticas simples como 2 * cpucores será suficiente. Necesita experimentar con varias configuraciones y monitorear constantemente su aplicación. uwsgitop podría ser una gran herramienta para encontrar el mejor valor.

  • Cuando se usa con nginx, la configuración "worker_processes" en nginx.conf afecta esto?

    Esa configuración solo está relacionada con nginx y no afecta directamente a uwsgi. Sin embargo, es probable que tenga que juguetear con esta configuración porque no desea tener veinte nginx worker_processes y solo un trabajador uwsgi.

  • Cuando se usa con apio + redis, la "concurrencia" está relacionada con esto?

    Por lo general, enciendo el demonio de apio con manage.py de django, así que esto funcionará fuera de uwsgi.

  • ¿Qué pasa con la seguridad del hilo en esta configuración?

    Tendría que saber más detalles / detalles para comentar.

Tengo una pregunta para administradores de sistemas y desarrolladores. Veo que uWSGI me permite establecer el número o los trabajadores o los procesos cuando se ejecuta uWSGI y había leído que depende de la máquina instalada, por lo que tengo las siguientes preguntas:

  1. ¿Cuáles son las reglas que definen el número de trabajadores para la máquina?
  2. Cuando se usa con nginx, ¿la configuración worker_processes en nginx.conf afecta esto?
  3. Cuando se usa con Celery y Redis, ¿está relacionada la concurrency con esto?
  4. ¿Qué pasa con la seguridad del hilo en esta configuración? (He visto casos en mi aplicación donde 1 solicitud ejecuta 1 tarea y el resultado es 2 llamadas al apio con esta tarea).