gpt4 book ai didi

python - Scrapyd 和单蜘蛛的并行/性能问题

转载 作者:太空狗 更新时间:2023-10-29 19:30:02 24 4
gpt4 key购买 nike

上下文

我正在运行 scrapyd 1.1 + scrapy 0.24.6 和一个“selenium-scrapy hybrid”蜘蛛,它根据参数在许多域上爬行。托管 scrapyd 实例的开发机器是一个 4 核的 OSX Yosemite,这是我当前的配置:

[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 个作业,而不管有多少作业待处理:

Scrapy console with jobs

编辑:

CPU 使用率不是很高:

CPU Usage for OSX

在 UBUNTU 上测试

我还在 Ubuntu 14.04 VM 上测试了这个场景,结果大致相同:执行时最多运行 5 个作业,没有过多的 CPU 消耗,执行的时间大致相同相同数量的任务。

最佳答案

日志显示您最多允许 300 个进程。因此,限制在链的更上游。我最初的建议是这是您项目的序列化,如 Running multiple spiders using scrapyd 所涵盖的那样。 .

后来的调查表明,限制因素实际上是轮询间隔。

关于python - Scrapyd 和单蜘蛛的并行/性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30672910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com