web-dev-qa-db-ja.com

IIS 8の静的ファイルの処理が遅い

HTTPS上で実行されるWindowsServer2012でASP.NetMVCWebアプリをホストしています。ほとんどの場合、すべてが素晴らしく高速ですが、静的ファイル(画像、JavaScriptなど)のリクエストの50分の1が完了するまでに数秒かかることに気付きました。一部の動的ページも完了するまでに時間がかかりますが、常にではありませんが、これが予想される場合もあります(複雑なデータベースクエリの実行など)。

IIS 8のWebサイトで、失敗した要求のトレースを設定し、2秒以上かかるものをログに記録するルールを設定しました。1分あたり約1つのログファイルが生成されます。 、そして私が識別できるパターンはありません。たとえば、常に同じ静的ファイルであるとは限りません。

以下の例では、20kbのPNG画像のリクエストが完了するまでに2,215ミリ秒かかりました。私の理解では、これはユーザーの接続速度に依存しませんそしてこれはサーバーがリクエストを処理するのにかかった時間です(私が間違っている場合は訂正してください)。

私が理解していないのは、パフォーマンスビューが各アイテムに対して0msを表示する理由です。同様に、コンパクトビューでは、すべての時間がまったく同じです。これは、リクエストのどの部分が速度を低下させているかを確認できないことを意味します。私の仮定では、パフォーマンスビューのすべての数値の合計は、所要時間図。 これが当てはまらない理由がない理由はありますか?

関連する場合に備えて、これは、SSDでバックアップされたEBSボリュームに画像ファイルが保存されているAmazonEC2インスタンスです。サーバーのCPU負荷は、安定した10〜20%です。

Screenshot 1Screenshot 2

3
philwilks

これらはモバイルデバイスからのリクエストであると思いますが、FRTからのPerf Viewは、FRTにリストされているモジュール/イベントではなく、バイトの送信でスタックするため、何も表示されません。IIS 。

IISの「現在のリクエスト」ビューでそれらの1つをキャッチできるかどうかを確認します、 msdn docs または、代わりにIISログを調べて、それらの多くを遅く取得しますリクエストと who.is いくつかのIP。モバイルプロバイダーからのものである可能性があります。

0
andryuha

それはasp/c#アプリですか? C:\ Windows\System32\Logfiles\HTTPERRでIISエラーを確認し、w3cログでタイミングを確認できます。

0
YuKYuK