2017-09-22 10 views
0

S3標準プラットフォームでAzureで実行しているWebジョブがあります。これは、アプリを実行するために使用できるRAMが7 GBであることを意味します。'System.OutOfMemoryException'を取得しているWebジョブ

マシン3では、すべての処理を実行しているジョブと残りの2つの小さなタスクを処理しているジョブが実行されています。私の問題は、特定の大規模な大規模なタスクでは、特定のジョブがクラッシュするというメモリ例外の意味を取得するという事実にあります。

私は実行しようとする仕事は非常にメモリ集約的な仕事であり、およそ1,5 gbのRAMを必要としますが、以下のグラフに基づいて、私は2.2 GBを超えることはないので、アプリサービスの中古ラムの私は3つのインスタンスを実行するということを追加しなければならないので、1つのインスタンスがより多くのメモリを使用しているかもしれないが、その情報を見るためにどこでも見つけることができない。

Memory consumption on server

私は工藤におけるプロセスエクスプローラで見たとき、私は私が道の仕事のために必要なメモリの下にまだある、現在、ラムの1.3ギガバイトの周りに使用します参照してください。

Kudo screenshot

ジョブは、同じサーバの設定上の2日前よりもこれ以上何の問題もなく実行しているので、私は完全に見てする場所へと失われています。

更新:コードは、同じ正確なタスクを実行している同じデータを持つビジュアルスタジオで正常に動作します。

誰もがあなたがガベージコレクタの対処はどうすればよいのすべての最初のウェルも、この問題

+0

この回答を見る:https://stackoverflow.com/questions/14186256/net-out-of-memory-exception-used-1-3gb-but-have-16gb-installed –

+0

非常に関連性があり、私はほとんどのデータ型で最大2GBの制限を認識しています。私はxmlファイルとcsvファイルで500〜700 MBのサイズのファイルを扱います。このプログラムは2日前まで問題なく何ヶ月も実行されていて、今は特定のサイズで実行されていないため、メモリ例外が発生します。私はビジュアルスタジオのコードを同じデータでテストしましたが、それは正常に動作します –

答えて

0

にアプローチする方法についてのアイデアを持っていますか?!私はあなたが彼らの仕事をした後に使い捨てのオブジェクトを処分することを意味します。あなたは、アプリが2日間実行されていると言って、アプリがより集中的なメモリ読み込みのものでぶつかるようだ。あなたのアプリは「非常にメモリを大量に消費している」と言っていたので、ガベージコレクタがあなたの「ソースコードの混乱」を気にすることができないため、オブジェクトをフェッチして、オブジェクトを正しく管理する必要があります。がんばろう。

+0

私はちょうど2日前に問題なく走ったと言いました。私は1時間前に同じデータを使ってビジュアルスタジオで同じ仕事をしました。 可能な限りスコープを制限し、使用を最適化してください。ちょうどあなたがデータのサイズの2倍以下のオーバーヘッドを維持するために500-700mbのXMLファイルを取得するときは難しい –

0

私の理解しているように、あなたの晴れたアプリサービスでメモリダンプをキャプチャし、この問題を絞り込むためにダンプを分析することができます。 Azure App Servicesでフルメモリダンプを取得する方法については、tutorialを参照してください。また、クラッシュ診断ツールの拡張機能を使用してCPUとメモリを監視することもできます。詳しくは、blogを参照してください。

+0

あなたのコメントをありがとうございます。メモリダンプの問題は、クラッシュがいつ発生するのか分かりません。私が理解する限り、メモリダンプはスナップショットだけです。私が間違いなく読んで、クラッシュ診断者は、その名前は有望だと思う:) –

関連する問題