特定服务的CPU利用率的Windows命令

8

有没有办法从Windows脚本中获取特定服务的CPU利用率?我知道wmic cpu get LoadPercentage会提供整个系统的CPU利用率,但是是否可以获取像winword.exe这样的特定程序的利用率呢?

2个回答

11

是的,这是可能的

这个wmic命令打印出所有进程的CPU使用率。然后您可以将其输入到findstr中,以过滤特定的进程(使用标志/c:<process name>)。

wmic path Win32_PerfFormattedData_PerfProc_Process get Name,PercentProcessorTime
从命令行运行help findstrhelp find,以查看更多筛选列表的方法。

例如:

C:\> wmic path Win32_PerfFormattedData_PerfProc_Process get Name,PercentProcessorTime | findstr /i /c:chrome
chrome                  24
chrome#1                0
chrome#2                0
chrome#3                0

Indiv,谢谢您。我尝试了,但它没有给我输出。我检查了iexplorer,但没有显示任何值。 - user1954762
执行wmic命令,不要使用管道符号到findstr,看看它是否在列表中。如果在列表中,则应该在将其传递到findstr时能够看到它。大小写很重要,除非您像示例中那样传递/i给findstr。(而且难道不是iexplore而不是iexplorer吗?) - indiv
1
以下是关于编程的相关内容,请参见https://dev59.com/hXE95IYBdhLWcg3wMrAB - bmeck
你能把你的示例(Chrome 部分)写成一行吗? - Sun
@Sun:已经修复了,谢谢。 - indiv

0

要做到这一点,最简单的方法是使用MS性能工具包,它可以雇用ETW来跟踪许多指标,包括CPU使用率。安装性能工具包后(现在在Windows SDK中),执行以下命令:

1. set _NT_SYMBOL_PATH= srv*C:\symbols*http://msdl.microsoft.com/downloads/symbols 
2. open trace via:  xperf -on base
3. Excute any program for some times.
4. output the result:  xperf –d myprofile.etl
5. launch the graphics UI to analysis :  xperfview myprofile.etl

与WMI不同,Xperf是一个更复杂的工具包,可以提供更多关于CPU使用情况的细节,不仅包括进程,还包括函数调用消耗、CPU状态变化等等(这就是为什么我们在第一步导入Windows符号的原因)。

另一个好处是Xperf雇用了ETW,而ETW对CPU的影响很小。


不,我想要一些类似于“wmic cpu get loadpercentage”的命令,以获取特定进程的信息... 你知道吗? - user1954762
如果您需要进行分析,可以使用WMIC或更直接地使用WMI、PowerShell或taskmgr。 - ray_linn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接