Wie kann ich herausfinden, was die Unterbrechungen unter Windows verursacht?

Wie kann ich herausfinden, was die Unterbrechungen unter Windows verursacht?

Gelegentlich stoße ich auf Server (Windows 2003 und 2008) mit hoher Prozessor-Interruptzeit. Gibt es eine Möglichkeit herauszufinden, welches Programm oder Gerät die Interrupts verursacht?

Antwort1

Nachdem ich die Dokumentation durchforstet hatte (basierend auf den anderen Antworten hier), habe ich letztendlich dieses Verfahren verwendet:

  1. Erfassen Sie das ETW-Protokoll des Problems

    Am einfachsten geht das mit demWindows-Leistungsaufzeichnung. Ich bin nicht sicher, wann es zum ersten Mal aufgetaucht ist, aber es scheint in neuere Windows-Versionen integriert zu sein. Stellen Sie das Profil auf ein CPU usage.

    Windows-Leistungsaufzeichnung

    oder navigieren Sie mithilfe einer Eingabeaufforderung mit erhöhten Rechten zu dem Ordner, der es enthält, und verwenden Sie das Befehlszeilentool xperf:

    xperf -on base+interrupt+dpc
    

    Beachten Sie, dass Sie Process Monitor oder eine andere App, die ETW verwendet, schließen müssen. Andernfalls wird die folgende Fehlermeldung angezeigt: xperf: error: NT Kernel Logger: Cannot create a file when that file already exists. (0xb7).

  2. Beenden Sie die Ablaufverfolgung / speichern Sie das Protokoll

    xperf -d interrupt_trace.etl
    
  3. Öffnen Sie die Ablaufverfolgung in Windows Performance Analyzer(Teil des Windows Performance Toolkit). An einigen Stellen wird xperfviewstattdessen die Verwendung von empfohlen.

  4. Erweitern Sie Computation-> CPU Usage (Sampled)-> DPC and ISR Usage by Module, Stack, klicken Sie mit der rechten Maustaste undadd graph to analysis view

    Windows-Leistungsanalysator

  5. Dies wies direkt auf den betreffenden Treiber hin. In diesem Fall nutzt HDAudBus.sys konstant 10,82 % meiner CPU über Interrupts, was genau das ist, was mir Process Explorer angezeigt hat.

Antwort2

Wenn Sie mit Low-Level-Systemtools umgehen können;

Windows-Leistungsanalysator (WPA)

Windows Performance Analyzer (WPA) ist eine Reihe von Leistungsüberwachungstools, mit denen detaillierte Leistungsprofile von Microsoft Windows-Betriebssystemen und -Anwendungen erstellt werden.

Nachdem Sie gelernt haben, wie Sie xperf verwenden, schauen Sie sich Folgendes an:

Die DPC/ISR-Aktion

Die DPC/ISR-Aktion erstellt einen Textbericht, der die verschiedenen Kennzahlen zu DPCs und ISRs zusammenfasst. Die Verwendung dieser Aktion ist wie folgt:

Code kopieren -a dpcisr [-dpc -isr -summary -interval [n] -bucket [n] -range T1 T2 ]

Möglichkeit

Beschreibung

dpc

Nur Statistiken für DPC anzeigen

isr

Nur Statistiken für ISR anzeigen

Zusammenfassung

Zusammenfassender Bericht anzeigen

Intervall [dt]

Nutzungsbericht für Intervalle von dt anzeigen, Standard ist 1 Sekunde

Eimer [dt]

Histogramm für Intervalle von dt anzeigen, Standard ist 2 Sekunden

Bereich T1 T2

Verzögerungen zwischen T1 und T2 anzeigen

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

und ISR. Wenn kein Berichtstyp angegeben ist, werden standardmäßig alle drei Berichtsarten gedruckt.

Antwort3

Hier ist der beste Artikel, den ich dazu gefunden habe, mit Tutorials, Screenshots und Download-Links zu den entsprechenden Tools:

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

Antwort4

Zwei großartige Tools sindLatenzMonUndDPC-Latenzprüfer.

verwandte Informationen