2010-11-27 19 views
1

asp.net 1.1に基づくWebアプリケーションがあります。 Webサーバーに展開しましたが、問題があります。 ウェブサーバでCPU使用率が100%に上昇し、メモリ不足例外が発生することがあります。Cpuとメモリ不足例外の使用

私はプロジェクト内にいくつかの間違ったコードがあると思いますが、どこにいるのか分かりません。

ここで、どのように問題を発見し、どのような種類のコードを使用してCPU使用量を増やすかについてあなたのアドバイスを聞きたいです。

+1

この質問は深刻ですか? CPU使用率が高くなると、無限になる可能性があります。だからあなたのところでは、このアプリケーションが何をしているのか、それがどのようにコード化されているのかを正確に記述することから始めます...もちろん、より詳細な情報を提供すればよい答えが得られるでしょう。 –

+0

あなたは正しいかもしれません。しかし、私はサーバーで見た面白いことがあります。システムがOOM例外をスローする前に、CPU使用率が100%になり、イベントビューにID 1078のイベントログが発生し、w3wp.exeは1200 kのメモリを使用します。 – mavera

+0

@mavera、これはまったく役に立たない。増加したCPU使用量を見たとき、アプリケーションは何をしていましたか?データベースへのアクセス、XMLファイルの解析、PIの無限精度計算、ミサイルの起動...? –

答えて

0

ガベージコレクタが何らかの理由で想定されているように動作していないようです。私は長いループの中に変数宣言があるコードを調べることをお勧めします。たとえば、あなたがこのようになり、ループをチェックする必要があります。

dim c as car 
for i as integer = 0 to 20 
    c= new car 
    c.brand="" 
Next 

上記のループは、ごみの多くを作成しますので、あなたがオブジェクトの使用を終了するときdispose()を呼び出すようにしてください。

確認する別の問題は再帰です。再帰呼び出しがある場合は、ブレーク条件が正しいことを確認してから、次の再帰でジャンプする前にdispose()に必ず呼び出してください。

+0

あなたが否定的に投票した場合、あなたが同意しなかった理由を説明してください。 –

+0

この回答は役に立たないと申し訳なく思っています。メモリ不足の例外は、GCが動作していないことを必ずしも示すものではなく、再帰呼び出しを検索することは時間の無駄です。推測をするのではなく、最初にすべきことは、エラーをプロファイリングすることです。 –

+0

私はGCが動作していないとは言わなかった、エラーの原因になる可能性があるプログラミングの習慣が悪いため、動作しないと言いました。これは、プロファイリングを行うのに多くの時間を節約できるコードを最初に見ていることです。 –

-1

デプロイ後に何かをデバッグする方法がわからない場合は、最初に学習する必要があるのはTess Ferrandez's blogです。をクリックして、読んでください。たくさん。 :) debugging labsで始めることをお勧めします。