2010-03-10 138 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