¿Cómo puedo averiguar qué está causando interrupciones en Windows?

37

De vez en cuando me encuentro con servidores (Windows 2003 y 2008) con un alto porcentaje de interrupción del procesador. ¿Hay alguna manera de ver qué programa o dispositivo está causando las interrupciones?

jlupolt
fuente

Respuestas:

41

Después de examinar la documentación (basada en las otras respuestas aquí), este es el proceso que terminé usando:

  1. Capture el registro ETW del problema.

    La forma más fácil de hacerlo es usar el Grabador de rendimiento de Windows . No estoy seguro de cuándo apareció por primera vez, pero parece estar integrado en versiones recientes de Windows. Establece el perfil en CPU usage.

    Grabador de rendimiento de Windows

    o, usando un símbolo del sistema elevado, navegue a la carpeta que lo contiene y use la herramienta de línea de comandos xperf:

    xperf -on base+interrupt+dpc
    

    Tenga en cuenta que deberá cerrar Process Monitor o cualquier otra aplicación que use ETW o recibirá el siguiente error: xperf: error: NT Kernel Logger: Cannot create a file when that file already exists. (0xb7).

  2. Dejar de rastrear / guardar el registro

    xperf -d interrupt_trace.etl
    
  3. Abra el seguimiento en Windows Performance Analyzer(parte de Windows Performance Toolkit); Algunos lugares mencionan usar en su xperfviewlugar.

  4. Expanda Computation-> CPU Usage (Sampled)-> DPC and ISR Usage by Module, Stack, haga clic derecho yadd graph to analysis view

    Analizador de rendimiento de Windows

  5. Esto apuntó directamente al conductor en cuestión. En este caso, HDAudBus.sys está utilizando un 10.82% constante de mi CPU a través de interrupciones, que es exactamente lo que Process Explorer me estaba mostrando.

Dave Andersen
fuente
¡Buena esa! Muy bien hecho.
Michal Sokolowski
Bien explicado. En mi caso, resultó ser audiodg.exe. Tan pronto como lo maté, los DPC se fueron a casi nada. He encontrado detalles adicionales sobre cómo resolver esto aquí: windows-exe-errors.com/...
CJBS
Una corrección: necesita expandir Computación-> Uso de CPU (muestreado): "Uso de CPU" es ambiguo.
Bruce Dawson
En mi caso, tenía un 10% de DPC en el Administrador de tareas, pero la mayor parte era ntoskrnl.exe en la traza. Sin embargo, la expansión de la pila de ese módulo reveló un servicio de terceros "RfeCo10X64.sys", que era parte de Killer Performance Suite. Desinstalé ese software (algún sistema de priorización de red que estaba haciendo lo contrario de lo que intentó) y mi problema se resolvió.
Chris
¿Funciona en Windows 10? ¿Alguna otra herramienta disponible? No quiero instalar archivos GiB de todo el paquete.
Desconocido123
4

Si puede manejar herramientas de sistema de bajo nivel;

Analizador de rendimiento de Windows (WPA)

Windows Performance Analyzer (WPA) es un conjunto de herramientas de monitoreo de rendimiento que se utilizan para producir perfiles de rendimiento detallados de los sistemas operativos y aplicaciones de Microsoft Windows.

Después de aprender a usar xperf; revisa;

La acción DPC / ISR

La acción DPC / ISR produce un informe de texto que resume las diversas métricas con respecto a los DPC e ISR. El uso para esta acción es:

Copiar código -a dpcisr [-dpc -isr -summary -interval [n] -bucket [n] -range T1 T2]

Opción

Descripción

dpc

Mostrar estadísticas solo para DPC

isr

Mostrar estadísticas solo para ISR

resumen

Mostrar informe resumido

intervalo [dt]

Mostrar informe de uso para intervalos de dt, el valor predeterminado es 1 segundo

cubo [dt]

Mostrar histograma para intervalos de dt, el valor predeterminado es 2 segundos

rango T1 T2

Mostrar retrasos entre T1 y T2

If no data type is specified, default is to show report for both DPC

e ISR. Si no se especifica ningún tipo de informe, el valor predeterminado es imprimir los tres tipos de informe.

RandomNickName42
fuente
3

Aquí está el mejor artículo que he encontrado sobre cómo hacer esto, con tutoriales, capturas de pantalla y enlaces de descarga a las herramientas relevantes:

http://www.msfn.org/board/topic/140263-how-to-get-the-cause-of-high-cpu-usage-by-dpc-interrupt/

Syclone0044
fuente
1
¡Bienvenido a Server Fault! En general, nos gustan las respuestas en el sitio para poder sostenerse por sí mismas. Los enlaces son geniales, pero si ese enlace alguna vez se rompe, la respuesta debería tener suficiente información para seguir siendo útil. Considere editar su respuesta para incluir más detalles. Consulte las preguntas frecuentes para obtener más información.
slm
0

Echa un vistazo al Explorador de procesos de Windows:

http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

Eso debería ayudar.

davey
fuente
2
Process Explorer muestra cuánto tiempo pasa el procesador sirviendo interrupciones, pero, por lo que puedo decir, no proporciona una forma de determinar qué está causando las interrupciones.
jlupolt