Tuesday, December 07, 2004

サーバ負荷とジャンプスキャンとか

さくらインターネット 共用サーバースレPart14

ウリは生粋のラノベの管理人ですけど見てるニダ。
FAQのwikiにも、自演(自暴自棄)気味に、ちょこっ
とずつ書いてます。

私に考えがいたることを下に書きます。間違いも多々
含まれているはずですので、適宜、読まれる方の
脳内で修正されながら読んでもらえると有り難いです。

ジャンプスキャンの場合だと、一気に負荷が集中して、
即503状態になります。その時点で転送量負荷は頭打
ちになります。あとはhttpd負荷がかかります。

そのhttpd負荷について考えます。
503状態を誘発するのは、同時にアクセスする人数の
多さが主で、ダウンロードツールが副という感じです。
主である多くのアクセスは、ブラウザか2chブラウザ
経由のURLクリックによるものです。httpdが503を
返すようになると、多くの方はアクセスを断念します。
その時点かそれ以前に、ファイルを消せれば最善
なんですけど。

503になったあとは、何人かが仕込んだダウンロー
ドツールのキューだけが、ダウンしようとしてきます。
これは、ダウンロードツールの設定をしっかりと行っ
ている、熟練のダウンローダーなら、ある一定以上
のエラーを感知した場合、ダウンキューを停止する
ように設定しています。

ですので、残りのダウンロードツールの設定をできて
いないダウンローダーだけが問題になります。これは、
月に数人です。エラーログが膨大(たぶん、数百MB
単位のテキストデータがクライアント側で生成されて
います)になるのか、しばらくすると、問題となる
ダウンローダーもツールの設定練度をあげてきます。

そもそも、ある一定以上のスキルがある人は、ジャンプ
スキャンをnyなりshareなりで直に手に入れるわけです。

また、ジャンプスキャンのファイルサイズは数MBです。
サクラインターネットのサーバのRAIDカードやサーバ機
本体のメモリキャッシュ次第で、HDDにかかる物理的な
負担は少ないはずです。CPUやLAN部分の発熱は
あがるかもしれません。

現在、アクセスが集中すると、特定のユーザー、ここでは
ラノベの圧縮ファイルに対する要求を503エラーにして返
すようにしてあるのであれば、共有サーバの他の方は、
普通通りに使えると思います。ラノベがアップロードを許容
するファイルサイズを極端に大きくしない限りは。

ファイルサイズを大きくすると、結果として、ダウンロード
ツールを使用する人間が増えますので、今度は、同時接
続数の問題で、ルーティング部分もボトルネックになって
くるはずです。

普通に市販されているブロドバンドルーターを使っている
ダウンローダーなら、同時接続数はせいぜい2048から
4096ぐらいです。しかも、HDDにファイルを保存するため
ダウンロード速度にも大きな限界があります。

しかし、狂ったダウンローダーになると、PCルーターを
使用して、光回線をフルに使ってランダムにproxyを通し
たりしながら、数万セッションを同時に張り倒したあげく、
自前のダウン一時ファイル保管場所にRAMディスクを
使うとかになってくるわけです。呼吸するようにサーバ耐
久試験しているのかテメーという世界です。

ファイルサイズを大きくすると、そういうダウンローダーを
呼び込むことにつながります。そういうことが分かって
いますので、ラノベで、アップロードできるファイルサイズ
を、これ以上大きくするつもりはありません。

他に、アクセスが極端に多いサイトであれば、アクセス
logを管理しているサーバに問題が出てくるはずです。

いまは、logを取っているサーバマシンが切り分けられ
ているようです。アクセスの多いサイトの管理者が、一
日に複数回に分割してlogを取っているようにしていれば
防げる負荷でもあります。逆に、分割していないと、
logに取りこぼしが出てくると思います。もしくはlog取り
サーバの停止や反応の鈍化など。

私に考えつくのはこれぐらいです。自宅サーバレベルで
の知識しかありませんので、業務用サーバの運用を
されたことがある方や、その道(どの道だよ!)に詳しい
方のつっこみや、間違いの指摘をもらえると幸いです。
かすこ