如果想要提高nutch區域網抓取的速度,大家第乙個想到肯定是-threads .但是那是錯誤的,如果只是單單增大執行緒數,那根本於事無補。
通過下面這組測試,我們看看-threads 是否起作用。首先在本地apache2下建立兩個**,寫乙個簡單的rakefile來幫助完成測試。設定depth=3 ,下面是rakefile的內容:
threads=1threads的值分別為1,5,10 結果如下表:depth=3
task:default => [:crawl]
task:crawl => [:clean] do
t=time.now
sh "bin/nutch crawl myurl -dir crawl -depth # -threads #"
puts time.now-t
endtask:clean do
sh "rm -rf crawl"
end
執行緒數時間
1891.001462
5889.560529
10878.812949
從上面**可以看出,這根本一點作用都沒有。第一種提高速度的方法就是減少抓取之間的延遲時間,我們可以通過修改conf/nutch-default.xml中fetcher.server.delay 來減少延遲時間。
fetcher.server.delay我們試試減小它的值為1.0(原先的值為5.0)。經過測試,結果如下:抓取器在同一伺服器的逐次請求所延遲的秒數
執行緒數時間
1482.807096
5488.666853
10486.67904
顯然速度提高了,但是執行緒數還是起沒有作用,原因就在於conf/nutch-default.xml中fetcher.threads.per.host 配置為1。那麼第二種方法就是同一時刻允許多個執行緒訪問同一主機。
fetcher.threads.per.host如果這個配置為1,同一時刻只允許乙個執行緒,啟動多少的執行緒都沒用。下面我們增大這個配置為5,測試結果如下:這個值允許同一時刻訪問一台主機的最大執行緒數
執行緒數時間
1484.754918
5384.201041
10332.934009
很明顯隨著執行緒數的增大,抓取速度也在增大。如果還想再提高速度的話,可以減小抓取之間的延遲時間。不過不是修改fetcher.server.delay ,而是修改fetcher.server.min.delay 。這個配置是設定抓取器在同一伺服器的逐次請求所延遲最小的秒數,這個值僅當fetcher.threads.per.host 屬性值比1大時適用。
區域網是什麼 區域網的介紹
區域網 local area network,l是指在某一區域內由多台計算機互聯程式設計客棧成的計算機組。一般是方圓幾千公尺以內。區域網可以實現檔案管理 應用軟體共享 印表機共享 工作組內的日程安排 電子郵件和傳真通訊服務等功能。區域網是封閉型的,可以由辦公室www.cppcns.com內的兩台計算...
如何使用PCATTCP測試區域網傳輸速度
pcattcp是一款不錯的測試區域網網路速度的軟體,下面介紹下使用方法 1 伺服器端 在伺服器端執行如下命令 c pcattcp r 執行後,提示如下 pcausa test tcp utility v2.01.01.08 tcp receive test local host www b722d7...
區域網問題的設定
計算機無法訪問,您可能沒有許可權使用網路資源.的解決方法 位元論壇h a z kj e 1 安裝 nwlink ipx spx netbios compatible transport protocol協議。q n6g 2 開啟 guest賬號 右擊我的電腦 管理 使用者有個 guest,雙擊之去掉...