Какое количество процессов лучше устанавливать на проде?
Наткнулся на такой конфиг:
[uwsgi]
strict = true
master = true
enable-threads = true
vacuum = true ; Удалить sockets во время выключения
single-interpreter = true
die-on-term = true ; Отключение при получении SIGTERM (по умолчанию перегрузка)
need-app = true
disable-logging = true ; Отключение встроенного логирования
log-4xx = true ; но включение для 4xx
log-5xx = true ; и 5xx
harakiri = 60 ; насильственно уничтожение workers через 60 секунд
py-callos-afterfork = true ; позволяют workers получать сигналы
max-requests = 1000 ; Перезапуск workers после этого количества запросов
max-worker-lifetime = 3600 ; Перезапуск workers через указанного количества секунд
reload-on-rss = 2048 ; Перезапуск workers после потребление указанного количества памяти
worker-reload-mercy = 60 ; Время ожидания перед удалением workers
cheaper-algo = busyness
processes = 128 ; Разрешенное максимальное количество workers
cheaper = 8 ; Минимальное количество worker
cheaper-initial = 16 ; Workers созданные во время старта
cheaper-overload = 1 ; Продолжительность цикла в секундах
cheaper-step = 16 ; Количество workers при из порождение
cheaper-busyness-multiplier = 30 ; Сколько циклов ждать, прежде чем убивать workers
cheaper-busyness-min = 20 ; Ниже этого порога убивать workers (если стабильно для множителя циклов)
cheaper-busyness-max = 70 ; Выше этого порога порождать новых workers
cheaper-busyness-backlog-alert = 16 ; Порождать аварийных workers, если в очереди ожидает больше этого количества запросов
cheaper-busyness-backlog-step = 2 ; Количество аварийных workers, если в очереди слишком много запросов
В нем параметр
processes = 128
Это получается, что на сервере используется 128-ядерный процессор (из расчета 1 процесс на 1 ядро)? Или я чего то не так понимаю?
На просторах интернета из бест практик читал, что лучше делать количество процессов - равным количеству ядер, что бы не было частых переключений контекста.
Соответственно сам вопрос - какое количество лучше устанавливать на проде для параметра process - по формуле nCPU * 2 + 1 или просто методом тыка и анализа?