2017-01-13 16 views
1

2日後、4.5に変換された既存のasp.net 2.0アプリケーションの新しいビルドをリリースしました。今私たちは突然、このasp.netアプリケーションのためのアプリケーションプールは、私が推測すると30ギガバイト以上のプロダクションサーバで大量のメモリを消費しているのを見ている。コードの賢明さは、このアプリが以前に何もしていなかったか、何も重いものを消費するこの新しいリリースで追加されている、何もファイルのアップロード/ダウンロード、何も重いキャッシングはありません。特定のIISアプリケーションプールのプロダクションサーバーでのメモリ使用量が多い

私はこれを引き起こす可能性のあるコードで何かを見つけることができないので、私はいくつかのプロファイラが必要です。

このアプリケーションプールのサーバーに保存されているすべてのセッションデータや詳細については、この特定のアプリプールはこれほど多くの記憶を取っています。 他の指示/提案がある場合は、ツール以外にも役立ちます。おかげで...

enter image description here

+0

http://stackoverflow.com/questions/9666356/high-memory -usage-with-w3wp-application-pool-iis-7 – spender

答えて

3

問題のこれらの種類は、多くの場合、無料でマイクロソフトからWinDbgデバッガーツールを使用して追跡することができます。

まず、現在のw3wpプロセスのダンプファイルを作成する必要があります。

https://msdn.microsoft.com/en-us/library/d5zhxt22.aspx

その後、あなたはWinDbgのにそのプロセスの現在の状態を読み込むことができるようになります。 https://developer.microsoft.com/en-us/windows/hardware/windows-driver-kit

https://blogs.msdn.microsoft.com/jankrivanek/2012/11/15/setting-up-managed-code-debugging-with-sos-and-sosex/

https://theartofdev.com/windbg-cheat-sheet/

http://windbg.info/

WinDbgのは、低レベルのツールですので、あなたが学び、それに慣れるいくつかの時間を費やす必要があることに注意してください。使い方の

例:

  1. タスクマネージャを介してプロセス・ダンプ(* .DMP)を作成します。 C:\ Users \ {username} \ AppData \ Local \ Tempフォルダにあります。

    .symfix

    .reload

  2. オープンWinDbgの(x64)の - - >開くクラッシュダンプ>セットアップシンボルに必要* .DMP
  3. その後
  4. を作成]を選択します

  5. 次に、.netランタイムをロードする必要があります。

    .loadby sos clr

  6. あなたが拡張コマンドで追加モジュールをロードする場合(http://www.stevestechspot.com/

    .LOAD PathToFile \

    sosex.dll!sosex.help

  7. これですべてが整いました。メモリヒープの解析を開始できますが、スレッド、ロックなど....
あなたはまた、テスFerrandezでブログで非常に役立つ情報、ヒントやトリックを見つけることができる

https://blogs.msdn.microsoft.com/tess/tag/debugging/

+0

あなたの初期の指示に感謝darjan。私はちょうどそれを明確にしたい。我々は私のコントロールの外にいくつかの理由のためにサーバーにインストールされているデバッグツールを持つことはできませんので、私はタスクマネージャから私にメモリダンプを与えてもらうことができますプールに格納されているメモリを増やしてから、私のローカルのdevシステムでwindbgを使用して、このダンプの中で最もメモリを消費しているものを分析します。これは私がwindbgからダンプファイルを開く必要があることを知っている、あなたはさらに私は開かれたダンプの意味をするために何をする必要があります上の任意のリンクをガイドしてください、私もpdbsが必要ですか? – LearningNeverEnds

+0

ダンプを読み込んでシンボルをロードする方法を知っているにもかかわらず、pdbsとexe/dllを指し示しています。あなたのアプリは、あなたのサーバーのコピーがpdbsでデプロイされていないときに、何か似たようなことをする方法をまだ使っていないので、この部分だけの入力を求めています。探す。ありがとう。 – LearningNeverEnds

+0

@LearningNeverEnds WinDbg経由でプロセスダンプを使用および解析するために.pdbファイルは必要ありません。更新された回答を確認します。 –

関連する問題