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

时间:2013-01-08 13:13:01

标签: batch-file batch-processing

有没有办法从Windows上的脚本获取特定服务的CPU利用率?我知道wmic cpu get LoadPercentage将为整个系统提供CPU利用率,但是有可能为winword.exe这样的特定程序获取它吗?

2 个答案:

答案 0 :(得分:11)

Yes, it's possible

此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

答案 1 :(得分: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的影响很小。