来自不同来源的 PowerShell WQL 性能

PowerShell WQL from different sources performance

有以下 WQL 查询,效果很好。

$avg = Get-WmiObject win32_processor -computername $computername | 
               Measure-Object -property LoadPercentage -Average | 
               Foreach {$_.Average}

$tcat = Get-WmiObject Win32_PerfFormattedData_PerfProc_Process -computername $computername |
               Where-Object {$_.Name -like "*tomcat*"} |
               Sort-Object PercentProcessorTime -Descending |
               select -First 1

$mem = Get-WmiObject win32_operatingsystem -ComputerName $computername |
               Foreach {"{0:N2}" -f ((($_.TotalVisibleMemorySize - $_.FreePhysicalMemory)*100)/ $_.TotalVisibleMemorySize)}

将这些结果记录到 SQL 数据库一个多星期了。

第一个 "overall" CPU 使用率为 70%,进程 CPU 为 98%。 这是否意味着 70% 使用率的 98% 或系统的 98% CPU?

这让我有点困惑。

您的 Process_CPU 列由 WMI 的 "Percent Processor Time" 字段中的数据填充。 "Percent Processor Time" 测量的是处理器在非空闲线程上花费的时间量(从技术上讲,它计算线程 处于 空闲的时间量,然后减去它作为100 的百分比)。

由于您要测量 Tomcat,我想您是在网络服务器上测量的。这就是说 98% 的时间,Tomcat 是 运行 处于非空闲状态(这意味着它正在做 某事 ,比如处理请求或为网站提供服务).

为了更具体地回答您的问题,而不是您的 PROCESS_CPU 列测量 70% 的 98%,它测量的是 98% 的时间 >0% 的使用率。