ASP.NET:监控应用程序性能

时间:2009-12-13 11:10:50

标签: .net asp.net performance optimization

我有一个ASP.NET应用程序,它将在Web服务器(Windows Server 2003)中运行,以便为我的Intranet用户提供服务。现在我想监视应用程序的性能:如内存管理,未封闭的数据库连接等...最终目标是使应用程序工作最优化。我应该为此做些什么?有免费工具吗?

4 个答案:

答案 0 :(得分:6)

ASP.NET包含可以使用 Windows Performance Monitor (Perfmon.exe)跟踪的性能计数器。您可以从Windows Server 2003中的“管理工具”启动它。

您可能需要查看这些文章,这些文章可以指导您选择最合适的效果计数器:

答案 1 :(得分:2)

使用Windows性能计数器可能很难确定您需要观察哪个计数器,然后在短期,中期或长期内对其进行分析。

我通常使用日志性能分析(PAL)工具(非常易于使用!)根据您需要监控的内容(IIS Web应用程序,SharePoint,Exchange等)收集特定和预定义的性能计数器。然后使用PAL向导构建漂亮的报告:

http://www.codeplex.com/PAL

试一试,了解您网站的整体表现非常好。

当然,如果您需要深入了解应用程序以查找内存泄漏或任何性能损失,您可以尝试使用Redgate ANTS Performance Profiler:

http://www.red-gate.com/products/ants_performance_profiler/

答案 2 :(得分:0)

我会运行一个像jetBrains dotTrace或ANTS profiler的探查器。

两者都可以分析CPU使用率或内存使用情况。很容易找到CPU使用率高的方法或内存使用量大的对象。 虽然不是免费的。

答案 3 :(得分:0)

除了已接受的答案外,有时性能计数器和IIS日志还不足以跟踪大型复杂的整体应用程序。在这种情况下,堆栈信息可能会有所帮助。 Perfview可以帮助您解决此问题,open source

例如,假设您想要跟踪.NET堆栈信息,并在Web请求超过3秒时停止。然后,您将在提示符

处运行以下命令
perfview collect -StopOnRequestOverMsec:3000 -ThreadTime -NoNGenRundown -Merge:false -Zip:false -LogFile:perfviewlog.log -CircularMB:512 -DataFile:LongRequest.etl

然后,您将使用perfview来分析LongRequest.etl文件并跟踪有问题的.NET调用。请参阅Microsoft's Channel9