监控ASP.net页面的CPU使用情况

时间:2013-09-04 17:46:51

标签: c# asp.net performance cpu-usage debug-diagnostic-tool

我在使用Web应用程序时遇到了一些性能问题。此应用程序池的CPU使用率可能超过90%。我注意到的正常用法是30%。

我使用Debug Diagnostic工具监视此应用程序的CPU使用情况,我发现SNIReadSyncOverAsync是问题所在。我没有关于我的应用程序或页面上的哪个函数在调用SNIReadSyncOverAsync后面的任何其他详细信息。我需要知道的是哪个页面占用了我应用程序中最多的CPU。

您是否知道如何监控每个页面的效果?

2 个答案:

答案 0 :(得分:1)

我认为你也可以使用perfmon(性能监视器)。你可以从Start开始调用它 - >运行 - > PERFMON.EXE。 您可以设置计数器并查看使用哪个页面有一个峰值。有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/aa645516(v=vs.71).aspx

答案 1 :(得分:0)

  

您是否知道如何监控每个页面的效果?

是的,有一种方法可以使用 Windows性能记录器查看生产环境中的CPU消耗情况。例如,

在有问题的服务器上,在提示符下运行以下命令

wpr -start DotNET

当执行相关代码时,请运行

wpr -stop DotNET

然后使用 Windows性能分析器,您可以分析WPR创建的ETL文件。有关详细信息,请参阅Microsoft的Channel9。

或者,您也可以使用 PerfView 来捕获花费时间超过预期的请求。例如,

perfview collect -StopOnRequestOverMsec:3000 -ThreadTime -Merge:true -Zip:true -LogFile:perfviewlog.log -CircularMB:512 -DataFile:LongRequest.etl

然后使用PerfView分析堆栈信息。