2011-02-07 16 views
6

現在、ASP.NETアプリケーションをテストしています。私は、アプリケーションの500ユーザー、 を充電中ですが、実行中に、perfmon.exeコンソールで、Webサーバー上の「Sessions Actives」と「Sessions Timed Out」カウンタをチェックしています。ASP.NET "セッションタイムアウト"カウンタ(perfmon.exe)

私のweb.configでは、セッションのタイムアウトは3分(テストの目的で)です。

"Sessions Actives"カウンタは約900のアクティブなセッションにとどまります。500人のアクティブなユーザーと、まだセッションがタイムアウトしていない約400人のユーザーのために正常ですと仮定します。

しかし、「セッションタイムアウト」カウンタを見ると、それは連続的に増加します。負荷テストが終了すると徐々に低下します。

このカウンタは正確に何ですか?私が理解しているように、ガベージコレクタによってまだクリーンアップされておらず、まだメモリを使用している廃止予定セッションです。

我々のアプリケーションは、メモリの巨大な ammountを使用しているので、私は正確にはそのメモリであるところを見つけようとしています。

答えて

1

カウンタは、何が起こっているかを示しているようです。つまり、アクティブなセッションが開始すると、アクティブなカウンタが正しい番号に移動し、ある時点でセッションがタイムアウトするようになります(つまり、ASPによって要約されたセッション.NETインフラストラクチャ)。あなたが何を見たいと思っているのか分かりません。 Improving .NET Application Performance and Scalability本の151617の章を読むことをお勧めします。彼らはこの点でかなり啓発されています。

+0

私が実際に知る必要があるのは、これらのタイムアウトセッションがまだメモリを使用しているかどうかです。リンクをありがとう、私はそれを今日チェックします。 – Johnny5

+0

さて、もう少しテストした後、このタイマーは、アプリケーションプールが再起動されるまで(iisresetのように)落ちません。[br]しかし、まだタイムアウトしたセッションはクリーンアップされていないようです(メモリは解放されません)。私の負荷テストは終了する。 – Johnny5

+0

セッションで実行中のRCWコンテンツはありますか?例えば、レガシーCOMオブジェクトがアクセスされ、セッションに格納されていますか?私はそれらが負荷を高く維持するのを見ました。また、記憶を食べている特定のことを理解するために、他のカウンターを見たいかもしれないと感じています。私は、私がそれが開催されている場所への私の指摘を与えるために上記の章を使用しました。具体的には、GCカウンタは大きな助けになります(gen0、gen1、gen2)。 – gbvb