2017-05-02 34 views
0

我们在Azure AppServices上托管ASP.NET MVC5网站。Azure AppServices上的ASP.NET MVC网站性能问题

我们在Azure上有2个不同的本地站点:1个用于测试,1个用于生产。

这两个实例在不同的Azure计划中,但在每个实例中考虑的所有服务都在同一个区域(西欧)。

第一个似乎以可接受的方式工作,但我们正在加载第二个页面上的某些页面时出现性能问题(有时从15s到+30s的页面加载时间)。

我们的每一个应用程序实例的组成是:

  • ASP.NET MVC 5(与FormsAuthentication)
  • 的N-层级架构
  • 的EntityFramework 6.1.3
  • ApplicationInsights服务
  • 位于Azure Sql服务中的2个SqlServer数据库(1个用于业务数据的& 1)

Azure计划使用AppServices的“基本(小)”和SqlServices的“S0标准(10 DTU)”。 第一个CPU运行5%左右,内存运行58%。第二个DTU运行约3%。

使用AppInsights,我已经看到“控制器中的一切都好”,问题可能来自下面。 我也检测到一些页面加载问题呈现一个失败的Sql依赖项调用(结果代码207)。

Sql请求响应时间也单独确定(低于300ms)。

当然,我们已经阅读了很多关于Azure性能问题的文章,但没有任何文章对我们有所帮助。

我们真的很感谢您的帮助。 非常感谢!

回答

1

启用Application Insights中的分析器(与以前生活在https://azureserviceprofiler.com下的东西相同)。它现在在性能刀片下。

压力测试您的应用程序几个小时,足以收集大量的ETL痕迹,以便绘制一幅全面的时间花费图。那么一个小小的 “跟踪” 图标,就可以使用旁边的控制器:

Profiler

结果是这样的:

traces

+0

嗨@evilSnobu, 感谢您的快速答复。 我还没有在Azure中看到过这个工具,这实际上非常有用。 但是经过24小时的使用后,只有3次操作和300毫秒左右的响应时间呈现“跟踪图标”,如您所说。 SSo我目前无法使用这些信息。 你知道如何“强制”这个分析器来收集特定操作的ETL吗? (或者为什么在我的情况下,只有这3页有图标,而不是其他操作已经显示灾难性响应时间,因为探查器已被激活?) – Banov

+1

这是App Insights产品组的问题。尝试在https://github.com/Microsoft/ApplicationInsights-Home/issues上打开问题,和/或在此处发表评论 - https://docs.microsoft.com/en-us/azure/application-insights/app -insights廓。或者更好的是,从Azure Portal打开一个支持案例,并为他们提供一个回到这个问题的链接。 – evilSnobu

+0

是的,我们已经向Microsoft提交了关于我们问题的支持请求。 再次感谢您的帮助 – Banov