2015-12-09 2 views
4

Я вижу в uwsgi.ini файла есть конфигурацияДля чего нужны темы uwsgi?

[uwsgi] 
socket = 127.0.0.1:3031 
chdir = /home/foobar/myproject/ 
wsgi-file = myproject/wsgi.py 
processes = 4 
threads = 2 
stats = 127.0.0.1:9191 

Я понимаю, что каждый запрос подается в другом процессе. Тогда для чего используются потоки?

ответ

5

Оба процесса и потоки могут использоваться для увеличения параллелизма. Нити дешевле, чем процессы, и используют меньше ресурсов, но могут не всегда выполняться параллельно из-за Python GIL.

Кроме того, со ссылкой на uWSGI documentation:

Там нет волшебных правил для установки количества процессов или потоков для использования. Это очень зависит от приложения и системы. Простой математики , как processes = 2 * cpucores, будет недостаточно. Вам необходимо провести эксперимент с различными настройками и быть готовым постоянно следить за вашими приложениями . uwsgitop может стать отличным инструментом для поиска наилучших значений.

+0

ли каждый процесс запускает нить для подачи запроса? Как я могу выполнить 8 одновременных запросов из вышеуказанной конфигурации? Есть ли разница между этими 3 конфигурациями 4 процесса и 2 потоками, 4 потоками, 4 процессом? –

+4

4 процесса 4 потока могут обрабатывать и масштабировать до 16 запросов одновременно. Если узкое место приложения ожидает ввода базы данных IO, тогда потоковая передача не добавляет штраф в Python. Кроме того, каждый процесс занимает фиксированный объем памяти для создания новой виртуальной машины Python. Нитки этого не делают. –

Смежные вопросы