Log% CPU por proceso a lo largo del tiempo

40

¿Hay alguna manera fácil en Windows de registrar el% de tiempo de CPU por proceso en un archivo para su posterior análisis?

Por lo que puedo ver ...

  1. El administrador de tareas me muestra el% de CPU por proceso pero solo visualmente, no hay forma de guardarlo en un archivo.
  2. Perfmon me permitirá guardar en un archivo y, además, creará un archivo basado en el tiempo (tomar instantáneas a intervalos de tiempo específicos), que es casi lo que quiero, excepto que, por lo que puedo ver, no puede desglosar el% CPU por proceso.
  3. Process Explorer me permitirá desglosar por proceso, pero solo guardará el archivo como una instantánea de un solo punto en el tiempo

Por lo tanto, ninguno de estos es exactamente lo que necesito: necesito obtener un archivo que contenga algo así como 'los 10 principales procesos por CPU, cada 15 segundos, hasta que detenga el monitoreo'. La razón por la que necesito esto es porque tengo una máquina en la que algunos procesos están causando breves picos ocasionales en el uso de la CPU varias veces al día y necesito averiguar qué proceso es el culpable.

¿Algo puede hacer eso o me he perdido alguna característica de perfmon o Process Explorer?

PhantomDrummer
fuente

Respuestas:

37

Process Monitor puede hacer eso por usted.

Es posible que primero desee habilitar la recopilación de eventos de creación de perfiles:

ingrese la descripción de la imagen aquíingrese la descripción de la imagen aquí

Luego, simplemente recopile datos durante el tiempo que desee (es posible que desee configurar filtros y habilitar Eliminar eventos filtrados si planea recopilar durante períodos prolongados de tiempo). Luego vaya a Herramientas -> Resumen de actividad del proceso:

ingrese la descripción de la imagen aquí

Ahora obtendrá una lista de todos los procesos activos que grabó, con su actividad a lo largo del tiempo. ingrese la descripción de la imagen aquí

Luego puede abrir los detalles de un solo proceso (haciendo doble clic en él) e inspeccionar las marcas de tiempo de ciertos eventos en el gráfico:

ingrese la descripción de la imagen aquí

Der Hochstapler
fuente
1
Gracias. Eso es visualmente bastante impresionante (me da miedo pensar cuánta memoria usa si la dejas funcionando durante mucho tiempo). Ciertamente es útil para poder ver en la pantalla qué procesos estaban haciendo. Sin embargo, si hago clic en 'Guardar' en la pantalla de resumen de actividad del proceso, lo que se guarda sigue siendo una instantánea de un solo punto en el tiempo, sin datos dependientes del tiempo.
PhantomDrummer
@PhantomDrummer: Guardar y cargar archivos PML funciona de manera excelente para mí. Todos los eventos grabados previamente se restauran y están disponibles para su análisis después de cargar una PML. Asegúrese de seleccionar Todos los eventos al guardar el archivo. En caso de que simplemente no quiera funcionar, avíseme e incluiré más detalles en mi respuesta. Buena suerte :)
Der Hochstapler
1
@ PhantomDrummer: vaya a Opciones -> Eventos de creación de perfiles. Allí puede establecer el intervalo en 1s o 100ms. Eso es todo lo que va. Si el archivo sigue siendo demasiado grande, debe configurar filtros más estrictos y habilitar Eliminar eventos filtrados.
Der Hochstapler
1
@Pacerier One es un administrador de tareas, las otras operaciones de registros realizadas por tareas.
Der Hochstapler
66
¿No hay algo más simple? Parece que necesitas aprender a usarlo. Para una pequeña comprobación, solo quiero tener tiempos de proceso de uso de la CPU cuando el uso de la CPU es superior al X%
Darius.V