windows server/IIS上で動くWebサイトで
単位時間あたりの同時接続数を取得する場合に
適切なパフォーマンスカウンタは
Web Service\Current Connections と
Active Server Pages\Sessions Current の
どちらになるでしょうか。
上記の違いについて説明頂いた上で、ご回答いただきたいです。
※IIS5.0でaspを動かしています。
※負荷テストを行う際の同時接続数の参考値として取得しようと思っています。
他に適切なパフォーマンスカウンタがあれば、ご教授いただきたいです。
>Web Service\Current Connections
リクエストを出してから、レスポンスが返るまでの間、socket がつながっている数です。
HTTP だけじゃなくて、FTP もカウントされます。
ブラウザは、規格通りであれば、同時に2接続するので、つないでいる人の数、と同じになるわけでは無いです。
>Active Server Pages\Sessions Current
セッションが確立されているカウント。
実際に通信していなくても、ログインするようなサービスで、ログアウトして無いものがカウントされる、と考えて良いです。
使っている人に近い数字になりますが、ほったらかしで食事をしててもカウントされるので、
アクティブなユーザの数、という感じではなくなります。
単位時間あたりの同時接続数を取得する場合に
が、何をイメージしているかによりますが、NIC の負荷や、同時接続数の上限の正しさを確認するためであれば、
Current Connections を監視することになります。
監視対象のアプリケーションによりますが、セッション単位に確保しているメモリとかディスクサイズがあるなら、
そのリソースを監視する、という意味では Sessions Current を監視することになります。
http://msdn.microsoft.com/ja-jp/library/cc338040.aspx
一応、MSDN のリンクを貼っときますが、仕組みが分からんと、これじゃ何をカウントしてるか分かりませんね。
>Web Service\Current Connections
リクエストを出してから、レスポンスが返るまでの間、socket がつながっている数です。
HTTP だけじゃなくて、FTP もカウントされます。
ブラウザは、規格通りであれば、同時に2接続するので、つないでいる人の数、と同じになるわけでは無いです。
>Active Server Pages\Sessions Current
セッションが確立されているカウント。
実際に通信していなくても、ログインするようなサービスで、ログアウトして無いものがカウントされる、と考えて良いです。
使っている人に近い数字になりますが、ほったらかしで食事をしててもカウントされるので、
アクティブなユーザの数、という感じではなくなります。
単位時間あたりの同時接続数を取得する場合に
が、何をイメージしているかによりますが、NIC の負荷や、同時接続数の上限の正しさを確認するためであれば、
Current Connections を監視することになります。
監視対象のアプリケーションによりますが、セッション単位に確保しているメモリとかディスクサイズがあるなら、
そのリソースを監視する、という意味では Sessions Current を監視することになります。
http://msdn.microsoft.com/ja-jp/library/cc338040.aspx
一応、MSDN のリンクを貼っときますが、仕組みが分からんと、これじゃ何をカウントしてるか分かりませんね。
今回の目的ではSessions Currentを取得することにしました。
ご回答ありがとうございました。
状況確認だとすると、まずは下記の値を定期的にチェックといったところです
http://msdn.microsoft.com/ja-jp/library/aa287688%28v=vs.71%29.aspx
Current Anonymous Users 認証を行わないストレス テストの実行中の、サービスへの現在の接続数を表します。 Current Non-Anonymous Users HTTP サーバーに現在接続している認証済みユーザーの数を表します。
今回の目的ではSessions Currentを取得することにしました。
ご回答ありがとうございました。
両者の違いは、たとえば以下が参考になると思います。
要は、カウント対象となっているネットワーク的な層が異なり、セッションの方がより上位に位置します。
ただし、別の方も書いているとおり 単位時間あたりの同時接続数 として何を想定しているかによって、みるべき数値も異なってきます。
そもそも、アプリケーションレベルで「何接続」かという意味では、アプリケーション独自に計測するしかないですので、独自計測も含め、どういう目的で何を計測したいかによって、取得すべき値は異なってきます。
チューニングの観点では、両方とも監視すべきだと思います。
ざっくり何ユーザ接続できるかといった数字を知りたいのであれば、アプリケーションのつくりやネットワーク構成(フロントにロードバランサが入ってるかなど)にもよりますが、通常はセッション数の方が近いでしょう。厳密には、「ユーザの接続」という概念を明確に定義するなり、1ユーザあたり平均何セッション使用するかといった数値を別に確認しておいた上で、アプリ独自にカウントする必要があります。
今回の目的ではSessions Currentを取得することにしました。
ご回答ありがとうございました。
Web Service\Current Connections‥‥同時に使われているsocketの数です。アプリによっては複数のsocketを消費します。
Active Server Pages\Sessions Current‥‥セッションが確立している数です。実際に接続しているアプリの数とほぼ同じと考えていいでしょう。
アクセスしてくるアプリのsocket消費量が分かっていれば、Active Server Pages\Sessions Currentだけ監視していれば十分です。
分かっていなければ(アプリが不特定なら)、両方を監視すべきです。
今回の目的ではSessions Currentを取得することにしました。
ご回答ありがとうございました。
今回の目的ではSessions Currentを取得することにしました。
ご回答ありがとうございました。
2011/10/23 02:20:52