web-dev-qa-db-ja.com

Azure Web Appsは本当に遅い

私は本番アプリのウォームアップ時間が遅いことを調査してきましたが、予期しない結果が生じました。

さまざまなAzure VMでのテストでは、ウォームアップ時間はアプリケーションサーバーのパフォーマンスによく関連することが示されました(したがって、SQLを含む外部要求ではありません)が、本当に興味深いのは、Azure Web Appsと自分のローカルマシンとの比較です(常に約3回の実行からの平均):

VM A0:            >1m
VM A2:            13s
VM D2V2:           6.8s
VM D5V2:           7.8s
Wep App P2:       25s
Web App S2:       26.5s
My local machine:  6.6s

私のローカルマシンは3.3GHzのi5です。

ローカルマシンは、インターネット経由で同じSQL Azureデータベースに接続し、リクエストにEntity Frameworksのモデルチェックが含まれているにもかかわらず最速です

すべてのテストは、現時点で最新のリリースである.NET 4.6.1を使用します。

見かけ上の結論:

  • 私の4年前のデスクトップボックスは、Azureのどのサイズよりも高速ですVM並列化できないジョブの場合。
  • 1か月に500ドルを費やしても構わない場合でも、Azure Web Appsはジャガイモで動作します。

これは怪しいようです。他に何が起こっているのでしょうか?または何をテストしますか?

プロファイリング後の編集:次のいずれも私の質問に光を当てませんが、それでも興味深い情報です(別のA2 VMプロファイラーが添付されます):

  • 58%がジッターです。
  • File IOブロッキングは実質的にゼロです(アプリは以前に起動されているため、必要なDLLパーツはすべてメモリキャッシュにあります)。
  • <1%はSQL Azureリクエストです。
  • したがって、残りの90%の実行時間は、.NET実行またはプロファイラーのオーバーヘッドである必要があります。
  • プロファイラー自体にはかなりのオーバーヘッドがあります。リクエストが実行されない場合、リクエストはわずか15秒で実行されます(私はJetBrains dotTraceのトライアルを使用しました。
  • 時間の50%がEntity Frameworkでの最初のリクエスト中にあり、80%がjittingです
  • 15%がSignalRの最初の使用であり、ほとんどジッターがありません(いくつかのリフレクションナンセンスを行います)

並列化はほとんど行われていません。

30
John

最初に、Azure App Service-Webアプリ(リソースグループ1でホスト)とAzure SQLデータベース(リソースグループ2でホスト)をデプロイしたとき、アプリは非常に低速でした。私が犯した間違いは、RG1とRG2の両方が2つの異なる場所にあったことです。後で、両方のRGの場所を変更して(実際に再作成した)同じ場所にすると、WebAppsはスムーズに実行を開始しました。

ありがとう、プラウィン

3
Prawin

私も同じ問題を抱えています。サイトのコンテンツ(写真とビデオ)をAzure Blob Storageに移動またはコピーして修正しました。 Azure CDN をWebApp、VM、クラウドサービス、およびカスタムオリジンに構成することもできます。 Azure CDNを試すことで、サイトの読み込み時間が改善されます。

1
Rajasekar