【问题标题】:What are the best ASP.NET performance counters to monitor? [closed]要监视的最佳 ASP.NET 性能计数器是什么? [关闭]
【发布时间】:2010-09-14 18:34:27
【问题描述】:

在 perfmon for ASP.NET 中有大量可用的计数器。什么是最好的(我正在考虑选择 5-10)在我们的测试环境中最适合监控,以便我们可以反馈给开发人员。

我正在考虑请求时间、请求队列长度、活动会话等问题。

【问题讨论】:

    标签: asp.net testing performancecounter


    【解决方案1】:

    对于正常(不是性能/压力测试),您可以使用以下方法:

    • 请求总输出字节数(非常重要,尤其是对于 Web(不是 Intranet)应用程序)
    • 请求失败
    • 请求/秒
    • 执行期间的错误
    • 执行期间未处理的错误
    • 会话 SQL Server 连接总数
    • 状态服务器会话活动

    对于性能测试,您可能需要以下内容:

    • % CPU Utilization (确保您正在检查非常低的 CPU 利用率以及它可能表明某些东西已经死了)
    • 请求排队
    • 输出缓存命中

    【讨论】:

    • Request Bytes Out Total 有多重要(甚至有帮助)?这只是发送的所有字节数不断增加。
    • 我可以使用Powershell and WMI以编程方式获取这些值吗?
    【解决方案2】:

    我使用最多的是内存计数器。他们都是。我知道它们并非特定于 ASP.NET,但我在使用 Web 应用程序时遇到的唯一问题是内存问题。

    Excessive heap、gen 2 collections 和 % time in GC 是最重要的。如果您在 GC 中的时间逐渐失控,则表明您的 UI 和视图状态太大了。大堆和大量 gen 2 集合表明您在内存中保留了太多东西(例如,inproc 会话状态)。

    基于 Web 控件的常规 ASP.NET 应用程序需要创建大量对象,然后快速销毁,因为页面会被重建然后释放。高 gen0 集合还不错。当您开始看到大量对象进入 gen1 然后进入 gen2 时,这表明您正在泄漏内存或持有过多的状态。

    【讨论】:

    • 您能更具体地说明您的数字吗?什么是“大堆”和“大量第 2 代连接”?
    • 我的经历和威尔一样。 asp.net web 应用程序的大多数性能问题可能与内存有关。 GC 中的 % 时间对于监控至关重要。很难为 GC 中的 % 时间指定硬阈值,但任何平均超过 15% 的东西都会引起我的注意。 Gen 0 集合应该比 Gen 1 多得多,Gen 1 集合比 Gen 2 多得多。# Invoked GC 应该是 0 或非常小。如果 # Invoked GC 接近 Gen 2 Collections,则代码显式调用 GC.Collect 并且应用程序将在 GC 中花费大量时间。在 GC 中,所有线程都被暂停,所以这很糟糕。
    【解决方案3】:

    在运行多个 ASP.NET 应用程序池时注意内存计数器 在http://blog.dynatrace.com/2009/02/27/can-you-trust-your-net-heap-performance-counters/查看问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多