この記事は最終更新日より 1 年以上経過しています。
画像やリンクが無効になっている可能性もあるのでご了承下さい。
画像やリンクが無効になっている可能性もあるのでご了承下さい。
特定ホストに対する無慈悲なクロールにて、サーバー負荷が高まることが多くなってきた。以前、WordPress で使用して居たカレンダー関係のプラグインに対するアクセスが原因だった。
該当するプラグインは Time.ly って所の Core Calendar と言う物。
このプラグインによるカレンダーにアクセスする為の URL は、登録したイベントに対して「週ごと、月ごと等」と複数のアクセスパターンあるので端から見るともの凄いページ数の扱いになる。これを Bot が全てクロールしようとするのだが、プラグインは既に削除済みなので httpd は 404 を返すことになる。WordPress が PHP で動的に処理した結果、404 となるので無駄な負荷が掛かる事になる。
だいたいこんな感じに。だいたい 06:00 頃からクロールが始まっている。
WordPress としても一応なんとかしようとしているらしく、MySQL にも動きが。
結果としては CPU 負荷も上昇する。Pentium G6950 と言う貧弱な CPU なんで 1 コア持って行かれている。
これだけリソースを持って行かれるのも癪なんでなんとかしたい。Googlebot の全てを拒否するわけにもいかないから、問題のある箇所だけを制限したい。
Apache のログを参照すると、次のような物が吐かれている。
crawl-66-249-79-172.googlebot.com - - [22/Apr/2014:11:50:32 +0900] "GET /calendar/action~month/cat_ids~35,41,42,36,43,34,38/ HTTP/1.1" 404 7016 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" crawl-66-249-79-172.googlebot.com - - [22/Apr/2014:11:50:33 +0900] "GET /calendar/action~agenda/page_offset~1/time_limit~1390532401/cat_ids~34,41,36,43,37,44,38/ HTTP/1.1" 404 7046 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" crawl-66-249-79-172.googlebot.com - - [22/Apr/2014:11:50:34 +0900] "GET /calendar/action~week/exact_date~1389970800/cat_ids~37,35,43,36,39,44,41/ HTTP/1.1" 404 7037 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" crawl-66-249-79-172.googlebot.com - - [22/Apr/2014:11:50:35 +0900] "GET /calendar/action~week/cat_ids~34,40,38,41,37,42,39/ HTTP/1.1" 404 7017 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" crawl-66-249-79-204.googlebot.com - - [22/Apr/2014:11:50:36 +0900] "GET /calendar/action~month/exact_date~1393599600/cat_ids~36,43,40,39,44,37/ HTTP/1.1" 404 7034 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" crawl-66-249-79-204.googlebot.com - - [22/Apr/2014:11:50:36 +0900] "GET /calendar/action~agenda/page_offset~1/time_limit~1390532401/cat_ids~34,38,37,40,39,45,41/ HTTP/1.1" 404 7046 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
よって、次の 2 行を robots.txt に記述する事で様子見する事になった。
User-agent: *
Disallow: /calendar/
ある程度 404 って分かったらクロール止めてくれないものなのかね・・・・・・orz
コメント