0

我正在使用来自getratings github 项目的基于 node.js 和 jsdom 的getratings.js脚本从NewEgg、BestBuy 等网站上抓取用户评论。

该脚本托管在 EC2 微实例上。在将超过 12 个同时请求发送到服务之前,它可以正常工作。除此之外,主机上的资源和内存利用率非常高,并且对客户端的响应需要很长时间。

我试图处理内存泄漏。一旦完成处理请求,内存使用量最终会下降,但使用峰值非常高。

我想知道我是否可以做一些事情来使通过 jsdom 处理 html 在资源利用方面更有效。

4

2 回答 2

1

Paul 的回答对于使用节点进行扩展非常有用,但我认为 Amazon EC2 应该归咎于此。在一定(少量)CPU 突增后,微型实例会受到限制。请参阅:http ://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/concepts_micro_instances.html

于 2012-07-04T20:57:10.507 回答
0

如果您查看此站点,您可能想要手动清理垃圾。他给出了一个通用的方法。

我的建议是在每次请求后进行清理。但也许这可能太多了。您可能还需要增加机器可以创建的套接字数量。同样,代码位于下面列出的站点中。我将发布我从他的文章中获得的基础知识。

http://dev.caustik.com/websvn/filedetails.php?repname=sprites&path=%2Fsprites-server%2Ftrunk%2Freadme.txt

you need to increase ulimit to handle more than ~1024 connections:

ulimit -n 1048576

You also need to run node using this command line:

node --trace-gc --expose-gc --nouse-idle-notification sprites.js

之后您将需要调用 gc() 函数来进行垃圾收集。

于 2012-04-25T16:16:58.857 回答