Frage Wie kann ich herausfinden, was Interrupts unter Windows verursacht?


Gelegentlich stolpere ich auf Server (Windows 2003 und 2008) mit hoher Prozessor% Interrupt Zeit. Gibt es eine Möglichkeit zu sehen, welches Programm oder welches Gerät die Interrupts verursacht?


30
2018-01-19 12:43


Ursprung




Antworten:


Nach dem Durchsuchen der Dokumentation (basierend auf den anderen Antworten hier), ist dies der Prozess, den ich am Ende benutzt habe:

  1. Erfassen Sie das ETW-Protokoll des Problems

    Der einfachste Weg, dies zu tun, ist die Verwendung der Windows-Leistungsrecorder. Ich bin mir nicht sicher, wann es zum ersten Mal erschien, aber es scheint, als wäre es in neueren Versionen von Windows eingebaut. Setzen Sie das Profil auf CPU usage.

    Windows Performance Recorder

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

    xperf -on base+interrupt+dpc
    

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

  2. Protokollierung stoppen / Protokoll speichern

    xperf -d interrupt_trace.etl
    
  3. Öffnen Sie die Ablaufverfolgung in Windows Performance Analyzer (Teil von Windows Performance Toolkit); Einige Orte erwähnen Verwendung xperfview stattdessen.

  4. Erweitern Computation -> CPU Usage (Sampled) -> DPC and ISR Usage by Module, Stack, rechtsklicken und add graph to analysis view

    Windows Performance Analyzer

  5. Dies wies auf den fraglichen Fahrer hin. In diesem Fall verwendet HDAudBus.sys eine konstante 10,82% meiner CPU über Interrupts, was genau Process Explorer mir zeigte.


34
2017-08-19 20:45



Schön! Sehr gut gemacht. - Michal Sokolowski
Gut erklärt. In meinem Fall war es audiodg.exe. Sobald ich es getötet habe, ging DPCs fast zu nichts. Ich habe weitere Details zur Lösung dieses Problems gefunden: windows-exe-errors.com/... - CJBS
Eine Korrektur - Sie müssen die Berechnung erweitern -> CPU-Auslastung (Sampled) - "CPU-Auslastung" ist mehrdeutig. - Bruce Dawson
@BruceDawson - Danke, dass du das unterstrichen hast! - Dave Andersen
In meinem Fall hatte ich 10% DPC im Task-Manager, aber das meiste davon war ntoskrnl.exe in der Ablaufverfolgung. Die Erweiterung des Stacks dieses Moduls enthüllte jedoch einen Drittanbieter-Dienst "RfeCo10X64.sys", der Teil der Killer Performance Suite war. Ich habe diese Software deinstalliert (ein Netzwerkpriorisierungssystem, das genau das Gegenteil von dem tat, was es versuchte) und mein Problem wurde gelöst. - Chris


Wenn Sie mit System-Tools auf niedriger Ebene umgehen können;

Windows-Leistungsanalysator (WPA)

Windows Performance Analyzer (WPA) ist   eine Reihe von Leistungsüberwachungstools   verwendet, um eingehende Leistung zu produzieren   Profile von Microsoft Windows   Betriebssysteme und Anwendungen.

Nachdem Sie lernen, wie man xperf verwendet; Auschecken;

Die DPC / ISR-Aktion

Die DPC / ISR-Aktion erzeugt einen Text   Bericht, der die verschiedenen zusammenfasst   Metriken bezüglich DPCs und ISRs. Das   Verwendung für diese Aktion ist:

Code kopieren   -a dpcisr [-dpc -isr -summary-interval [n] -Bucket [n] -Range T1 T2]

Möglichkeit

Beschreibung

dpc

Zeigt nur Statistiken für DPC an

isr

Zeigt nur Statistiken für ISR an

Zusammenfassung

Zusammenfassungsbericht anzeigen

Intervall [dt]

Benutzungsbericht 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

Zeige Verzögerungen zwischen T1 und T2

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

und ISR. Wenn kein Berichtstyp vorhanden ist   angegeben, Standard ist, alle zu drucken   drei Arten von Berichten.


4
2018-06-09 03:25





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

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


2
2018-05-15 20:33



Willkommen bei Serverfehler! Im Allgemeinen mögen wir Antworten auf der Website, um alleine stehen zu können - Links sind großartig, aber wenn dieser Link jemals bricht, sollte die Antwort genügend Informationen haben, um immer noch hilfreich zu sein. Bitte bedenken Sie, dass Sie Ihre Antwort bearbeiten müssen, um mehr Details zu erhalten. Siehe die FAQ Für mehr Information. - slm


Sehen Sie sich den Windows Process Explorer an:

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

Das sollte helfen.


0
2018-01-19 13:28



Process Explorer zeigt an, wie viel Prozessorzeit für die Ausführung von Interrupts aufgewendet wird, aber es bietet meines Wissens nicht die Möglichkeit, festzustellen, was die Interrupts verursacht. - jlupolt