C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[7]: 特定のクライアントPCだけがIISからの応答が遅くなる


(過去ログ 108 を表示中)

[トピック内 16 記事 (1 - 16 表示)]  << 0 >>

■64467 / inTopicNo.1)  特定のクライアントPCだけがIISからの応答が遅くなる
  
□投稿者/ sim (1回)-(2012/12/04(Tue) 18:02:31)

分類:[ASP.NET (C#)] 

IIS起動時に、まれに特定のクライアントだけがIISからの応答が遅れることがあります。
問題の起こりそうな箇所や、切り分け方等、お知恵を拝借願えないでしょうか。

■サーバ環境
OS:Windows Server 2008 R2 (2台)
ロードバランサ:Windows ネットワーク負荷分散マネージャ6.1
IIS バージョン:7.5
.Net Framework バージョン : 4.0

■クライアント環境
OS : Windows XP, 7
ブラウザ : IE8, 9


次のような問題が起きています。
---------
@ASPページから、UpdatePanelとTimerクラスを使い、定期的にサーバPCに対してhttp通信を行っています。
 (15秒に一回通信する。)

Aロードバランサ(NLB)が、クラスタ上の2台のサーバPCに対して、有効/無効を切り替えます。
有効になったサーバPCはIISが起動し、無効になった方は停止します。

BASPページは、TimerによってサーバPCに通信します。
 (この時、ASPページはサーバPCが切り替わったことには関知せずに、切り替わり先のサーバPCに接続に行きます。)

[現象]
⇒Bの段階で、通常はサーバ接続に成功します。
しかし約二十回の切り替えに一回、一台のPCからだけ、10分間ほど、IISからの応答が非常に遅くなります。

Fiddlerで確認したところ、遅延時、サーバはリクエストを正常に受け付けています。
ただ、「200 OK」を返すまでに毎回約1分半ほどかかっていることがわかります。
(ServerGotRequestからServerBeginResponseまでの時間が約1分半ある)

一度遅延が始まると、それから10分間ほど、何度もレスポンスが遅れ続けます。
応答が遅くなるPCは、その時によって違います。
その間、他のPCは、順調に接続できています。

切り替え先のWebサーバ上で、ログを確認すると、レスポンスの遅延時には、問題のあるクライアントだけ、
Page_Load()が開始されるまでに1分半ほど遅れています。
(他のPCは、正常に15秒に一回、Page_Load()が実行されています。)


特定のセッションのリクエストだけが、キューにたまっている状態?かと考えていますが、原因がわかりません。
無効になったサーバPC上ではIISが停止しており接続自体がありえず、ロードバランサは関係ないと思っています。

よろしくお願いいたします。
引用返信 編集キー/
■64469 / inTopicNo.2)  Re[1]: 特定のクライアントPCだけがIISからの応答が遅くなる
□投稿者/ sim (2回)-(2012/12/04(Tue) 19:47:46)
分かっていることを追記します。
問題発生までに半日以上時間がかかるうえ、10分ほどで解消されてしまうため難航しています。
どのようなヒントでも構いません。よろしくお願いいたします。

問題が発生した時に、クライアントPC上でブラウザを開き直して、次のことを試しました。
   .同じASPページにアクセスする
    ⇒接続待ち状態になる。
   .同じアプリケーション上の別のASPページにアクセスする
    ⇒接続待ち状態になる。
    (これは、リクエストを受け取って文字を表示するだけのASPページです)

   .同じアプリケーション上のhtmlページにアクセス
    ⇒表示できました。
   .別のアプリケーション上のASPページにアクセス
    ⇒表示できました。

引用返信 編集キー/
■64470 / inTopicNo.3)  Re[2]: 特定のクライアントPCだけがIISからの応答が遅くなる
□投稿者/ sim (3回)-(2012/12/04(Tue) 22:04:32)
Session処理で問題が起きて、スレッドがロックされているのかと考えました。
Sessionを使用しないようにWeb.configで修正して、しばらく様子を見てみようと思います。

また結果が出たら報告いたします。
(何か気づいたことがあれば、教えてください)
引用返信 編集キー/
■64471 / inTopicNo.4)  Re[3]: 特定のクライアントPCだけがIISからの応答が遅くなる
□投稿者/ オショウ (44回)-(2012/12/04(Tue) 23:14:57)
スイッチハブかな〜
MACアドレスが異なるはずなので、ロードバランスに対応したスイッチハブを使わない
と、遅延は発生したはず。

どこのメーカーの何と言うスイッチハブ使ってますか?

以上。
引用返信 編集キー/
■64499 / inTopicNo.5)  Re[4]: 特定のクライアントPCだけがIISからの応答が遅くなる
□投稿者/ sim (4回)-(2012/12/05(Wed) 14:42:29)
No64471 (オショウ さん) に返信

ご指摘ありがとうございました。

ロードバランスに対応したスイッチハブでないと遅延が発生するということを
恥ずかしながらはじめて知りました・・・

スイッチは logitec LAN-SW08P を使用しています。

よろしくお願いいたします。


引用返信 編集キー/
■64503 / inTopicNo.6)  Re[5]: 特定のクライアントPCだけがIISからの応答が遅くなる
□投稿者/ howling (130回)-(2012/12/05(Wed) 14:56:21)
2012/12/05(Wed) 14:56:56 編集(投稿者)

No64471 (オショウ さん) に返信

横からすみません。
こっち方面の知識は全く無いのですが、興味はあるので聞かせてください。

MACアドレスが異なるだけで10分も遅延が発生するものなのでしょうか?
引用返信 編集キー/
■64504 / inTopicNo.7)  Re[5]: 特定のクライアントPCだけがIISからの応答が遅くなる
□投稿者/ howling (131回)-(2012/12/05(Wed) 14:59:36)
No64499 (sim さん) に返信

この手の知識は全く無いので、あーそんな考えもあるなぁ程度に留めておいてください。
むしろそっち系も手は出してみたいのですが…
こっちに手を出すと休んでる暇も問題発生する仕事ですので、趣味程度に留めるつもりです。

個人的には、こういうのって10分程度かかっているあたり、
処理がタイムアウトになっているか、再起動処理をして起動するまでにそれくらいかかる、
なんていうのがよくNWセクションの方々を見ていてあった記憶があります。
(実際、なんかこういうPCって外から触るので、
 起動してからそのまま自動でアクセス可能な状態に持っていくようにしてあるのが多いかなと)

セッションのタイムアウトまでの時間がどれくらいに設定されているのかと、
止まっている時にPingなんかを撃ってみてはいかがでしょうか。
エラーログ吐いているならそれ見るのが一番なんですが…そこらへんはきっとやっているでしょうし。

最悪、2台アクセス先のPCを用意して、一定時間で再起動処理を入れておき、
再起動の前にアクセス先を変更して交互に使うことで、問題は全く解決していないけれども、
一時的に現象だけはなんとか回避する、なんてことをしていましたね…。
いや、悪い例ですがね。稼働まで時間無い場合とか、稼働中の何かだったりするとですね…大人って汚いなぁ…(笑
引用返信 編集キー/
■64507 / inTopicNo.8)  Re[6]: 特定のクライアントPCだけがIISからの応答が遅くなる
□投稿者/ howling (132回)-(2012/12/05(Wed) 15:07:46)
前のコメントに追記です。

そういえば、前の会社では生存確認を行っていました。
というのは、定期的に何かしらのテキスト(仮にAlive.txt)に、
更新時間をひたすら書き込んでいく、という物です。
確か、何かしらエラーが起きた時にはこれの名称を変える処理を突っ込んでおいたような。

で、アクセス先PCが使えるかどうか、というのは、
if(File.Exists("Alive.txt") == true)
みたいな感じで、テキストが無い=何かあったから触らない、
なんて感じのことをしてました。

初歩的なことなのかもしれませんが、頭いいなぁと感心してました。
起動した時にもこれに起動したことくらいは書いてあげると、
再起動処理したかどうか?というのにも役立つなぁと。
エラーログはこっちの仕事では特に吐いても吐いても足りないですから、
大変ですよね…。


引用返信 編集キー/
■64511 / inTopicNo.9)  Re[7]: 特定のクライアントPCだけがIISからの応答が遅くなる
□投稿者/ sim (5回)-(2012/12/05(Wed) 15:48:05)
No64507 (howling さん) に返信

ありがとうございます。
おっしゃるようにネットワーク周りは問題箇所を見つけるのが非常に難しいですね。
運用方法のご指摘もありがとうございました。
今回、取り入れるのはタイミング的に難しいのですが、よく参考にしたいと思います。

知識が浅いため、初歩的な点でついていけませんでした。
何点か質問させてください。

>個人的には、こういうのって10分程度かかっているあたり、

説明がわかりにくかったら申し訳ないです。
fiddlerで見ると一回の通信遅れは、1分半ほどで、その後に「200 OK」を返しています。
(それが10分間に何回も発生しています)
それとも、fiddlerからはそう見えるだけで、実はネットワーク下部でうまく処理されているということでしょうか。

> セッションのタイムアウトまでの時間がどれくらいに設定されているのかと、
> 止まっている時にPingなんかを撃ってみてはいかがでしょうか。

WebサーバにPingを送るということでしょうか?
Webサーバ上では、セッションのタイムアウト時間を15秒に設定しています。
(その「セッション」ではなければすみません)

また、IISのログはうまく取れていなかったため、
もう一度ログの設定をよく見直そうと思います。
これが一番重要だったのでしょうが、後回しになってしまっていました。
引用返信 編集キー/
■64514 / inTopicNo.10)  Re[8]: 特定のクライアントPCだけがIISからの応答が遅くなる
□投稿者/ sim (6回)-(2012/12/05(Wed) 16:03:13)
> ■No64507 (howling さん) に返信

すみません、読み直していたら、下記はおかしなレスになっていました。

> WebサーバにPingを送るということでしょうか?
> Webサーバ上では、セッションのタイムアウト時間を15秒に設定しています。
>(その「セッション」ではなければすみません)

接続が遅れる現象がおきているときに、
サーバPCに向けて、pingを送るということですよね。


引用返信 編集キー/
■64515 / inTopicNo.11)  Re[8]: 特定のクライアントPCだけがIISからの応答が遅くなる
□投稿者/ howling (133回)-(2012/12/05(Wed) 16:03:35)
No64511 (sim さん) に返信
> 今回、取り入れるのはタイミング的に難しいのですが、よく参考にしたいと思います。

いえいえ、私が書いているのはあんまり参考にならないかもしれませんので(苦笑
ネットワークの人間では無かったのですが、配信のお手伝いとかをちょっとやっていた程度です。
問題が起きた時に、金魚のフンみたいに後ろについて回っていたので、
どういう感じの現象があった…程度のことしかわかりません。

ですので、ほとんど力にはなれないのです。申し訳ありません。

> 説明がわかりにくかったら申し訳ないです。
> fiddlerで見ると一回の通信遅れは、1分半ほどで、その後に「200 OK」を返しています。
> (それが10分間に何回も発生しています)
> それとも、fiddlerからはそう見えるだけで、実はネットワーク下部でうまく処理されているということでしょうか。

うーん、それなら再起動とかの線は無いでしょうね。
で、1分半ってことは…何かしらの重い処理を行っていてそうなっているか、
通信状態の問題だとは思うのですが…ここらへんはわからないですね…。
サーバーが重くなるとこういうことはよくあるようなので、
特定に結構かかってしまうかなと…。

> WebサーバにPingを送るということでしょうか?
はい、そうです。
応答が無い場合は死んでるかなーと思ったわけですが、
1分半ならそれは無さそうです。
代わりに…なんだっけ…ルーティングを見るコマンドがあった気がするのですが、
それでどういう経路を通って通信しているかを見れるとかなり良いかと。
たまーに、地球の反対側まで行って戻って来ようとすることがあったりしたような。
IPアドレスを見てある程度掴める人は掴めるようです。私にはわからないんですが…。

> また、IISのログはうまく取れていなかったため、
> もう一度ログの設定をよく見直そうと思います。
> これが一番重要だったのでしょうが、後回しになってしまっていました。

はい…ネットワークをもしやるとすれば、ログの出し方次第でだいぶ変わってくると思います。
逆に細かく書きすぎていてHDDを圧迫するレベルだったりして、
サーバセンターから80%超過の警告通知なんか来てましたが…そんなもんなのかなぁと。
エラーが起こった時の過去ログなんかも取っておくと、
同じエラーが出た時に原因が掴みやすい、なんていう利点もあります。

とはいえ、今回やっていなかったなら仕方ないですよね。
あまりお役に立てず、申し訳ありません。
引用返信 編集キー/
■64522 / inTopicNo.12)  Re[9]: 特定のクライアントPCだけがIISからの応答が遅くなる
□投稿者/ sim (7回)-(2012/12/05(Wed) 17:57:39)
No64507 (howling さん) に返信
ネットワーク周りは初心者ですので、起きてから調べると言う非効率が続いてしまっていました。
手段を教えてもらえて大変助かります。
便利なルーティングコマンドがあるのですね。
IISのログについても、調べ直したいと思います。

当たり前ですが、問題発生した時に備えて、前もって準備しておくことが大事なんですね…。


引用返信 編集キー/
■64527 / inTopicNo.13)  Re[10]: 特定のクライアントPCだけがIISからの応答が遅くなる
□投稿者/ howling (134回)-(2012/12/05(Wed) 18:49:06)
2012/12/05(Wed) 18:51:45 編集(投稿者)

No64522 (sim さん) に返信

> 便利なルーティングコマンドがあるのですね。
こちらは大したことは無かったです。
routeコマンドと、traceroute(もしくはtracert)くらいでしょうか。
これを、その結果を遅くなった時だけ試させて、ログに出力する…という感じでした。
と、書いてから思い出したのですが、スロークエリログというのを同じように出してましたね。
これは確か、何かの機能で存在する物だった(少なくともMySqlにはあるようですね)と思うのですが、
通信処理に一定時間(確か単位はms)以上かかった場合に、ログを出力してくれるという代物だったかと。
これは既に使用していて、これで計測しているのかもしれませんが…。

> 当たり前ですが、問題発生した時に備えて、前もって準備しておくことが大事なんですね…。

ぶっちゃけネットワーク自体を構成すること自体はそんなに難しくないとよく言われてました。
ただ、例外処理とエラー通知などが非常に多く、1つのコマンドで出る可能性のあるエラーというのは多岐に渡ると。
それをほとんど全て潰さないと、やっぱり仕事としては成り立たないというか、
夜寝てて、データセンターから電話で起こされて駆けつける、なんてことも業界によってはありますから、
やっておかないと自分も損をするんですよね。

手を出したからには、かなり大変だと思います。
コマンド1つ呼んで、必ず存在しているという確証すら無い世界ですから…。
多少エラーが出ても問題無い仕事だったらまだ良いのですが、
このネットワークというやつは、エラーが多い上に、エラーが出ると大変な問題になりかねないので。
大変でしょうけど、頑張ってください…。

//どうでもいいですが、その人らがいつもネットワークスペシャリスト試験というのを受けては落ちてました。
//情報処理技術者試験の中でも、難関と言われる部分なのですが、こういう系統に手の伸ばしてみると、
//知識として色々と身に付くのではないかと思います。
//もっとも、私が持っているのは基本情報技術なので、一番楽な…orz
//いつか応用も受けてみたいですが。
引用返信 編集キー/
■64537 / inTopicNo.14)  Re[5]: 特定のクライアントPCだけがIISからの応答が遅くなる
□投稿者/ 甕星 (2回)-(2012/12/05(Wed) 23:46:49)
No64499 (sim さん) に返信
> ロードバランスに対応したスイッチハブでないと遅延が発生するということを
> 恥ずかしながらはじめて知りました・・・
>
> スイッチは logitec LAN-SW08P を使用しています。

↑はL2スイッチングハブですよね。
NLB自体は使ったことが無く、Microsoftのホームページを斜め読みしただけですが、L2スイッチングハブを使う場合には、NLBをマルチキャストモードに設定する必要があるようです。ただし、L2スイッチングハブを使ったネットワークでマルチキャストモードを使うとネットワーク帯域を使いつぶす可能性が高いので、実質的にはL3のインテリジェントハブなりルーターが無いとNLBは使い物にならないみたいですね。

NLBはTCPレイヤーで負荷分散をするようなので、IISに動作やHTTPレベルでの動作に眼をとらわれると、現象の本質が見えない可能性があります。パケットキャプチャー等を使ってTCPレベルでの動作をモニターしてみてください。
引用返信 編集キー/
■64550 / inTopicNo.15)  Re[6]: 特定のクライアントPCだけがIISからの応答が遅くなる
□投稿者/ sim (8回)-(2012/12/06(Thu) 16:38:26)
解決済みにチェックします。
解決済み
引用返信 編集キー/
■64551 / inTopicNo.16)  Re[7]: 特定のクライアントPCだけがIISからの応答が遅くなる
□投稿者/ sim (9回)-(2012/12/06(Thu) 16:44:33)
申し訳ありません、スイッチはCisco Catalyst 4948E-Fでした。
logitec LAN-SW08Pは、間を仲介しているだけでした。

No64527 (howling さん) に返信
ありがとうございます。
調べながら対応していきたいと思います。

問題がWebアプリにあるのか判断できなかったため、解決が遅れてしまいました。
Webを扱う以上、プロジェクトや、自分のためにも切り分ける手段を磨いておくことは必要なようですね;

No64537 (甕星 さん) に返信
ありがとうございます。
HTTPレベルで調べてもわからないものなんですね…。

上記の通り、スイッチはCisco Catalyst 4948E-Fでした。
また、NLBはユニキャストでした。
Cisco Catalyst 4948E-Fは、L3ですから問題ないかもしれません。
パケットキャプチャで地道に調べたいと思います。


皆さん、情報いただきありがとうございました。
.NET ASPから問題の焦点が離れてしまったことと、進捗に時間がかかりそうなため、
いったん解決済みとさせていただきたいと思います。
(進展ありましたら、またレスしたいと思います。)
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -