2010-03-10 68 views
21

是否有任何命令或可能的方式来知道Windows操作系统中的cpu利用率,以便在命令行或批处理脚本中使用?是否可以通过脚本知道CPU利用率

+0

相关:[从Windows命令提示符CPU使用率(http://stackoverflow.com/questions/ 9097067/get-cpu-usage-from-windows-command-prompt) – 2015-01-09 11:23:35

回答

5

从命令行?查看PsTools套件中的PsList。

+1

'pslist'只显示CPU时间和经过时间,这需要额外的计算才能得到一个使用率数字,并且不是一个“实时”数字,而是过程生命周期数。对于一个快速的“谁在使用我的CPU”来说,这个功能并没有那么有用,尽管它可能对其他用途有好处。 – 2014-11-07 15:35:44

14

要监视每隔1秒使用:

typeperf "\processor(_total)\% processor time" 

仅适用于当前使用情况,使用:

typeperf -sc 1 "\processor(_total)\% processor time" 
5

这里有一个小的VBScript,显示CPU利用率为每个进程

strComputer ="." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 
Set colProcess = objWMIService.ExecQuery("Select * from Win32_PerfFormattedData_PerfProc_Process",,48) 
For Each obj in colProcess 
If obj.Name <> "Idle" And obj.Name <> "_Total" Then 
     WScript.echo obj.Name & "," & obj.PercentProcessorTime 
End If 
Next 

保存为showcpu.vbs并在命令行上运行它为

c:\test> cscript //nologo showcpu.vbs 
29

要确定一般用法,您可以使用mcstellar和warren的答案。此外,还可以选择:

列出所有进程:

typeperf "\Process(*)\% Processor Time" -sc 1

列出所有进程,采取5个样品以10秒间隔:

typeperf "\Process(*)\% Processor Time" -si 10 -sc 5

如果你想有一个特定的过程,Rtvscan例如:

typeperf "\Process(Rtvscan)\% Processor Time" -si 10 -sc 5

我发现在一段时间内监视所有进程活动非常有用。然后,我可以将其转储到一个csv文件并在电子表格中过滤以远程诊断问题。

下面给我5分钟(间隔10秒)的所有过程。该数据不仅包括处理器时间百分比,但IO,内存,分页等

typeperf -qx "\Process" > config.txt typeperf -cf config.txt -o perf.csv -f CSV -y -si 10 -sc 60

+3

如果在5分钟内启动新流程会发生什么?它的活动会被记录下来吗? – 2011-05-02 07:35:35

+1

在我的系统上,命令typeperf -qx“\ Process”> config.txt不能正常工作,因为它会在config.txt中添加字符串“正在退出请等待......命令成功完成”。在柜台中间。如果我用-o typeperf选项替换重定向,它会很好用。带“typeperf -q”的 – 2011-05-02 13:43:28

+0

,您可以获得QUERY参数的所有列表。 – 2014-10-20 15:24:53

相关问题