9

2.53 Ghz(2 CPU)の単一の運用サーバー(仮想)で7つのWebサイトをホストし、WIN SERVER 2008 R2Enterprise64ビットで8GBのRAMをホストしています。

WebサーバーはIIS7であり、すべてのWebサイトに.NETFramework4.0アプリケーションプールがあります。

私の現在のメモリ使用量は8GBのうち約4.16GBであり、w3wp.exeが最も多くのメモリ使用量(現時点では約1.6 GB)を消費するプロセスであり、次にsqlservr.exe(1.5 GB)を使用します。

私がやりたいのは、7つのうちどのWebサイトが最も多くのメモリを消費しているかを知り、確認できるようにすることです。

Process Explorerとリソースモニターを試しましたが、w3wp.exeによって取得されたレムの量しか表示できず、個々のWebサイトの使用状況は表示されませんでした。

メモリホガーをピンポイントで特定する方法はありますか?

4

3 に答える 3

20

Microsoft のDebug Diagツールを使用してメモリ ダンプを実行できます。

基本的なプロセスは次のとおりです。

  • DebugDiag を起動
  • キャンセル ウィザード
  • 「プロセス」タブをクリック
  • w3wpを選択
  • 右クリックして「フルダンプの作成」を選択します
  • 「ダンプ」と言ったので、自分自身に静かに笑います
  • ダンプが完了したら (もう一度笑ってください)、[高度な分析] タブをクリックします。
  • 2 つの Memory Pressure Analyzer スクリプトを使用して、多くのメモリを使用しているオブジェクトを確認できるかどうかを確認します。

Uri May の回答と組み合わせてこれを行うことをお勧めします。そうしないと、多くの時間を無駄にする可能性があります。

于 2012-10-01T08:38:41.703 に答える
2

異なるアプリ プールを使用するように各 Web サイトを構成できます。これにより、ホストする 7 つの Web サイトのすべての Web サイトに対してw3wp.exeプロセスを使用できます。その後、このリンクの次のツールを使用して、メモリ消費量が最大のw3wp.exeの PID をトレースすることで、リークの原因となっている Web サイトを特定できます。

于 2012-10-01T08:38:19.320 に答える