Пулы процессов Pebble принимают параметры для max_workers и max_tasks.
https://pythonhosted.org/Pebble/#pools
Описание max_tasks немного неясно:
"Если max_tasks больше числачем ноль, каждый работник будет перезапущен после выполнения равного количества задач. "
Мой вопрос:
Что если он не больше нуля?Как он себя ведет тогда?
Что значит перезагрузить работника?Допустим, max_tasks равно 5. Тогда каждый процесс выполнит 5 итераций, затем будет уничтожен, а новый процесс перезапущен?Какая польза от этого?
Я знаю, что другие библиотеки позволяют настраивать карты пула в зависимости от того, ожидается ли, что для выполнения каждой задачи потребуется одинаковое время или нет.Это уместно здесь?
В целом, какие рекомендации существуют для установки max_tasks?
Я запускаю функцию, которая должна бытьзапустить на каждом элементе списка длиной + = 160 000. Это полностью распараллеливается, и мой сервер имеет 8 ядер.Каждый вызов функции занимает примерно одно и то же время для завершения, самое большее в 3 раза дольше, чем среднее время.
Спасибо.