分析在Azure上运行的网站性能的步骤
一般来说,我对运行网站相当陌生。 我对桌面应用程序的统计分析器很熟悉,但不知道如何开始分析网站,因为还有很多额外的潜在瓶颈,我不确定哪些分析器可用于网站。
我环顾四周,在其他问题中看到了有用的建议,但我不确定它们是非常完整的解决方案。 主要建议是天蓝色的性能计数器和来自这个答案的建议。
总结它们是:使用萤火虫来分别确定渲染时间和加载时间,以便可以判断出现渲染问题还是服务器问题。
如果服务器端:测试一个小的静态页面,像一个单一的gif页面。 如果这是缓慢的有一个CPU问题。 否则,可能是IO绑定或数据库性能问题。
可以使用性能计数器来检查服务器方面,例如:内存垃圾回收tcp / ip问题字节发送/接收请求请求,排队,拒绝请求等待时间,处理时间
从我的天真立场来看,这个列表中似乎缺少的东西是传统桌面应用程序的分析类型,即堆栈看起来像多少时间百分比(即我们花费了多少时间和什么功能什么情况)。 另一个缺失的项目是分析数据库性能,这看起来好像在本地环境中可能会有所不同,特别是如果开始处理缩放问题。 另一个是花在请求第三方服务上的时间,但也许可以用天蓝色的性能计数器(?)完成。
我对这个问题的天真性质表示歉意。 我错过了哪些工具和方面来剖析天青MVC asp.net网站,以及您将对上述列表做出什么改变?
在数据库调用,业务逻辑,渲染视图甚至客户端性能(例如,可能运行的任何jQuery)方面,分析站点有很多方面。
StackOverflow的MiniProfiler是最简单的事情之一,只需安装一个NuGet包,添加一些Javascript包含,并在一个using()块内包装任何你想测试的内容,你就会看到执行时间(包括LINQ- SQL和EF)。 你甚至可以创建步骤,如果你想要更细粒度的个别调用时间。
MiniProfiler的好处是可以基于环境启用/禁用,这使得它适合在Azure内运行(而不是Visual Studio Profiler)。
您还可以看看Azure性能计数器,它会给您一个系统资源的概念,但不是MiniProfiler的概念。 它会给你一个网络延迟和CPU和内存利用率的想法。
一旦您满意,您可以使用Chrome的开发者工具在客户端上分析您的应用程序。 它会让你知道你的Javascript在做什么,包括CSS选择器和渲染。
另外值得注意的是,Visual Studio在一些更高版本中具有非常好的Profiler,可以让您深入了解代码。 在方法,通话计数等方面花费的时间
在这四种方法之间,你应该能够找到最多的瓶颈,尤其是第一遍。
链接地址: http://www.djcxy.com/p/74279.html上一篇: Steps for profiling performance of a website running on azure