Azure Web Apps非常慢

Joh*_*ohn 31 asp.net azure azure-web-sites azure-virtual-machine

我一直在调查我的生产应用程序的缓慢预热时间,我得到了一些意想不到的结果.

在各种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
Run Code Online (Sandbox Code Playgroud)

我的本地机器是一台3.3GHz的i5.

即使本地计算机通过Internet连接到同一SQL Azure数据库,该本地计算机也是最快的,并且该请求包括实体框架的模型检查.

所有测试都使用.NET 4.6.1,这是目前最新的版本.

明显的结论:

  • 对于不可并行化的作业,我4岁的桌面盒比任何大小的Azure VM都要快.
  • 即使您愿意每月花费500美元,Azure Web Apps也可以在土豆上运行.

这看起来很可疑.还有什么想法可能会发生什么?或者要测试什么?

在进行一些分析之后编辑:以下所有内容都没有解释我的问题,但它仍然是有趣的信息(在另一个A2 VM上测试,在连接分析器时总请求时间为20秒):

  • 58%是jitting.
  • 文件IO阻塞几乎为零(应用程序之前已经启动过,所以我猜所有必需的dll部分都在内存缓存中).
  • <1%是SQL Azure请求.
  • 因此,90%运行时间的其余部分应该是.NET执行或探查器开销.
  • 探查器本身有很大的开销,因为请求在没有它的情况下运行大约只有15秒(我使用了JetBrains dotTrace的试用版,我非常喜欢)
  • 50%的时间是在使用Entity Framework的第一次请求期间,其中80%是jitting
  • 15%是SignalR的第一次使用,几乎没有jitting(做一些反思 - 废话)

几乎没有并行化.

Pra*_*win 5

最初,当我们部署 Azure 应用服务 - Web 应用(托管在资源组 1 中)和 Azure SQL 数据库(托管在资源组 2 中)时,应用程序非常慢。我犯的错误是 RG1 van 和 RG2 都在两个不同的位置。后来,当我们将两个 RG 的位置(实际上是重新创建它们)更改为相同时,WebApp 开始运行顺畅。

谢谢,普拉温


Raj*_*kar 1

我也有同样的问题,我通过将网站内容(图片和视频)移动或复制到 Azure Blob 存储来修复。我们还可以将Azure CDN配置为 WebApps、VM、云服务和自定义源。通过尝试 Azure CDN,您的网站加载时间将会缩短。

  • 不,不会。正如我所说,分析显示此问题受 CPU 限制。 (6认同)