簡體   English   中英

從node.js派生出多個phantomjs worker是否理想?

[英]Is it ideal to have more than one phantomjs worker spawned from node.js?

我們正在使用phantomjs來截取各種網頁的屏幕快照,URL是由node.js服務器中的客戶端發送的,而該服務器又生成phantomjs來截取屏幕快照並發送base64圖像。 產生多個phantomjs工人來完成這項工作是否理想? 如果有5個客戶端請求,則將有5個產生的進程。 無論客戶端請求的數量如何,我將數量限制為5。 但是5個產生的進程是否也在服務器上推送了它?

要回答您的問題: 是的 ,運行多個PhantomJS worker完全可以。 對於我的碩士論文,我爬了超過一百萬個網站,並使用了多個工作人員(也來自Node.js)。

要檢查系統中有多少工作人員可行,可以使用nloadhtop工具(對於Linux)。 nload向您顯示網絡使用情況, htop向您顯示內存和CPU使用情況。 只需啟動一些PhantomJS實例以爬網某些頁面並監視資源的使用以檢查限制。

您可能還需要檢出phantomjs-pool庫(免責聲明:我是作者),因為它可以幫助您將作業排隊,還可以處理各種錯誤可能性和超時。

我從抓取過程中得到的一些發現:

  • CPU:每個CPU核心大約可以運行4個工作線程。
  • 內存:每個工作人員需要50到400 MB之間的內存,具體取決於您的設置(請注意內存泄漏 )。
  • 吞吐量:不斷訪問網站的工作人員需要大約2 MBit / s的吞吐量。
  • 持續時間:爬網所需的時間很大程度上取決於您要爬網的內容。 在我的設置中,單個網站的爬網平均需要10到15秒,具體取決於要爬網的列表。

舉個例子:在我的設置中,我被限制為8 MBit / s的吞吐量,這導致使用了四個工作程序。

所有這些值都是我進行爬網過程的結果,當然對於不同的網站可能會有很大差異。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM