Есть ли какой-то интерес в использовании более одного работника, когда у вас есть только одно ядро? - PullRequest
2 голосов
/ 20 июня 2019

В настоящее время я настраиваю приложение Gunicorn на одноядерном компьютере, и у меня есть ограничение на память, поэтому я бы предпочел использовать 1 рабочий и 8 потоков, а не 2 рабочих с 4 потоками.

Однако я все еще спрашиваю себя о возможной проблеме производительности с конфигурацией 1 рабочий, поскольку в официальной документации Gunicorn рекомендуется использовать следующую настройку.

2 * (number of cores) + 1

Учитывая тот факт, что с Python я буду изначально блокироваться GIL. Если я хочу истинного параллелизма с использованием потоков, я все равно не вижу никакого интереса в использовании большего количества процессов, чем количество ядер.

1 Ответ

1 голос
/ 20 июня 2019

Это действительно зависит от рабочей нагрузки.

Для задач с интенсивным использованием процессора вы правы. Для задач с интенсивным вводом / выводом (сеть, хранилище) вы можете использовать множество потоков для повышения производительности даже на одном ядре.

Это все теоретически, и узкие места в производительности могут возникать из неожиданных источников.

На мой взгляд, лучше всего эмпирически сравнить несколько конфигураций при рабочих нагрузках, которые имитируют работу системы, и выбрать ту, которая дала наилучшие результаты.

...