質問

実稼働環境では、aspx、asmx、カスタムのいずれのAsp.Net httpリクエストがw3wp.exeプロセス内で最もメモリ不足を引き起こしているのかをどのようにして見つけることができますか? ここでメモリリークが発生するわけではありません。すべてのオブジェクトを適切に処理する、健全で優れたアプリケーションです。 Microsoftの世代別GCはうまく機能します。 ただし、一部のリクエストでは、w3wpプロセスのメモリフットプリントが大幅に増加しますが、リクエストの期間のみです。

SAASアプリの本番環境のコスト効率と拡張性の問題であり、最もメモリを大量に消費する「ページ」について定期的に開発部門に報告し、その(メモリ)プレッシャーを返す所属する、いわば。

次のようなものはないようです:
HttpContext.Request.PeakPrivateBytesまたは.CurrentPrivateBytes
または
Session.PeakPrivateBytes

役に立ちましたか?

解決

" Process \ Working Set"を監視するには、パフォーマンスモニターなどのツールを使用します。 W3WP.exeプロセス用にデータベースに記録します。その後、IISサーバーのHTTPログに関連付けることができます。

PerfmonデータとHTTPログの両方を両方ともSQLデータベースに書き込むと役立ちます。その後、T-SQLを使用して、要求されたページを、観測されたメモリ負荷の時間前後の日付/時刻ごとに呼び出すことができます。 DatePart関数を使用して、必要に応じて秒または分の精度に丸められた日付/時刻を作成します。

これがお役に立てば幸いです。

ありがとう、 -グレン

他のヒント

InProc セッション状態を使用している場合、すべてのセッションデータはw3wpのメモリに格納され、成長の原因になる可能性があります。

心配しません。 要求中にGCが発生し、CLRが物事を移動するためにメモリを割り当てている可能性があります。または、ASPNETに付属している他の定期的なサービスの場合もあります。

世代0、1、2のGCイベントなどのパフォーマンスカウンター分析に精通する準備ができていない限り、この「問題」を解決する心配はありません。

それはとにかく問題のようには聞こえません-好奇心だけです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top