2010-03-10 8 views
21

Gibt es einen Befehl oder eine Möglichkeit, die CPU-Auslastung in Windows-Betriebssystem für die Verwendung in der Befehlszeile oder in einem Batch-Skript kennen?Ist es möglich, die CPU-Auslastung aus einem Skript kennen

+0

Verwandte: [Get CPU-Auslastung von Windows-Eingabeaufforderung] (http://stackoverflow.com/questions/ 9097067/get-cpu-usage-from-windows-Eingabeaufforderung –

Antwort

5

Von der Befehlszeile? Werfen Sie einen Blick auf PsList in der PsTools Suite.

+1

'pslist' zeigt nur die CPU-Zeit und die verstrichene Zeit an, die eine zusätzliche Berechnung erfordert, um eine Auslastungsnummer zu erhalten Nummer. Für eine schnelle "wer ist meine CPU" ist dies nicht so nützlich, obwohl es für andere Zwecke gut sein könnte. –

14

in 1-Sekunden-Intervallen zu überwachen verwenden:

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

Denn nur die aktuelle Nutzung, Verwendung:

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

hier ist ein kleines Vbscript der

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 
für jeden Prozess der CPU-Auslastung zeigt

Speichern Sie als showcpu.vbs und führen Sie es in der Befehlszeile als

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

Um die Verwendung im Allgemeinen zu bestimmen, können Sie die Antwort von Mcstellar und Warren verwenden. Sie haben auch die Möglichkeit:

Liste aller Prozesse:

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

Liste aller Prozesse, nehmen 5 Proben in Intervallen von 10 Sekunden:

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

Wenn Sie einen bestimmten wollen Prozess, Rtvscan zum Beispiel:

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

Ich fand es äußerst nützlich, nur alle Prozessaktivität über einen bestimmten Zeitraum zu überwachen. Ich könnte es dann in eine CSV-Datei ablegen und in einer Tabelle filtern, um Probleme remote zu diagnostizieren.

Das folgende gibt mir 5 Minuten (in 10-Sekunden-Intervallen) aller Prozesse. Die Daten umfassen nicht nur% Prozessorzeit, aber IO, Speicher, Paging usw.

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

+3

Was passiert, wenn während Ihres 5-Minuten-Zeitraums ein neuer Prozess gestartet wird? Wird seine Aktivität protokolliert? –

+1

Auf meinem System funktioniert der Befehl typeperf -qx "\ Prozess"> config.txt nicht gut, weil es zu config.txt auch die Zeichenfolge "Beenden bitte warten ... Der Befehl wurde erfolgreich abgeschlossen." in der Mitte der Zähler. Es funktioniert gut, wenn ich die Umleitung durch die Option -o typeperf ersetze. –

+0

mit "typeperf -q" können Sie alle Liste der Abfrageparameter erhalten. –

Verwandte Themen