使用WMI获取垃圾收集器指标

时间:2011-11-03 18:00:32

标签: windows garbage-collection wmi

  1. 我需要使用Windows服务器的WMI类来收集有关GarbageCollector中百分比时间的指标。我正在使用类:“Win32_PerfRawData_NETFramework_NETCLRMemory”。 这是对的吗?

  2. 然后我为该课程拿了两个样本,我做了以下计算:

        # PSEUDO CODE
        PercentTime in GC = 
        (
          (sample2->'PercentTimeinGC' - sample1->'PercentTimeinGC') / 
          (sample2->'TimeStamp_Sys100NS' - sample1->'TimeStamp_Sys100NS')
        )
    
  3. 这个计算肯定是错误的,如何以正确的方式做到这一点?

    事先提前。

    荷兰货币

1 个答案:

答案 0 :(得分:1)

在未知的windows世界中挖掘后,我找到了解决方案:

我开始使用此链接解释每种指标的计算方法:

http://msdn.microsoft.com/en-us/library/ms974615.aspx

但是,我们需要知道反式,在这种情况下是“PercentTimeinGC”的反型。要知道我需要运行WEBMTest.exe程序:

http://technet.microsoft.com/en-us/library/cc180684.aspx

  1. 连接到“root \ CIMV2”
  2. Open Class ...“Win32_PerfRawData_NETFramework_NETCLRMemory”
  3. 选择属性“PercentTimeinGC”
  4. 点击“显示MOF”按钮
  5. 找到一行:

    “[DisplayName(” GC中的时间“):ToInstance, countertype(537003008):ToInstance,perfindex(2606):ToInstance,helpindex(2607): ToInstance,defaultscale(0):ToInstance,perfdetail(100):ToInstance] uint32 PercentTimeinGC;“

  6. 现在我们知道了反型( 537003008 ),您需要将其映射到人类可读的形式。这个链接将有所帮助:

    http://msdn.microsoft.com/en-us/library/windows/desktop/aa389383(v=vs.85).aspx

    coutertype 537003008的映射是PERF_RAW_FRACTION。

    我们回到第一个链接,找到PERF_RAW_FRACTION的计算方法:

    (100 * CounterValue) / BaseValue
    

    我爱窗户。

    荷兰货币