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

时间:2013-09-20 17:29:55

标签: asp.net performance azure profiling

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

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:4)

在数据库调用,业务逻辑,呈现视图,甚至客户端性能(例如,可能运行的任何jQuery)方面,分析站点有很多方面。

StackOverflow's MiniProfiler是最简单的事情之一,只需安装一个NuGet包,添加一些Javascript包含,并在using()块中包装你想要测试的内容,你就会看到执行时间(包括LINQ-to-SQL和EF)。如果您想要更细粒度的单个呼叫时间,您甚至可以创建步骤。

MiniProfiler的优点是你可以根据环境启用/禁用,这使它适合在Azure内运行(而不是Visual Studio Profiler)。

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

一旦您满意,您可以使用Chrome's Developer Tools在客户端配置您的应用程序。它会让你了解你的Javascript正在做得多好,包括CSS选择器和渲染。

另外值得注意的是,Visual Studio在某些更高版本中有一个非常好的Profiler,可以让您深入了解您的代码。在方法,通话计数等方面花费的时间。

在这四种方法之间,您应该能够找到大多数瓶颈,特别是第一次通过时。