Контекст
Я запускаю scrapyd 1.1 + scrapy 0.24.6 с одним «гибридным селен-скрейпи» пауком, который сканирует множество доменов в соответствии с параметрами. Машина для разработки, на которой размещаются экземпляры scrapyd, представляет собой OSX Yosemite с 4 ядрами, и это моя текущая конфигурация:
[scrapyd]
max_proc_per_cpu = 75
debug = on
Вывод при запуске scrapyd:
2015-06-05 13:38:10-0500 [-] Log opened.
2015-06-05 13:38:10-0500 [-] twistd 15.0.0 (/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python 2.7.9) starting up.
2015-06-05 13:38:10-0500 [-] reactor class: twisted.internet.selectreactor.SelectReactor.
2015-06-05 13:38:10-0500 [-] Site starting on 6800
2015-06-05 13:38:10-0500 [-] Starting factory <twisted.web.server.Site instance at 0x104b91f38>
2015-06-05 13:38:10-0500 [Launcher] Scrapyd 1.0.1 started: max_proc=300, runner='scrapyd.runner'
РЕДАКТИРОВАТЬ:
Количество ядер:
python -c 'import multiprocessing; print(multiprocessing.cpu_count())'
4
Проблема
Я хотел бы, чтобы установка обрабатывала 300 заданий одновременно для одного паука, но scrapyd обрабатывает от 1 до 4 за раз, независимо от того, сколько заданий ожидает:
РЕДАКТИРОВАТЬ:
Использование ЦП не является подавляющим:
ПРОВЕРЕНО НА УБУНТУ
Я также протестировал этот сценарий на виртуальной машине Ubuntu 14.04, результаты более или менее такие же: во время выполнения было достигнуто максимум 5 запущенных заданий, не было чрезмерной нагрузки на ЦП, примерно столько же времени потребовалось для выполнения того же количества задач. задачи.
python -c 'import multiprocessing; print(multiprocessing.cpu_count())'
- person Elias Dorneles   schedule 07.06.2015