使用 WMI 查询的 perfmon 计数器值问题
Posted
技术标签:
【中文标题】使用 WMI 查询的 perfmon 计数器值问题【英文标题】:Issue with perfmon counter value using WMI query 【发布时间】:2012-05-05 11:30:31 【问题描述】:我正在构建 EXE,并通过它获取应用程序的 perfmon 计数器,以使用 WMI 查询对其进行监控。我正在用我的本地机器测试它,似乎我的代码逻辑为我提供了一些计数器的错误值。
以下是我的其中一个计数器的代码 (CacheTotalHitRatio)
当我在我的系统中使用 perfmon exe 查看它时,它会显示一些不同的东西,如下所示。
我认为 CacheTotalHitRatio 是百分比,不应超过 100,但我的代码给出了更高的值。这里有什么问题还是我在这里做错了什么?
如果有人对 WMI 查询有经验,请告诉我。
提前致谢。
【问题讨论】:
您正在使用带有原始值的性能计数器 (Win32_PerfRawData_ASPNET_ASPNETApplications ),请尝试改用Win32_PerfFormattedData_ASPNET_ASPNETApplications
类。
@RRUZ 嘿,非常感谢,它给了我正确的价值,但请告诉我这有什么区别?我也使用与 Win32_PerfRawData_ASPNET_ASPNET、Win32_PerfRawData_W3SVC_WebService 等其他计数器相同的计数器,所以我需要替换它吗?请写下答案,以便我可以标记为答案:) 再次感谢
【参考方案1】:
存在两种Performance Counter Classes
Formatted Performance Counter Classes Raw Performance Counter ClassesWin32_PerfRawData_ASPNET_ASPNETApplications
类返回 原始性能 计数器值,如果您使用 Win32_PerfFormattedData_ASPNET_ASPNETApplications
类,这些值必须经过转换(根据属性和类使用公式)才能显示相反,您将获得计算的数据,就像在性能监视器中显示的那样。
【讨论】:
太棒了!感谢您的回答,它确实帮助我解决了我的问题。谢谢以上是关于使用 WMI 查询的 perfmon 计数器值问题的主要内容,如果未能解决你的问题,请参考以下文章
perfmon 性能计数器是不是基于与 xperf 使用的 ETW 事件“底层”相同的东西?