0

現在、asp.net mvc アプリケーションを実行していますが、負荷が高いと、サイトが 100% に達しています。これはあってはならないことであり、パフォーマンスを低下させているアプリケーションに問題がある可能性があると考えています。このアプリケーションは、SQL サーバー データベースと通信する wcf サービス レイヤーと直接通信します。100% の CPU を MVC アプリに直接割り当てることができるため、wcf レイヤーにもデータベース レイヤーにもパフォーマンスの問題はありません。

したがって、問題が MVC アプリにある可能性があるプロファイリングを検討しています - できればコードを変更せずに。サーバーは、IIS 7.5 を搭載した Windows サーバー 2008 R2 です。

これを支援するために利用できるツールは何ですか? 手始めに、いくつかのパフォーマンスカウンターの設定を探していました。

4

2 に答える 2

3

始めるのは大変な作業のように思えますが、ゆっくりと始めて、アプリケーションのパフォーマンスがこれほど低下している理由について仮説を立ててみてください。次の記事のように、基本的な perfmon カウンターとdebugdiagを使用して開始することをお勧めします。

IIS 7.x アプリケーション プールでの高 CPU のトラブルシューティング

このトピックに関するSOの投稿はたくさんあるので、必ず調査してください。ここでは優れたプロファイラーが間違いなく役に立ちます。ASP.NET MVC アプリの場合はRed Gate ANTSをお勧めします。これは、DB やその他のダウンストリーム システムへの呼び出しがどこでどのくらいかかっているかを示すことができるためです。

于 2013-08-25T01:21:13.140 に答える
0

プログラムが実行中のコアの 100% を使用している場合、それは CPU 時間と I/O (またはスリープ) 時間の比率が非常に高いことを意味します。これが正常な場合、CPU 時間を 1 桁減らすことができ、10 倍の作業が行われているにもかかわらず、ほぼ 100% の CPU 使用率を示している可能性があります。つまり、CPU パーセントよりも優れたパフォーマンス診断があるということです。

良い例は、1 秒または 1 分あたりに処理するトランザクションの数です。その数が減れば、解決すべき問題があることがわかります。

私が使用する方法は、速度低下中にスタックショット サンプルを取得し、それらを調べることです。たとえば、50% の確率で何か疑わしいことが起こっている場合、それはサンプルの約 50% で正確に詳細に見られます。これを確認するのに多くのサンプルは必要ありませんが、それぞれを調べる必要があります。測定値は、何が起こっているかを伝えるのにあまり適していません。

于 2013-08-25T21:00:00.683 に答える