私はStorm-Crawlerベースのクローラー専用のノードを持っています。私は20個のデュアルコアCPU、130GbのRAM、10Gb/sのイーサネット接続を自由に使用できます。利用可能なリソースを最大限に活用するためのストーム・クローラーのチューニング
トポロジをCollapsingSpout - > URLPartitionerBolt - > FetcherBoltに減らしました。注ぎ口はElasticsearchインデックス(約50Mレコード)から読み取ります。 Elasticsearchは、30 GBのRAMと2つのシャードで構成されています。
私はJVM専用の約50 GBのRAMを持つ1人のワーカーを使用します。 異なる設定(スレッドの合計数、キューごとのスレッド数、最大保留スパウト、バケット数やバケットサイズなどのElasticsearchに関連するもの)を使って再生すると、100 MB /秒の全体的な取り出し速度に達することができます。しかし、神経節のレポートを見ると、それは私に利用可能な帯域幅のわずか10%に相当します。 CPU使用率は約20%であり、RAMは問題ではないことに注意してください。
ボトルネックとなる可能性のあるヒントや、私の利用可能なリソースを十分に活用するためにクローラを調整/調整する方法に関するアドバイスを探しています。
ありがとうございます。
エティエンヌ
ハイエチネン。いくつのサイトをクロールしていますか? http://stormcrawler.net/faq/#howfast –
こんにちはジュリアンを参照してください。どれくらいのサイトがクロールしているのか分かりません。以前の再帰的クロールに由来する50MのURLのプールを使用しています。チューニングのために私はすべての睡眠時間を取り除いた。いくつかの試行を経て200 MB/sのネットワーク使用量に達することができましたが、全体的に私はまだマシンのリソースの20%しか使用していません。 – EJO