【2ちゃんねるビューア】 巡回機能の巻。Part3

このエントリーをはてなブックマークに追加
914名無しさん@お腹いっぱい。
◆hAnYaNVA さんじゃないけど、インターバルの件でどうしても納得いかない。

「インターバルを設ける理由」から
「巡回を不便にして巡回自体(回数/スレ数)を減らす」目的を除き
純粋に「複数のリクエストを送る必要がある」場合。

Keep-Aliveしたまま接続断を待つ/サーバーを待たせるのは論外とし、
同じサーバーに対してのconnectionは
一つに限定する(タブブラウザなどは複数?)場合、

本当に、
 connect-request-response-close
 -interval-
 connect-request-response-close
 -interval-
 connect-request-response-close
 -interval-
が、
 connect-
  request-response-request-response-request-response
 -close
よりサーバーに優しいか、結論は出ているのかな?

詳しい条件等は全然知らないので、2chには当てはまらないかもしれないけど
Apache自体はKeep-Aliveの実装によって50%近く負荷が下がったらしい。
game鯖等が軽くなったのは、インターバルを設けた効果ではなく、
単にread.cgiのrawモードを不可にした効果に思えるのだけれど。
915名無しさん@お腹いっぱい。:02/03/27 02:47 ID:???
リクエストの集中が問題というかもしれないが、
仮にKeep-Aliveにしも、サーバーが処理するリクエストは、
各接続に対して同時に1つだけなのだから
接続要求の度にacceptすることを考えれば
Keep-Aliveしたままの方がトータルの負荷は少ないと思う。
そもそも、同時接続数が256では足りないような状態のサーバーに対して
単独のクライアントからのリクエストが連続しない程度で
負荷分散になるとはとても思えない。

それでも、Keep-Aliveにしたら次のリクエストを待つ間の
idleなconnectionが負荷を高める原因だと言うのならば、
リクエストをパイプラインして送ればいい。
 connect-
  request+request+request - response+response+response
 -close
これならidleなconnectionも発生しないし、無駄なconnect/closeもない。
HEAD等の軽いリクエストを数十件まとめて送り
レスポンスにかかる時間を比較しすれば
サーバーが短時間で処理を完了して解放されるのがわかる。

どこか間違ってる?あるいは何か見落としてる?