1

I am encountering an issue with my asp.net c# web application where the server is hitting very high cpu useage eg. 80%+ on w3wp process.

This has only happened recently after I made numerous changes to my application. I am fairly sure that it may be one of the changes that I have made is causing this issue with high cpu useage on the iis 7 web server.

Is it possible to analyze the process and find what exactly is causing this high useage? Or what is the mechanism for debugging such an issue.

4

2 に答える 2

0

最も簡単な方法は、ページトレースを有効にすることです。これにより、ページの生成にかかった時間と、サーバーがほとんどの時間を費やした方法が正確にわかります。これにより、特に実行速度の遅いメソッドが強調表示され、問題のあるセクションにトラブルシューティングを集中できるようになります。

面倒だと思われるページに以下を追加するだけです。

<%@ Page Trace="true" %>

これで、ブラウザでそのページに移動すると、その下部に詳細なトレースが表示されます。

于 2011-08-02T11:34:20.457 に答える
0

ASP.NET ケース スタディ: GC での高 CPU - 大きなオブジェクトと高い割り当て率:

CPU 使用率が高い問題は、一般的に 3 つの問題のいずれかです

  • 無限ループ
  • 負荷が高すぎる (つまり、多くの小さなことを行うリクエストが多すぎるため、1 つのことが原因ではない)
  • ガベージ コレクターでの攪拌が多すぎます。

% Time in GCカウンターと .NET CLR メモリ / # Gen 0 コレクション、 # Gen 1 コレクション、および # Gen 2 コレクションを 監視してみてください。

GC.Collect()コードのどこかで呼び出していますか?

あなたが説明している問題は、静的な Generic.Dictionary を使用する .NET アプリの CPU 使用率が高いことの症状でもあります。これは、複数のスレッドが辞書にヒットすることが原因です。それが問題の場合:

このタイミングの問題を解決するには、複数のライターが同時に作業している可能性がある場合、または他の誰かが読んでいる間に自分が書いている可能性がある場合、ディクショナリへのアクセスを同期 (ロック) するように特別な注意を払う必要があります。 /同じ辞書を列挙します。

関連: ASP.NET パフォーマンス監視、および管理者に警告するタイミング

于 2011-08-02T11:32:26.513 に答える