2008-09-16 19 views
131

Sospecho que una de mis aplicaciones consume más ciclos de CPU de los que yo quiero. El problema es que ocurre en ráfagas, y simplemente mirar al administrador de tareas no me ayuda, ya que solo muestra uso inmediato.Seguimiento del uso de la CPU y la memoria por proceso

Hay una forma (en Windows) de rastrear el historial de la CPU & Uso de la memoria para algunos procesos. P.ej. Comenzaré a seguir "firefox", y después de aproximadamente una hora veré un gráfico de su CPU & de memoria durante esa hora.

Estoy buscando ya sea una herramienta preparada o una forma programática para lograrlo.

Respuesta

142

Simplemente escriba perfmon en Start > Run y presione Intro. Cuando la ventana Rendimiento está abierta, haga clic en el signo + para agregar nuevos contadores al gráfico. Los contadores son aspectos diferentes de cómo funciona su PC y se agrupan por similitud en grupos llamados "Objeto de rendimiento".

Para sus preguntas, puede elegir los objetos de rendimiento "Proceso", "Memoria" y "Procesador". A continuación, puede ver estos contadores en tiempo real

También puede especificar la utilidad para guardar los datos de rendimiento para su inspección más tarde. Para hacer esto, seleccione "Registros y alertas de rendimiento" en el panel izquierdo. (Está justo debajo de la consola del Monitor del sistema que nos proporciona los contadores mencionados anteriormente. Si no está allí, haga clic en "Archivo"> ​​"Agregar/eliminar complemento", haga clic en Agregar y seleccione "Registros y alertas de rendimiento" en la lista ".) Desde" Registros y alertas de rendimiento ", cree una nueva configuración de supervisión en" Registros de contador ". Luego puede agregar los contadores, especificar la frecuencia de muestreo, el formato de registro (texto binario o sin formato) y la ubicación del registro.

+1

¿Cuál es el intervalo ideal para tomar una muestra de datos en un registro de contador? –

+6

MS obviamente ha cambiado la interfaz de usuario a PerformanceMonitor desde que escribió esto. ¿Alguna idea de cómo hacer esto en Windows 2008 R2? –

+0

@MartinBrown, abra 'herramientas de supervisión'> 'monitor de rendimiento'. Haga clic con el botón derecho en la pantalla blanca y agregue el contador. – JNF

1

Hmm, veo que Process Explorer puede hacerlo, aunque sus gráficos no son demasiado convenientes. Todavía estoy buscando alternativas/mejores formas de hacerlo.

2

Perfmon.exe está integrado en Windows.

38

Process Explorer puede mostrar el tiempo total de CPU tomado por un proceso, así como un gráfico de historial por proceso.

+0

Entonces, ¿cómo usarlo para encontrar un proceso que se inicia al azar utilizando más memoria o la potencia del procesador en una corta ráfaga. ¿Podrías elaborar? – Xitcod13

+0

Haga clic con el botón derecho en los encabezados de las columnas, elija Seleccionar columnas, luego marque "Historial de la CPU" en "Rendimiento del proceso" – Laurent

+0

¿Puede restablecerlo a cero? –

7

Acepto, perfmon.exe le permite agregar contadores (haga clic derecho en el panel derecho) para cualquier proceso que desee controlar.

Objeto de rendimiento: Proceso Marca "Seleccionar instancias de la lista" y selecciona Firefox.

+0

Gracias. ¿Cómo veo el historial de uso de la CPU en un tiempo predefinido, como una hora? –

5

WMI es el Instrumental de administración de Windows, y está integrado en todas las versiones recientes de Windows. Le permite realizar un seguimiento programático de cosas como el uso de CPU, E/S de disco y uso de memoria.

Perfmon.exe es una interfaz gráfica de usuario para esta interfaz, y puede supervisar un proceso, escribir información en un registro y le permite analizar el registro después del hecho. No es el programa más elegante del mundo, pero cumple su función.

+4

Técnicamente perfmon es una interfaz para la API de contador de rendimiento de Windows subyacente que es anterior a WMI por muchos años. WMI también expone la API del contador de rendimiento dentro de su espacio de nombres. –

2

Process Lasso está diseñado más para la automatización de procesos y la optimización de clase de prioridad, no gráficos. Dicho esto, ofrece oferta de historial de utilización de CPU por proceso (dibujada como una línea blanca en el gráfico) pero NO oferta por -proceso de utilización de memoria de proceso.

Exención de responsabilidad: yo soy el autor de Process Lasso, pero no estoy realmente lo hace suyo aquí - ya que hay mejores soluciones (perfmon siendo el mejor).

lo mejor que nunca es Windows Vista + Recursos y Monitor de rendimiento. Puede rastrear el uso de los accesos de CPU, memoria, red y disco por procesos a lo largo del tiempo. Es una gran utilidad de información general del sistema que debería haber sido creada hace mucho tiempo. A menos que me equivoque, puede rastrear el uso de memoria y CPU por proceso a lo largo del tiempo (entre las otras cosas enumeradas).

14

Uso perfmon.exe, que han intentado usar el contador "Bytes privados" en "Proceso" contadores para el seguimiento del uso de memoria y funciona bien.

6

quizás pueda usar esto. Debería funcionar para usted e informará el tiempo del procesador para el proceso especificado.

@echo off 
: Rich Kreider <[email protected]> 
: report processor time for given process until process exits (could be expanded to use a PID to be more 
: precise) 
: Depends: typeperf 
: Usage: foo.cmd <processname> 

set process=%~1 
echo Press CTRL-C To Stop... 
:begin 
for /f "tokens=2 delims=," %%c in ('typeperf "\Process(%process%)\%% Processor Time" -si 1 -sc 1 ^| find /V "\\"') do (
if %%~c==-1 (
goto :end 
) else (
echo %%~c%% 
goto begin 
) 
) 

:end 
echo Process seems to have terminated. 
1

Aunque no he probado esto, ProcDump parece una solución mejor.

Descripción de un sitio:

ProcDump es una utilidad de línea de comandos, cuyo principal objetivo es el seguimiento de una solicitud de picos de CPU y generar volcados durante un ataque masivo que un administrador o desarrollador puede utilizar para determinar la causa de la espiga . ProcDump también incluye monitoreo de ventana colgada (usando la misma definición de un bloqueo de ventana que usan Windows y el Administrador de tareas), supervisión de excepciones no controlada y puede generar volcados basados ​​en los valores de los contadores de rendimiento del sistema. También puede servir como una utilidad de volcado de proceso general que puede incrustar en otras secuencias de comandos.

0

utilizo para TaskInfo gráfico de la historia de la CPU/RAM, velocidad/IO. http://www.iarsn.com/taskinfo.html

Pero ráfagas de falta de respuesta, suena más como el tiempo de interrupción debido a una unidad Falty HD/SS.

Cuestiones relacionadas