У меня есть код на Python, который обрабатывает множество логов apache (распаковка, анализ, перебор чисел, регулярное выражение и т. Д.).Один родительский процесс, который принимает список файлов (до нескольких миллионов) и отправляет список файлов для анализа рабочим, используя многопроцессорный пул.
Интересно, есть ли какие-нибудь рекомендации / ориентиры / советы, которые могут помочь мне оценить идеальное количество дочерних процессов? Т.е.лучше иметь один процесс на ядро, чем запускать несколько сотен?
В настоящее время 3/4 времени выполнения скрипта читает файлы и распаковывает их, а с точки зрения ресурсов, его ЦП, который загружен на 100%, память и ввод / вывод в порядке.Поэтому я предполагаю, что многое можно сделать с правильными настройками многопроцессорности.Скрипт будет работать на разных компьютерах / ОС, поэтому приветствуются также специальные советы для ОС.
Кроме того, есть ли преимущество в использовании потоков, а не многопроцессорных?