質問です。
クライアントのサイトをホスティングしているサーバーで、
HPにアクセスしづらくなる事態が発生し、
セッションをつかんだ状態で待ち行列が発生している、というのがホスティング先の見解でした。
サーバ上でメモリやCPUはほぼ正常状態になっているが、処理待ちになっているとのことです。
IE6でアクセスを試してみたところ、1アクセスで170セッション同時に発生するとのことでなのですが、どの部分を調査したら良いでしょうか。
この症状が発生しているページにはjqueryやjavascriptでスライドショーを入れており、何度も同じ画像を取得しようとしている?IE6のバグ?との見解もあるようなのですが、ソース上特に問題がありそうな個所が見当たらない状況です。
今のところ、IE6のみスライドショーをやめることで対応しようかと思っているのですが…。
わかる方がいらっしゃいましたらお願い致します。
みんなの回答 7 件
アクセスログを見ればどのファイルがどのようにアクセスしたか詳細に記録されているハズだから原因を掴むのは簡単だと思う。
ただトピ文でいう「セッション」が単にアクセスを指している事なのかApacheプロセス数が不足してて待ちになっているのかちょっとよく分からない。
Apacheがらみの事まで一人で処理するのは大変だと思うから、システム管理者とかそういう人の出番だと思う。
Apache2 - worker MPM のプロセス&スレッド数のチューニング :: drk7jp
http://www.drk7.jp/MT/archives/001594.html>ソース上特に問題がありそうな個所が見当たらない
IEのバグがなんだろうが、ソースに起因している可能性が高いわけで、そう言い切られてしまうと、ソースを見ていない我々には判断のしようがない。
同じファイルを自身のサーバーなりローカルサーバーなりに入れてIE6で試してみることはできないのですか?
それで問題がないのなら向こうのサーバーの問題ということになるし、問題がでるのならソースに問題がある可能性が高いですね。
なんもかんも想像するしかないけど、
スライドショーのサムネイルを先読みとかしてて、サムネイル表示するのになんかしらCGIなりの処理を経由してるとか?
その処理がセッション離さないってならサーバーサイドで処理を見直すべき。
なんにしてもアクセスが発生してるんなら何を読んでるのかサーバーのログ見て意図したアクセスなのか最低限の切り分けを確認するべき。
あと、IE6以外で動きが違うのかも。
話からすると1アクセスで160のHTTPコネクションを張るって意味?
一度にHTTPコネクションを取りに行く数を明らかに超えてるから
JavaScriptがループでもしてるじゃね、っていうかまずその怪しいスライドショーを削除して試してみなよ
そんでダメならHTTPの通信をキャプチャするソフトなりプラグインなりで、見張ってみる
これで問題がなければApache側の問題だわな
サーバリソースが正常なのは設定で上限が決まってるから当たり前といえば当たり前
似たような問題に遭遇したことあります。
IE6は背景画像で表示する画像はキャッシュを行わず、たとえばhoverでbackground-positionを変更するだけで、画像を新たに取得しようとリクエストを送ってしまう仕様になっています。
もし背景画像で表示している要素をjQueryとかでフェードインアウトとかさせると、無数のリクエストが発生します。
そのときの解決方法は、背景画像のキャッシュを有効にする方法もあるのですが(リンク先参照)、なぜか上手く行かず、画像の表示に背景画像をやめてimgタグにして対応しました。
hover時の背景画像ちらつきに対処する - Archiva
http://archiva.jp/web/html-css/ie6_background_flickr.htmlトピ主です。
たくさんご回答いただきありがとうございます。知識不足なもので、みなさんの回答がすぐに理解できない状況であり質問しておきながら申し訳ありません。一つずつ確認してみます。
関連するトピックス