大規模なWebクローラーを構築する場合、インターネットサーバーファームにある専用WebサーバーでWebを実行するときに、Webをクロールするときに最適なインスタンスの数。
2 に答える
spare_memory_on_machine / memory_footprint_of_crawler_process * 0.95
大規模なクローラーを作成するには、次のようないくつかの問題に対処する必要があります。
• すべての情報を 1 つのデータベースに保持することは不可能です。
• 巨大なインデックスを処理するのに十分な RAM がありません
• マルチスレッドのパフォーマンスと同時実行性
• クローラー トラップ (URL、カレンダー、セッション ID の変更によって作成される無限ループ...) および重複したコンテンツ。
• 複数のコンピュータからのクロール
• 不正な HTML コード
• サーバーからの継続的な http エラー
• 圧縮されていないデータベース。必要なスペースが約 8 倍になります。
• ルーチンと優先順位を再クロールします。
• 圧縮されたリクエスト (Deflate/gzip) を使用します (あらゆる種類のクローラーに適しています)。
そして、いくつかの重要なこと
• robots.txt を尊重する
• また、Web サーバーを窒息させないように、各リクエストでクローラーを遅延させます。
最適なスレッド構成は、コードによって異なります。.net で 100 プロセスを実行しています。不要なオープン スレッドを避けるために、スケジュール クラスを使用することをお勧めします。
PS。5 つのスレッドを使用している場合、「大規模」な Web クローリングに到達するには何年もかかります。