uwsgi: Определяет количество рабочих / процессов, которые требуется для приложения django?

17

У меня вопрос для системных администраторов и разработчиков. Я вижу, что uWSGI позволяет мне устанавливать число или рабочих или процессов при запуске uWSGI, и я прочитал, что это зависит от установленной машины, поэтому у меня есть следующие вопросы:

  1. Каковы правила, определяющие количество рабочих для машины?
  2. При использовании с nginx, влияет ли config worker_processes на nginx.conf на это?
  3. При использовании с Celery и Redis отношение concurrency связано с этим?
  4. Как насчет безопасности потока в этой настройке? (Я видел случаи в моем приложении, где 1 запрос выполняет 1 задачу, а результат - 2 вызова сельдерея с этой задачей.)
задан panchicore 11.10.2012 в 16:38
источник
  • ваш последний пункт не связан с настройкой uwsgi. (вы можете открыть новый вопрос для этого [с настройками вашего сельдерея]) –  Tommaso Barbugli 12.10.2012 в 12:56
  • вы уверены? вы можете ответить почему? –  panchicore 12.10.2012 в 16:06

1 ответ

14
  • Каковы правила, определяющие количество рабочих для машины?

    В документах uWsgi :

      

    Не существует волшебного правила для установки количества процессов или потоков. Он зависит от приложения и системы. Не думайте, что использование простой математики, такой как 2 * cpucores, будет достаточно. Вам нужно поэкспериментировать с различными настройками, постоянно контролируя ваше приложение. uwsgitop может стать отличным инструментом для поиска наилучшего значения.

  • При использовании с nginx, config "worker_processes" в nginx.conf делает это?

    Этот параметр связан только с nginx и не влияет непосредственно на uwsgi. Однако вам, вероятно, придется переделывать эту настройку, потому что вы не хотите иметь двадцать nginx worker_processes и только один рабочий uwsgi.

  • При использовании с сельдереем + redis «параллелизм» связан с этим?

    Я обычно разворачиваю демона сельдерея с помощью django manage.py, поэтому он будет работать вне uwsgi.

  • Как насчет безопасности потока в этой настройке?

    Мне нужно будет узнать больше деталей / особенностей для комментариев.

ответ дан Scott Woodall 11.10.2012 в 16:53
  • безопасность потока: я имею в виду, безопасность потоков в среде, сконфигурированной с помощью nginx 1 worker_process + uwsgi 2 worker + celery 4 process. Я видел случаи в моем приложении, где 1 запрос выполняет 1 задачу, а результат - 2 вызова сельдерея с этой задачей. –  panchicore 11.10.2012 в 17:34