0

十分な馬力を備えたWindowsServer2008R2サーバー上のIIS7でMVC2アプリケーションを展開しています。SQL Server 2008 DBに接続しており、アプリケーションのパフォーマンスは、開発者ワークステーションのデバッガーで実行する場合(同じSQL Server DBに接続する場合)よりも大幅に遅くなります。すでにネットワーク接続を確認しましたが、イベントログにWindowsの問題を示すものはありません。また、DBサーバーでプロファイラーを実行しましたが、クエリはすぐに実行されます。

このパフォーマンスの問題を診断するための助けをいただければ幸いです。サーバー自体であると期待して、テスト用に新しい2008 R2サーバーを構築しましたが、パフォーマンスは同じでした。

ありがとう

編集1:

IISは、Windows Server 2008 R2 Standard、32GBRAMを実行しているDellR710サーバーで実行されています。SQL Server 2008は、Server 2008 R2 Standard、12GBRAMを実行する別のR710でホストされます。最初はIISをVMで実行していましたが、パフォーマンスの低下がVMによるものかどうかを確認するために、IISを物理マシンに移動しました。私は両方で同じパフォーマンスを経験しているので、それは要因ではなかったようです。

編集2:

データベースへの接続を開くことはボトルネックの一部であり、その後のストアドプロシージャの起動にもかなりの時間がかかるようです。

-データベース接続を開く:5秒(後続の接続はキャッシュされるため、5秒は必要ありません)

-最初のsproc:<1秒

-2番目のsproc:5秒

-3番目のsproc:<1秒

-4番目のsproc:<1秒

-5番目のsproc:6秒

4

2 に答える 2

2

まず、Windows Server2008R2にはIIS7ではなくIIS7.5があります。おそらく問題ではありません。ただし、バージョンが異なります。

次に、ボトルネックがどこにあるかを見つける必要があります。クエリを削除して、ダミーデータを使用してみてください。まだ遅いですか?そうでない場合は、データアクセスとは何の関係もありません。そうである場合は、データアクセスの問題であることがわかります。

于 2011-04-26T19:39:49.340 に答える
1

これは、ASP.NETMVCアプリケーションの最適化に関するプレゼンテーションのスライドです。彼らは、アプリのパフォーマンスを8 req/secから400req/secに向上させることができました。

彼らはスライドでそれをどのようにプロファイリングし、ボトルネック(クエリのコンパイル、RenderPartialへの多くの呼び出し、URL生成など)を特定したかについて言及し、プレゼンテーションの最後にいくつかのヒントを示します。

于 2011-04-27T05:10:47.190 に答える