cpu 的 sys.dm_os_ring_buffers 与 wmi 查询

问题描述

是否有人使用 WMI 在 cpu 超过阈值时发出警报? 这是我正在使用的查询
SELECT * FROM __InstanceModificationEvent WITHIN 600 WHERE TargetInstance ISA 'Win32_Processor' AND TargetInstance.LoadPercentage > 95

我正在使用 sys.dm_os_ring_buffers 将结果与此进行比较;我最近收到了 WMI 的警报,但是当我检查 sys.dm_os_ring_buffers 中的即时历史记录时,cpu 几乎没有达到 50% 我一直在网上搜索 wmi 的工作原理,而不仅仅是复制粘贴代码

谢谢

解决方法

我有一个 4 核 VM。因此,WMI 查询返回每个核心的结果,而 sys.dm_os_ring_buffers 是平均值。我在 Powershell 中运行以下命令来确定这一点。

PS C:\Users\Administrator> get-wmiobject win32_processor |选择负载百分比

(((Get-WmiObject win32_processor | 选择 LoadPercentage).LoadPercentage) | Measure-Object -Average).Average