3

Windows Server 2003 R2 の IIS 6 で ASP.Net 3.5 Web サイトを実行しています。これは、常に 10 人未満のユーザーにサービスを提供する、比較的小規模な内部アプリケーションです。サーバーには 4 ギガのメモリがあり、サイトがアクティブな間は 3 ギガ以上が利用可能であることを示しています。

Web アプリケーションを再起動してからわずか数分後、パフォーマンス モニターは、なんと 4,294,967,293 セッションがアクティブであることを示しています。この数字が間違っていることは確かです。この記事を読んだ時点で、Web サイトへのリクエストは 100 件しかありませんでした。

他の誰かが perf mon からこの種の奇妙な動作を経験したことがありますか? 正確な読み取りを取得する方法についてのアイデアはありますか?

更新: 約 1 時間実行した後、アクティブなセッションの数が 4 減少しました。そのため、セッションのタイムアウトに応答しているようです。

4

6 に答える 6

9

オーバーフローかもしれませんが、私のお金はアンダーフローしています。プログラムは 0 人で開始し、誰かがログオフした後、セッション数がマイナスになったと思います。

于 2008-12-19T18:09:51.183 に答える
9

2^32 = 4,294,967,296 なので、何らかのオーバーフローが発生しているように聞こえます。正確な理由は言えません。

于 2008-12-19T16:29:53.583 に答える
1

既存の統計を使用する必要がある場合は、ログ ファイルを Excel で開き、数式を使用してより正確な値を取得しました。その正確性は保証できませんが、結果は問題ないように見えました。

B2 が (aspnet_wp)\Sessions Active value で、数式が C2 にある場合

/* This one is quicker as it doesn't have to do the extra calculations */
=IF(B2>1073741824,4294967296-B2,B2)

または

/* This one is clearer what is going on */
=IF(B2>power(2,30),(4*power(2,30))-B2,B2)

PS (私はあなたの痛みを感じます - 1 秒前には 0 だったのに、42 億のセッションが開いている理由を説明しなければなりません!)

于 2010-03-25T10:11:14.913 に答える
1

また、現在 4,294,967,268 という高い数値を示しています。

セッションを放棄するたびに、放棄されたセッションの数が 1 ずつ増え、アクティブなセッションの数が 1 減少します。現在、放棄されたセッションの数 = 16 なので、この数はおそらく 4,294,967,84 から始まっています。

これに対する修正はありますか?

于 2009-05-29T17:16:21.727 に答える
1

私のカウンターは正常に機能していましたが、ある朝、本番サーバーにリモートでログインしたところ、カウンターはこの膨大な数でした (これは、アンダーフローを示す 2^32 に非常に近いと誰かが言及したように)。しかし、すべてが機能していた前日との唯一の違いは、夜間に Windows に更新プログラムがインストールされていたことです。したがって、何らかの理由で、これらの更新により、このかなり厄介なエラーが発生しました。

カウンターをもう少し観察すると、アプリケーションが再起動されるたびに、トラフィックがない状態でしばらくすると、カウンターがゼロから正しく開始されることがわかりました。ユーザーがログオンを開始すると、正常に増加します。彼らが再びログオフを開始すると、ゼロになるはずの値に達するまで、正常に減少します。その時点でそれはバナナになります...

はぁ...

于 2009-09-01T12:10:52.003 に答える