web-dev-qa-db-ja.com

robots.txtおよび文書化されていない設定「ホスト負荷」を使用してロボットのクロールの同時実行を制御する

私はあまりネットワークの専門家ではありません。私たちのサイトの1つが断続的にリバースプロキシに応答しなくなるという問題のトラブルシューティングを行っています。単に接続を停止し、30分程度ですべてが正常になります。

サーバーは過負荷に見えず、ループバックトラフィックに正常に応答しますが、明らかにプロキシからの接続を拒否しています...

これは多面的な問題になるでしょう。サーバー全体を見ると、外部のWebクローラーから、さらに内部のGoogle検索アプライアンス(GSA)からも多くのトラフィックを取得していることに気付きました。

クロールの並列度が問題かどうかを調べたかったのです。全体的なトラフィックを減らすのに役立つクロール遅延設定を知っていますが、クロールの頻度に影響を与え、インデックス作成に遅延を追加します。とにかくクローラーからの負荷を制御するための最も最適な方法とは思えません。

とにかく、リクエストの頻度は問題になりません... Googleが1日中1日に絶えずクロールしたい場合は、問題ありません。これが行われている間、開いている接続が多すぎない限り、他の接続を処理する能力に実際に影響を与えることはありません。

netstatで接続を発信している同時Googlebotの数を特定するのは困難です。特定の時点で確立される接続は、完了するまでに少し時間がかかる接続だけです。とにかく、アクティブな接続が一度に2つ以上表示されることはなく、TIME_WAIT接続が多く表示されません(つまり、Googlebotは終了し、接続を閉じ、数分間側で閉じるのを待っています) ...デフォルトTCP stuff)。

次に、これがあります: Robots.txt Q&A with Matt Cutts

このページでは、Host-loadと呼ばれる、明らかに文書化されていない(ロボット除外プロトコルの一部ではない)設定について説明します。理論上、この設定により、同時に接続するGooglebotの数を指定できるようになります。GSAおよび他のGooglebotホストに、処理可能な並列度を通知するために1つのことを使用できるため、完璧です...

だからそれはクールに思えますが、Matt Cutts(ウェブスパムチームを率いるGoogleエンジニア)以外は誰もこの設定について言及していないので、誰か他の人がそれを使用しているのか興味がありますか?

たとえば、GooglebotのデフォルトのHost-loadが2であることを知っていれば、問題の一部として並列Webクローラーを完全に除外できます。それが一つの質問です。 Q&Aでたとえば2を使用したという事実は、2がデフォルトのHost-loadであり、netstatから見たものと相関していることを暗示しているようです。

大きな問題は次のとおりです。

Robots Exclusion Protocolで形式化されていない拡張robots.txtプロパティのリストまたは参照を知っている人はいますか?非常に多くのクローラーが存在するため、あらゆる種類の独自の設定があると思います。

4
HAL9000

どのクローラーも、ユーザーエージェントを介して「Googlebot」または他の検索エンジンボットとして自身を識別することができます。そのため、一部のクローラーがサイトを「スパム」している可能性があります。すべてのボットに対してrobots.txtでクロール遅延を設定することをお勧めします。

2
Oleg

ウェブマスターツールの[Googlebotの問題を報告]リンクを使用して、クロール設定についてGooglebotチームに知らせることができます。サイトのダッシュボード、ギアアイコン(右上)、[サイト設定]、[クロールレート]、[詳細]で確認できます。彼らは時々物事を微調整することができるかもしれません、または単にそれを自動に保つことは理にかなっているかもしれません。

2
John Mueller