Domanda

Sto cercando di usare tasklist per scoprire quale processo sta consumando più dell'X percento della mia CPU (per poi ucciderlo con taskkill .)

Come faccio a sapere quale percentuale rappresenta un formato orario?

La documentazione dice:

TASKLIST options

/FI   filter               

E un filtro può essere:

CPUTIME         eq, ne, gt, lt, ge, le        CPU time in the format: hh:mm:ss.
                                              hh - number of hours,
                                              mm - minutes, ss - seconds

Se provo

tasklist /FI "CPUTIME gt 00:00:10" 

funziona.

Ma se io

tasklist /FI "CPUTIME gt 90"

non lo è.

Come posso sapere che il formato dell'ora rappresenta il 90%? O l'80%? Qual è la relazione tra il tempo di utilizzo della CPU e la percentuale di utilizzo della CPU?

È stato utile?

Soluzione

Il CPUTime di Tasklist è una misura di quanto tempo (cicli) della CPU è stato utilizzato dall'inizio del processo, quindi per convertirlo in percentuale, sarebbe

 (TotalProcessRuntime / CpuTime) / 100

Almeno, questo è quello che raccolgo :)

Altri suggerimenti

Non sembra che ci sia un modo semplice per farlo con tasklist, quindi suggerirei di farlo in VBscript o in un altro linguaggio di scripting, o usando un approccio diverso. Se sei vincolato a file batch, puoi utilizzare il comando WMIC per ottenere l'elenco dei processi in esecuzione con il rispettivo CPUTime:

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

Si noti che questo nei miei test ha mostrato che wmipsrv.exe ha una CPU al 100%, perché ha avuto un picco durante l'esecuzione della query WMI. Dovresti tenerne conto nel tuo script o finirai per provare a uccidere costantemente il servizio WMI;)

Riferimento:
http: // waynes-world-it .blogspot.com / 2008/09 / util-general-command-line-operations.html
http://technet.microsoft.com/en-us/library/bb742610.aspx

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top