[リストへもどる]

一括表示

▼ サーバー障害? - 久志本克己 2008/02/04 19:11 No.1168
  ┗Re: サーバー障害? - としき@家主 2008/02/04 23:02 No.1169
   ┗Re^2: サーバー障害? - 久志本克己 2008/02/05 19:41 No.1170
    ┗Re^3: サーバー障害? - としき@家主 2008/02/05 22:17 No.1171
タイトルサーバー障害?
記事No1168
投稿日: 2008/02/04(Mon) 19:11
投稿者久志本克己
今見ようとしたら、
以下のメッセージが返ってきました。
これは書き込めるのか?
-------------------------------------------
Error 503
サーバービシー - サーバの負荷のためリクエストに応答できません。後でアクセスし直してください。

タイトルRe: サーバー障害?
記事No1169
投稿日: 2008/02/04(Mon) 23:02
投稿者としき@家主
参照先http://www.hinocatv.ne.jp/~toshiki/
レス元1168
> 今見ようとしたら、
> 以下のメッセージが返ってきました。
> これは書き込めるのか?
> -------------------------------------------
> Error 503
> サーバービシー - サーバの負荷のためリクエストに応答できません。後でアクセスし直してください。

うわぁ、ちょっと副作用が強すぎたかなぁ。

目的としたのは、#1166にもちょっと書きましたが、サーバの負荷の低減。
具体的に何を行おうとしたのかというと、1つのCGIファイルに対する応答が
完了する前に、同じCGIファイルに対して次のアクセスがあった場合、後から
のアクセスに対して、このメッセージを返して終りにしようとしたのです。つま
り、例えば最初のリクエストに対して100KBの応答を返さなければならない
時に、次のリクエストが120KBの応答を要求した場合、今までであれば律義
に120KBを返していたのですが、この対処を入れると、2つ目以降のリクエ
ストに対しては、たかだか200バイト弱を返してオシマイになる、という寸法。
ポイントは「同じCGIファイルに対して」というところで、つまりwforum.cgi
のアクセス中であってもwf_regi.cgiには影響はありません、ということです。

で、このような苦情がきたという事は、そのアクセスの時にたまたま別の誰かが
この掲示板にアクセスしていたのでしょう、というのが想定される答なんですが、
念のため、アクセスログをチェックしてみました。するとびっくり。
えぇとですねぇ、同時には他の誰もアクセスしていないのです。
久志本さんだけがアクセスしている形。
でも、久志本さんから同時に複数のリクエストを受けているような形でログの記
録が残っていました。具体的にはこんな形。

[04/Feb/2008:19:09:36 +0900] "GET /bbs/wforum.cgi HTTP/1.1" 200
[04/Feb/2008:19:09:36 +0900] "GET /bbs/wforum.cgi?no=1167&reno=1160&oya=1160&mode=msgview&page=0 HTTP/1.1" 503
[04/Feb/2008:19:09:36 +0900] "GET /bbs/wforum.cgi?no=1167&reno=1160&oya=1160&mode=msgview&page=0 HTTP/1.1" 503
[04/Feb/2008:19:09:43 +0900] "GET /bbs/wforum.cgi?no=1167&reno=1160&oya=1160&mode=msgview&page=0 HTTP/1.1" 503
[04/Feb/2008:19:09:43 +0900] "GET /bbs/wforum.cgi?no=1163&reno=1160&oya=1160&mode=msgview&page=0 HTTP/1.1" 503
[04/Feb/2008:19:09:43 +0900] "GET /bbs/wforum.css HTTP/1.1" 200
[04/Feb/2008:19:09:43 +0900] "GET /bbs/title.gif HTTP/1.1" 200

つまり、サーバ側としては、最初のツリー画面のデータの転送を終わっていない
うちに次のリクエスト(個別の記事の表示の要求)を受けたので503を返した、
という動作なわけです。
これはまぁ、ある程度は家主の想定の範囲内ではありました。
でも、ちょっと、う〜ん。
とりあえず、近日中には、2番目のリクエストまではきちんと応答して、3番目
のリクエストから503を返すように設定を変更しようと思います。ただ、もう
少しデータを取りたいということもあるので、あと何日かは現在の設定のままに
しておきます。遅くとも今月中には設定変更を行います、ということでなにとぞ
ご容赦ください。
 

タイトルRe^2: サーバー障害?
記事No1170
投稿日: 2008/02/05(Tue) 19:41
投稿者久志本克己
レス元1169
ひょっとして、
ページが全部表示される前にボタンを押して、次のリクエストを
送るとひっかかるのでは?
要するにせっかちはいけない、ということかと。

タイトルRe^3: サーバー障害?
記事No1171
投稿日: 2008/02/05(Tue) 22:17
投稿者としき@家主
参照先http://www.hinocatv.ne.jp/~toshiki/
レス元1170
> ひょっとして、
> ページが全部表示される前にボタンを押して、次のリクエストを
> 送るとひっかかるのでは?

その場合、ひっかかる可能性は高いです。
速いサーバマシンならすぐにデータを送信し終わるのですが、うちのマシンは遅
いですからねぇ。もちろん、クライアント側のマシンが極端に遅いとか、ダイヤ
ルアップ回線で28800bpsです、なんて場合には、サーバの方はデータの送信を終
わっていてもクライアント側では全部表示されていない、ということは起こりえ
ますけどね。

> 要するにせっかちはいけない、ということかと。

せっかちすぎるのはいけないと思いますが。
今回の場合、そんなに極端にせっかちでなくても悪影響を与えてしまっている、
というところが私にとっての誤算でした。
本来は、スパマー対応だったのですよ。
スパマーって、書き込みの準備のために、事前に大量の読み込みを行います。
この時にサーバが落ちてしまうのではないかと考え、少しでも負荷を軽減しよう
と思って、このような設定にしました。アクセスログを見ると、これについては
一定の効果が出ているようです。
もう一つ、スパマーが一度に大量に書き込んできた場合にも、wf_regi.cgiに対す
る同時アクセスであればこの機能でブロックできるかなと考えていたのですが、
こちらに関してはあまり効果が出ていません。なぜなら、スパムと判定すると、
応答時に返すデータ量は1KBにも満たないもので、すぐに送信し終わってしま
うせいか、同時アクセスという判定にならないようなのです。

ということで、ちょっと判定を甘くしますので、少々お待ちください。