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

7

我对运行网站比较陌生,虽然熟悉桌面应用程序的统计分析器,但不确定如何开始分析网站性能,因为有很多潜在的瓶颈,而且不知道有哪些网站性能分析工具。

我查看了一些其他问题中的有用建议,但不确定它们是否完整。主要建议是使用 Azure 性能计数器和这个答案中的建议。

总的来说,它们是: 使用 Firebug 分别确定呈现时间和加载时间,以便可以确定是出现了呈现问题还是服务器问题。

如果是服务器端: 测试一个小的静态页面,例如只有一个 GIF 的页面。如果速度较慢,则可能存在 CPU 问题。否则,可能是 I/O 绑定或数据库性能问题。

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

从我的幼稚观点来看,这个列表中似乎缺少传统桌面应用程序所具有的分析,即堆栈状态占用的百分比(即我们在哪些函数中花费了时间,以及在什么上下文中)。另一个缺失项是分析数据库性能,这似乎可能与本地环境中的情况不同,特别是如果开始处理扩展性方面的问题。还有用于第三方服务请求所花费的时间,但也许可以使用 Azure 性能计数器来完成(?)。

对于这个问题的幼稚性我表示歉意。我需要哪些工具和方面来对 Azure MVC ASP.NET 网站进行性能分析,你会对上述列表进行哪些更改?

1个回答

4

对于网站的性能分析而言,有很多方面需要考虑,包括数据库调用、业务逻辑、视图渲染,甚至客户端性能(例如可能运行的任何jQuery代码)。

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

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

您还可以查看Azure Performance Counters,这将为您提供有关系统资源的概念,但并不像MiniProfiler那样是性能分析工具。然而,它将为您提供网络延迟以及CPU和内存利用率的概念。

一旦您对此满意,您可以使用 Chrome开发者工具 来对客户端应用程序进行分析。它会让您了解您的Javascript表现如何,包括CSS选择器和渲染。

值得注意的是,Visual Studio在某些高级版本中有一个非常好的 Profiler,可以深入了解您的代码。方法耗时、调用次数等都可以得到详细的信息。

通过这四种方法,您应该能够找到大多数瓶颈,特别是首次尝试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接