2010-03-10 22 views
21

¿Existe algún comando o posible forma de conocer la utilización de la CPU en el sistema operativo Windows para usar en la línea de comandos o en una secuencia de comandos por lotes?¿Es posible conocer la utilización de la CPU desde una secuencia de comandos

+0

relacionadas: [Get uso de la CPU del símbolo del sistema de Windows] (http://stackoverflow.com/questions/ 9097067/get-cpu-usage-from-windows-command-prompt) –

Respuesta

5

¿Desde la línea de comando? Eche un vistazo a PsList en el paquete PsTools.

+1

'pslist' solo muestra el tiempo de CPU y el tiempo transcurrido, lo que requiere un cálculo adicional para obtener un número de utilización, y no es un número de" tiempo real " número. Para un rápido "quién está usando mi CPU", esto no es tan útil, aunque podría ser útil para otros usos. –

14

para monitorizar al intervalos de 1 segundo usar:

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

Sólo para el uso actual, el uso:

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

aquí es un poco VBScript que muestra la utilización de CPU para cada proceso

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 

guárdelo como showcpu.vbs y ejecútelo en la línea de comando como

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

Para determinar el uso en general, puede usar la respuesta de mcstellar y warren. También tiene la opción de:

Lista todos los procesos:

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

Lista de todos los procesos, tomar 5 muestras a intervalos de 10 segundos:

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

Si quieres una específica proceso, Rtvscan por ejemplo:

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

Me pareció extremadamente útil simplemente controlar toda la actividad del proceso durante un período de tiempo. Luego podría volcarlo en un archivo csv y filtrarlo en una hoja de cálculo para diagnosticar problemas de forma remota.

Lo siguiente me da 5 minutos (en intervalos de 10 segundos) de todos los procesos. Los datos incluye no sólo% de tiempo de procesador, pero IO, memoria, paginación, etc.

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

+3

¿Qué ocurre si se inicia un nuevo proceso durante su período de 5 minutos? ¿Se registrará su actividad? –

+1

En mi sistema, el comando typeperf -qx "\ Process"> config.txt no funciona bien porque agrega a config.txt también la cadena "Salir, espere ... El comando se completó correctamente". en el medio de los contadores. Funciona bien si reemplazo la redirección con la opción -o typeperf. –

+0

con "typeperf -q" puede obtener toda la lista de parámetros de QUERY. –

Cuestiones relacionadas