首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从node.js派生多个phantomjs worker是理想的吗?

问从node.js派生多个phantomjs worker是理想的吗?
EN

Stack Overflow用户
提问于 2015-11-30 22:18:37
回答 1查看 135关注 0票数 1

我们使用phantomjs来截取各种网页的屏幕截图,url是由node.js服务器中的客户端发送的,这反过来又会产生phantomjs来截取屏幕截图并发送base64图像。理想的做法是创建多个phantomjs worker来完成这项工作吗?如果有5个客户端请求,则会有5个衍生进程。我已经将数量限制为5,而不考虑客户端请求的数量。但是,5个衍生进程是否也会将其推送到服务器上?

EN

回答 1

Stack Overflow用户

发布于 2015-12-04 23:58:34

回答你的问题:是,运行多个PhantomJS worker是完全没问题的。在我的硕士论文中,我爬行了100多万个网站,使用了多个workers (也是从Node.js衍生而来)。

要检查有多少工作进程可用于您的系统,可以使用工具nload和htop (适用于linux)。nload向您显示网络使用情况,htop向您显示内存和CPU的使用情况。只需启动一些PhantomJS实例来抓取一些页面,并监视资源的使用情况以检查限制。

您可能还想查看phantomjs-pool库(免责声明:我是作者),因为它将帮助您对作业进行排队,还可以处理各种错误可能性和超时。

我做了一些爬行的发现:

  • CPU :您可以在每个CPU核心上运行大约4个worker。
  • Memory:每个worker需要50到400 MB,这取决于您的设置(请记住,memory leaks).
  • Throughput:经常访问网站的worker需要大约2 MBit/s.
  • Duration:的吞吐量,抓取网站所需的时间在很大程度上取决于您正在抓取的内容。在我的设置中,抓取一个网站平均需要10到15秒,这取决于抓取的列表。

举个例子:在我的设置中,我的吞吐量被限制为8Mbit/s,这导致使用四个工作进程。

所有这些值都是我爬行过程的结果,当然,不同的网站可能会有很大的不同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34000717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档