我正在尝试编写PowerShell脚本来监视SQL Server进程的%CPU利用率.我想每天记录这个号码的快照,以便随着时间的推移监控它并观察趋势.
我在网上的研究表明,这个WMI查询应该给我我想要的东西:
Get-WmiObject -Query "SELECT PercentProcessorTime FROM win32_PerfFormattedData_PerfProc_Process WHERE Name='SqlServr'"
Run Code Online (Sandbox Code Playgroud)
当我运行WMI查询时,我通常会得到介于30-50%之间的值

但是,当我在资源监视器中查看进程时,通常平均CPU使用率不到1%

我知道WMI查询只是返回CPU使用率的快照,而不是很长一段时间内的平均值,因此我知道这两者不能直接比较.即便如此,我认为快照通常应该小于1%,因为资源监视器的平均值小于1%.
有没有人对为何存在如此大的差异有任何想法?以及如何准确测量过程的CPU使用率?