最近、サーバーのディスクアクセスランプがつきっぱなし、その間Webへのアクセスも遅くなるという現象がひっきりなしに起きているので「どっかからアタックでもされてんのかなぁ~」とwwwサーバーのLogを確認してみた。
ザザっと眺めていると、ユーザーエージェントがDocomoやらKDDIやらJ-Phoneやらが一杯。携帯からのアクセスがやたら増えたなと思いながら、おかしな所が無いか調べる。
2007-05-20 09:26:22 124.83.159.148 – 221.186.40.58 80 GET /s1/i/mt4i.cgi id=2&mode=postform&no=559&eid=1575 200 DoCoMo/2.0/SO502i+(compatible;+Y!J-SRD/1.0;+http://help.yahoo.co.jp/help/jp/search/indexing/indexing-27.html)
一見携帯からアクセスされているように見えるが、よーく見ると「compatible;+Y!J-SRD/1.0」とあり、RefererのアドレスはYahoo。つまりYahooのCrawlerが携帯電話を装ってデータ収集に来ていたのだ。Refererのアドレスはコレ。
「モバイル版Yahoo!検索の検索エンジン用ロボットについて」
このページには、問題があったらRobot.txtをいじれとかMETAタグで拒否しろ等、無責任な事がかかれているが、その2つをいじっても結局アクセスはするのだから全く解決にはならない。いっそのことFireWallでCrawlerをゴッソリアクセス拒否しようかと思ったのだが、なんか負けっぽくなるので却下。なにか対策が無いか調べてみた。
とりあえずプロセス一覧を見ると、一度に数十件のアクセスが来てる。一気に数十プロセスのPerlが同時起動しているのだ、こりゃキツいはずだ。メモリーもギリギリだったのでそれが原因でスワップが発生し、激重になっていた模様。
つーか、同時に数十アクセスってどうなの? マナーというか、某三国人のF5アタックじゃあるまいし、同時アクセスは辞めてくれよ。ほんの数秒ずらすだけで全然負荷軽くなるのに、これじゃアタックと変わらん。
で、結局、どういう対策をしたかというと・・・・・、メモリーを足し、Mysqlの使用メモリの設定を増やしてやっただけ。負けっぽいのが嫌だ!等と言っておきながら、面倒という気持ちが勝ってしまった訳です。
つーことで、一応は前よりは軽くなったのだが、これ以上エスカレートするようであればYahooのCrawlerは全てばっさり切り捨てます。ってことで、対策おしまい。
Site Adminは大変だな・・・俺は結婚してから、PCの電源を「電気代がもったいないわ!」という理由から常時入れっぱなしにさせてもらえなくなったので、辞めましたw
昔やってた会社でドメイン管理とWeb領域貸してあげたのとメールアドレス貸し出したおかげで今更やめられないんだよ・・。