Wie eine Tasklisten-CPU-Zeit CPU% Nutzung konvertieren?
-
03-07-2019 - |
Frage
Ich versuche tasklist
zu verwenden, um herauszufinden, welcher Prozess verbrauchen mehr als X Prozent meiner CPU (später zu töten es mit taskkill
.)
Wie kann ich wissen, wie viel Prozent ein Zeitformat darstellt?
Die Dokumentationen sagen:
TASKLIST options
/FI filter
Und ein Filter kann sein:
CPUTIME eq, ne, gt, lt, ge, le CPU time in the format: hh:mm:ss.
hh - number of hours,
mm - minutes, ss - seconds
Wenn ich versuche,
tasklist /FI "CPUTIME gt 00:00:10"
es funktioniert.
Aber wenn ich
tasklist /FI "CPUTIME gt 90"
nicht.
Wie kann ich wissen, dass die Zeit-Format 90% dar? Oder 80%? Was ist die Beziehung zwischen CPU Nutzungszeit und die CPU-Auslastung Prozent?
Lösung
Aufgabenliste des CPUTIME ist ein Maß dafür, wie viel CPU-Zeit (Zyklen) seit Beginn des Verfahrens verwendet wurde, so dass auf ein Prozent zu konvertieren, es wäre
(TotalProcessRuntime / CpuTime) / 100
Zumindest ist das, was ich sammeln:)
Andere Tipps
Es sieht nicht so aus gibt es eine einfache Möglichkeit, dies mit Taskliste zu tun, so würde ich vorschlagen, entweder diese in VBscript oder einem anderen Skriptsprache zu tun, oder einen anderen Ansatz. Wenn Sie Batch-Dateien beschränkt sind, dann können Sie die WMIC Befehl die Liste der laufenden Prozesse mit ihrem jeweiligen CPUTIME zu bekommen:
C:\> wmic path Win32_PerfFormattedData_PerfProc_Process get Name,PercentProcessorTime
Name PercentProcessorTime
Idle 0
System 0
Smss 0
csrss 0
winlogon 0
services 0
lsass 0
[...]
wmiprvse 100
wmic 0
_Total 100
Hinweis , dass dies in meinem Test zeigte wmipsrv.exe als 100% CPU, da es versetzt, während die WMI-Abfrage ausgeführt wird. Sie sollten in Ihrem Skript für das Konto, oder Sie werden am Ende versucht, den WMI-Dienst ständig zu töten;)
Referenz:
http: // waynes-Welt-it .blogspot.com / 2008/09 / nützlich-general-Befehlszeilen-operations.html
http://technet.microsoft.com/en-us/library/bb742610.aspx