Azure Web Apps非常慢

时间:2016-05-01 12:12:24

标签: asp.net azure azure-web-sites azure-virtual-machine

我一直在调查我的制作应用程序的预热时间很慢,但我得到了一些意想不到的结果。

在各种Azure VM上进行测试表明,预热时间与应用程序服务器性能密切相关(因此它不是外部请求,包括sql),但真正有趣的是与Azure的比较Web应用程序和我自己的本地计算机(所有时间都是大约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数据库,并且该请求包括实体框架的模型检查

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

明显的结论:

  • 对于不可并行化的作业,我4岁的桌面盒比任何大小的Azure VM都要快。
  • 即使您愿意每月花费500美元,Azure网络应用也依赖于土豆。

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

在进行一些分析之后进行编辑:以下所有内容都没有说明我的问题,但它仍然是有趣的信息(在另一台A2虚拟机上进行测试,请求探测器的总时间为20秒附后):

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

几乎没有并行化。

2 个答案:

答案 0 :(得分:2)

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

谢谢, Prawin

答案 1 :(得分:1)

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