[Tep-j-general] 集中爆撃に一定確率で503を返す

Back to archive index

hamada bungu****@leo*****
2008年 2月 12日 (火) 11:05:21 JST


こんにちわ。

On Sat, 09 Feb 2008 17:38:06 +0900
hawar****@yahoo***** wrote:

> これだと、すべてのアクセスについていちいちSELECT文を
> DBに投げることになって、そのこと自体がサーバーに過負荷になってしまうという
> 自己矛盾をはらんでしまいます。

当方の目的>
セッションを繋げず、次々と新しいセッションを張ってセッションを食い潰すク
ライアント(=SpiderKillerの対象とされているクローラーの蓋然性が高い)に
対し、その速度を緩めるよう警告したい

# セッションが繋がっているなら高負荷でも我慢する


対策手段>
IP毎のセッション数を数え、一定数を超えたIPに対して一定確率で503を返す
(セッションはPHP、つまりアプリケーションレベルで作成されているので、そ
れ以下のレベルで検知する事はちと難しい)


問題点>
セッション計数にDBを使用しているため、負荷軽減のための作業にDB負荷が掛か
ることになる


当方の考え>
観測してみたところwhos_onlineテーブルは大した行数にならないので、これに
投げるクエリは各種キャッシュに入って大した負荷にはならないだろう。主要部
分に入ってproducts系のSQLを投げられるよりはマシ


> DBにたよるよりは、下記のような一時ファイルを使った方法
> のほうがおすすめです。

このアイディアは無かったですね。情報に感謝ですm(__)m


はまだ




Tep-j-general メーリングリストの案内
Back to archive index