2008-10-15 24 views
8

estoy tratando de utilizar tasklist para averiguar qué proceso está consumiendo más de un X por ciento de mi CPU (para matar más tarde con taskkill.)Lista de tareas de la CPU% de uso de

¿Cómo sé qué por ciento hace un tiempo formato representa?

Las documentaciones dice:

TASKLIST options 

/FI filter    

Y un filtro puede ser:

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

Si intento

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

funciona.

Pero si

tasklist /FI "CPUTIME gt 90" 

no lo hace.

¿Cómo puedo saber que el formato de hora representa el 90%? ¿O 80?

Editar:

pregunta adicional: ¿Cuál es la relación entre el tiempo de uso de la CPU y el porcentaje de uso de la CPU?

Respuesta

-3

CPUTime de lista de tareas es una medida de la cantidad de tiempo de CPU (ciclos) se han utilizado desde el inicio del proceso, por lo que para convertir eso a un por ciento, sería

(TotalProcessRuntime/CpuTime)/100 

Al menos, eso es lo Supongo :)

+3

Podría explicar esto? Puedo obtener la lista completa de procesos con 'CpuTime' usando' tasklist/v', pero ¿cómo puedo obtener 'TotalProcessRuntime'? – tborychowski

14

Parece que no hay una manera fácil de hacer esto con la lista de tareas, por lo que sugeriría hacer esto en VBscript u otro lenguaje de scripting, o usar un enfoque diferente. Si usted está obligado a archivos por lotes entonces se podría utilizar el comando WMIC para obtener la lista de procesos en ejecución con sus respectivos 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 

Tenga en cuenta que esto en mis pruebas mostró wmipsrv.exe como tener 100% de la CPU, porque se disparó durante la ejecución de la consulta WMI. Usted debe tener en cuenta que en el script o acabará tratando de matar al servicio WMI constantemente;)

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

+0

¿Hay alguna manera de obtener una salida ordenada por PercentProcessorTime? – laggingreflex