Я запускаю это: https://gist.github.com/snakers4/51b1b60a976f579393fc7b70e653ceb9
, чтобы загрузить и проанализировать (массивный) общий веб-архив для сканирования в текстовом формате.
Что-то интересное, что я заметил, это то, что это настройка по умолчаниюдля запуска 8 рабочих / процессов в пуле (многопроцессорном), однако, я использую машину с 32 ядрами (64 вычислительных потока, о которых сообщает os.cpu_count ()) и заметил, что производительность почти не увеличивается (возможно, уменьшается в разы), когда яувеличить количество рабочих. Это прямо противоречит тому, что я предположил, произойдет.
Насколько я понимаю, этот скрипт загружает файл заранее, а затем анализирует его, что должно предотвратить проблемы со скоростью и задержкой в сети. Я полагаю, что сначала полный файл имеет свои строки, добавленные в список до того, как пул настроен на работу, поэтому я считаю, что это должно быть в памяти (что позволяет избежать проблем с дисковым вводом-выводом ..?)
По номиналуЯ считаю, что многопроцессорность не ограничена каким-либо произвольным максимальным числом процессов, если процессы ниже количества ядер, но в целом использование этой машины не превышает 5%, а производительность не показывает заметного увеличения с добавлением большего количества рабочих. .
Чего мне не хватает? (Должно быть, где-то есть узкое место, которого я просто не вижу ... верно?)