【问题标题】:ASP.NET: Monitor application performanceASP.NET:监控应用程序性能
【发布时间】:2010-12-26 03:42:52
【问题描述】:

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

【问题讨论】:

    标签: .net asp.net performance optimization


    【解决方案1】:

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

    您可能想查看这些文章,这些文章可以指导您选择最合适的性能计数器:

    【讨论】:

      【解决方案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/

      【讨论】:

        【解决方案3】:

        除了公认的答案之外,有时性能计数器和 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 上查看更多信息。

        【讨论】:

          【解决方案4】:

          我会运行像 jetBrains dotTrace 或 ANTS profiler 这样的分析器。

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-02-28
            • 1970-01-01
            • 2011-06-04
            • 1970-01-01
            • 2014-02-23
            • 1970-01-01
            • 1970-01-01
            • 2012-05-26
            相关资源
            最近更新 更多