1

「従来の」.NET サーバー アプリケーションで OutOfMemoryException が本番環境でスローされたというインシデントを調査しています。私の目的は、Performance Monitor を通じて収集されたデータの特定の部分を解釈し、次に進む方法についてアドバイスを求めることです。事実のリストから始めましょう。

  1. このプロセスは、クラッシュまで20 日以上実行されていました。
  2. System.OutOfMemoryException型の例外がスローされたため、クラッシュしました。
  3. 過去にも同様の事件がありました。同様に、アプリケーションがクラッシュするのにも長い時間がかかります。
  4. プロセスは、次のカウンタによってパフォーマンス モニタを介して監視されていました: # Bytes in all Heaps, % Processor Time, Private Bytes, Working Set.
  5. 本番環境でメモリ ダンプを取得できず、再現できていません。

最初のスクリーンショットでは、7 日間のカウンターの全体的な動作を確認できます。物事はかなり安定しています。2 番目のスクリーンショットは、クラッシュ前後の最後の 1 分間の動作を示しています。OutOfMemoryException は3:13:49PMに記録されました。

7日間の行動 クラッシュ前後の最後の分

私の質問は次のとおりです。全体的には 650 MB で安定しており、10 秒で 1.3 GB まで上昇しました。2.クラッシュの直前にOOMをトリガーした何かを見つけることに集中する必要がありますか、それとも累積的な要因でしょうか? ご覧のとおり、プライベート バイトとすべてのヒープのバイトはほぼ安定しています。

4

1 に答える 1

1
于 2012-12-18T23:10:08.663 に答える