分析在azure上运行的网站的性能的步骤

Joh*_*son 7 asp.net performance profiling azure

我对一般的网站运营都很陌生.我熟悉桌面应用程序的统计分析器,但不确定如何开始分析网站,因为存在许多额外的潜在瓶颈,我不确定哪些分析器可用于网站.

我环顾四周,在其他问题上看到了有用的建议,但我不确定它们是非常完整的解决方案.主要建议是天蓝色的性能指标和这个答案的建议.

总结它们是:使用firebug单独确定渲染时间和加载时间,以便可以判断是否存在渲染问题或服务器问题.

如果服务器端:测试一个小的静态页面,就像一个带有单个gif的页面.如果这很慢,则会出现CPU问题.否则,可能是IO绑定或数据库性能有问题.

可以使用性能计数器来检查服务器方面,例如:内存垃圾收集tcp/ip问题发送/接收的字节请求,排队,拒绝请求等待时间,处理时间

从我天真的角度来看,这个列表中似乎缺少的一些东西就是对传统桌面应用程序的分析,即堆栈看起来像什么时间的百分比(即我们花费时间在哪些功能,以及什么上下文).另一个缺失的项目是分析数据库性能,这似乎在天蓝色上可能与在本地环境中不同,特别是如果开始处理缩放.另一个是花在第三方服务请求上的时间,尽管可以用天蓝色的性能计数器(?)来完成.

我为这个问题的天真性质道歉.我在这里找不到哪些工具和方面来描述一个天蓝色的MVC asp.net网站,你会对上面的列表做出哪些改变?

mfa*_*nto 4

分析站点涉及很多方面,包括数据库调用、业务逻辑、渲染视图,甚至客户端性能(例如,任何可能运行的 jQuery)。

StackOverflow 的 MiniProfiler是最容易上手的工具之一,只需安装 NuGet 包,添加一些 Javascript 包含内容,并将您想要测试的任何内容包装在 using() 块中,您就会看到执行时间(包括 LINQ-to- SQL 和 EF)。如果您想要更细粒度的各个调用的计时,您甚至可以创建步骤。

MiniProfiler 的好处是您可以根据环境启用/禁用,这使得它适合在 Azure 中运行(而不是 Visual Studio Profiler)。

您还可以查看Azure 性能计数器,它可以让您了解系统资源,但不是 MiniProfiler 意义上的分析。不过,它可以让您了解网络延迟以及 CPU 和内存利用率。

一旦您对此感到满意,您就可以使用Chrome 的开发人员工具在客户端分析您的应用程序。它会让您了解 Javascript 的运行情况,包括 CSS 选择器和渲染。

另外值得注意的是,Visual Studio 在某些更高版本中具有非常好的分析器,可以让您深入了解代码。方法花费的时间、调用次数等。

在这四种方法之间,您应该能够找到大多数瓶颈,尤其是对于第一遍。