PM2 против Gunicorn: Эквивалентная настройка Gunicorn для режима fork_mode в PM2

У нас есть staging-сервер для запуска текущего состояния нашего веб-приложения под нашей веткой git develop. На нем запущен компонент Next.js для фронтенда и Django для веб-API (с использованием DRF).

Как staging-сервер, мы не полностью настроили его как производственный сервер, где мы обычно используем Gunicorn. Вместо этого мы запускаем и Next, и приложение Django, используя PM2 в cluster_mode и fork_mode соответственно.

На нашем рабочем сервере мы запускаем Django на Gunicorn, используя параллелизм с самой базовой настройкой - просто установить workers без необходимости использовать worker_connection и threads, как gevent или gthread, соответственно.

Мне интересно, в PM2, каково эквивалентное поведение его fork_mode в Gunicorn? (Например, работает ли fork_mode так же, как gevent или gthread? Работает ли он в параллельном режиме вместо параллельного?)

Я хочу знать, реализует ли PM2 fork_mode потоковую обработку или параллелизм. Если да, то это может быть причиной того, что Django API запрос через наш staging сервер под управлением PM2 fork_mode вызывает значительные задержки, или иногда вызывает задержки при первом запросе после некоторого бездействия

При текущем состоянии кодовой базы нашего приложения Django лучше всего работает parallelism, что легко достижимо в Gunicorn, используя только опцию -w. Не уверен, как установить такое же поведение в PM2.

Вернуться на верх