Scrapyd和single spid的并行性/性能问题

2024-04-27 03:46:12 发布

您现在位置:Python中文网/ 问答频道 /正文

上下文

我运行的是scrapyd1.1+scrapy0.24.6和一个“seleniumscrapyhybrid”蜘蛛,它根据参数在多个域上爬行。 承载scrapyd实例的开发机器是一个OSX Yosemite 4核,这是我当前的配置:

[scrapyd]
max_proc_per_cpu = 75
debug = on

scrapyd启动时输出:

^{pr2}$

编辑:

芯数:

python -c 'import multiprocessing; print(multiprocessing.cpu_count())' 
4

问题

我想设置为一个蜘蛛同时处理300个作业,但scrapyd一次处理1到4个作业,而不管有多少作业等待处理:

Scrapy console with jobs

编辑:

CPU使用率并不高:

CPU Usage for OSX

在UBUNTU上测试

我也在ubuntu14.04vm上测试过这个场景,结果大致相同:执行时最多运行5个作业,没有压倒性的CPU消耗,差不多在相同的时间内执行相同数量的任务。在


Tags: 实例机器编辑参数作业proccpumultiprocessing
2条回答

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

随后的调查显示,限制因素实际上是投票间隔。在

我的问题是我的作业持续的时间比默认值POLL_INTERVAL短,即5秒,因此在前一个任务结束之前没有足够的任务被轮询。将此设置更改为低于爬网程序作业平均持续时间的值将有助于scrapyd轮询更多的作业以供执行。在

相关问题 更多 >