[GUIA] Detectar uso excesivo del CPU causadas por Apps
Publicado: Mar Mar 06, 2012 2:48 pm
Primeramente destacar que todos los créditos por la guía son para MagicAndre1981 de los foros MSFN
#1
Antes de comenzar necesitaríamos el WPT (Windows Performance Tool) este kit contiene las herramientas de análisis de rendimiento. Está diseñado para el análisis de una amplia gama de problemas de rendimiento, incluyendo los tiempos de inicio de programas, los problemas de arranque, llamadas de procedimiento diferido y la actividad de interrupción (CPD y ISRS), los problemas del sistema de respuesta, uso de recursos de aplicación, y las interrupt storm.
Para descargar el instalador web,Aquí
Ahora marcar Win32 Development Tools
e instalarlas.
ahora ir a la ruta
encontrarás estos 3 paquetes: wpt_ia64.msi, wpt_x64.msi y wpt_x86.msi
En el que el primero es si usas Windows Itanium, el segundo para Vista/7 64 Bits y el ultimo para Vista/7 en versión de 32 Bits. Instala acorde a tu sistema
________________________________________________________________________________________________________________________________________
#2
ya teniendo el WPT, ejecutas la consola de comandos (cmd.exe) como Administrador.
A partir de este momento está todo listo para comenzar a rastrear, ubicate en una carpeta por ejemplo C:\TMP y ejecuta el siguiente comando.
Ahora espera el tiempo mientras llegas a notar un uso no común en el cpu.
para detener el rastreo.
esto cierra el rastreo y escribe los resultados en latency.etl
en el siguiente paso, doble click en el archivo .etl para abrir el visor.
Digan que si en la ventana emergente, esperen los 2 pases.
Vayan a "Trace" -> "Configure Symbol Paths" y transcriban lo siguiente (o mucho mejor copien y peguen)
click en OK para cerrar.
Ahora vayan al gráfico "CPU sampling per CPU" y selecciona el intervalo donde está la mayor carga del cpu, Click derecho y selecciona "Load Symbols" otra vez click derecho y selecciona "clone selection". y le das por tercera vez doble click y pincha "summary table" y veras esto:
ya tienes lo que puede ser el problema, en este ejemplo es el TrustedInstaller.exe
Ahora ve al primer gráfico "Stack Counts by Type", Click derecho y selecciona "Summary Table".
Acepta las condiciones de uso para descargar los símbolos públicos. [OJO: Los símbolos son bastante pesados, tardan para descargar]
Ahora verás cada cosa por su nombre (asegurate de ordernar la data "per Count" Sampled Profile) y localiza el proceso que te está causando uso excesivo del CPU. Lo importante es el "Stack" así que expande hasta que llegues al mas pequeño de todos y te quede algo así.
En este ejemplo de uso excesivo del cpu por causa del explorer es la busqueda de apps instaladas en el explorador (CreateItemIDFromInstalledApps)
si aparece Unknow es que no están los datos de su debugging...pero por lo menos puedes saber mas a fondo del proceso.
NOTA: para ejecutarlos en sistema 64 bits se necesita editar información en el registro. Manda "regedit.exe" y busca la siguiente entrada:
y crea un DWORD (si no existe) DisablePagingExecutive y coloca el valor de 1 reinicia para que tenga efecto.
Que les sea de ayuda en algún momento.
S4lu2!.-
#1
Antes de comenzar necesitaríamos el WPT (Windows Performance Tool) este kit contiene las herramientas de análisis de rendimiento. Está diseñado para el análisis de una amplia gama de problemas de rendimiento, incluyendo los tiempos de inicio de programas, los problemas de arranque, llamadas de procedimiento diferido y la actividad de interrupción (CPD y ISRS), los problemas del sistema de respuesta, uso de recursos de aplicación, y las interrupt storm.
Para descargar el instalador web,Aquí
Ahora marcar Win32 Development Tools
e instalarlas.
ahora ir a la ruta
Código: Seleccionar todo
C:\Program Files\Microsoft SDKs\Windows\v7.0\bin
En el que el primero es si usas Windows Itanium, el segundo para Vista/7 64 Bits y el ultimo para Vista/7 en versión de 32 Bits. Instala acorde a tu sistema
________________________________________________________________________________________________________________________________________
#2
ya teniendo el WPT, ejecutas la consola de comandos (cmd.exe) como Administrador.
A partir de este momento está todo listo para comenzar a rastrear, ubicate en una carpeta por ejemplo C:\TMP y ejecuta el siguiente comando.
Código: Seleccionar todo
xperf -on latency -stackwalk profile
para detener el rastreo.
Código: Seleccionar todo
xperf -d latency.etl
en el siguiente paso, doble click en el archivo .etl para abrir el visor.
Digan que si en la ventana emergente, esperen los 2 pases.
Vayan a "Trace" -> "Configure Symbol Paths" y transcriban lo siguiente (o mucho mejor copien y peguen)
Código: Seleccionar todo
srv*C:\symbols*http://msdl.microsoft.com/download/symbols
Ahora vayan al gráfico "CPU sampling per CPU" y selecciona el intervalo donde está la mayor carga del cpu, Click derecho y selecciona "Load Symbols" otra vez click derecho y selecciona "clone selection". y le das por tercera vez doble click y pincha "summary table" y veras esto:
ya tienes lo que puede ser el problema, en este ejemplo es el TrustedInstaller.exe
Ahora ve al primer gráfico "Stack Counts by Type", Click derecho y selecciona "Summary Table".
Acepta las condiciones de uso para descargar los símbolos públicos. [OJO: Los símbolos son bastante pesados, tardan para descargar]
Ahora verás cada cosa por su nombre (asegurate de ordernar la data "per Count" Sampled Profile) y localiza el proceso que te está causando uso excesivo del CPU. Lo importante es el "Stack" así que expande hasta que llegues al mas pequeño de todos y te quede algo así.
En este ejemplo de uso excesivo del cpu por causa del explorer es la busqueda de apps instaladas en el explorador (CreateItemIDFromInstalledApps)
si aparece Unknow es que no están los datos de su debugging...pero por lo menos puedes saber mas a fondo del proceso.
NOTA: para ejecutarlos en sistema 64 bits se necesita editar información en el registro. Manda "regedit.exe" y busca la siguiente entrada:
Código: Seleccionar todo
HKLM\System\CurrentControlSet\Control\Session Manager\Memory Management
Que les sea de ayuda en algún momento.
S4lu2!.-