gunicorn использует один и тот же рабочий процесс для всех запросов - PullRequest
0 голосов
/ 11 февраля 2019

Я использую gunicorn с рабочим типом gevent и 3 рабочими в двухъядерной системе.Я отправляю около 15 одновременных запросов на сервер.Среднее время для каждого запроса при отдельном запуске составляет 20 секунд, но при одновременном запуске оно увеличивается до 30.

Глядя на журналы для gunicorn, я вижу, что каждый запрос обрабатывается одним и тем же работником (отслеживается с использованием идентификатора процесса в журналах).Может ли это быть возможной причиной, почему среднее время намного выше?Поскольку один и тот же процесс обрабатывает все запросы, возможно, есть постоянные переключатели контекста.Как я могу гарантировать, что все рабочие процессы используются?Я попытался увеличить количество рабочих, но это не сильно помогло.

Вот часть файла конфигурации, которая запускает gunicorn как службу:

/usr/bin/gunicorn --pid /run/gunicorn/pid --bind unix:/run/gunicorn/socket myapp.wsgi:application -k gevent -w 3 --worker-connections 1000 --access-logfile /var/log/gunicorn/access.log --access-logformat "%(h)s %(l)s %(u)s %(t)s "%(r)s" %(s)s %(b)s "%(f)s" "%(a)s" %(p)s"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...