Python Pebble ProcessPool как установить max_tasks

Пулы процессов Pebble принимают параметры для max_workers и max_tasks.

https://pythonhosted.org/Pebble/

Описание max_tasks немного неясно:

"Если max_tasks - число больше нуля, каждый работник будет перезапущен после выполнения равного количества задач".

Мой вопрос:

  • Что если оно не больше нуля? Как это ведет себя тогда?

  • Что значит перезагрузить работника? Допустим, max_tasks равно 5. Тогда каждый процесс выполнит 5 итераций, затем будет убит, а новый процесс будет перезапущен? Какая польза от этого?

  • Я знаю, что другие библиотеки позволяют настраивать карты пулов в зависимости от того, ожидается ли, что для выполнения каждой задачи потребуется аналогичное время или нет. Это уместно здесь?

  • В целом, какие рекомендации существуют для установки max_tasks?

Я запускаю функцию, которую нужно запустить для каждого элемента списка длиной += 160 000. Она полностью распараллеливается, и мой сервер имеет 8 ядер. Каждый вызов функции занимает примерно одно и то же время для завершения, самое большее в 3 раза дольше, чем среднее время.

Благодарю.

0 ответов

max_task параметр аналогичен maxtaskperchild в multiprocessing.Pool, Связанная с Python 2 документация объясняет назначение такого параметра.

Рабочие процессы в пуле обычно работают в течение всей рабочей очереди пула. В других системах (таких как Apache, mod_wsgi и т. Д.) Часто встречается тенденция освобождения ресурсов, хранящихся у работников, - разрешать работнику в пуле выполнять только определенный объем работы перед выходом, очисткой и порождением нового процесса. заменить старый. Аргумент maxtasksperchild для пула предоставляет эту возможность конечному пользователю.

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

Другие вопросы по тегам