Wie kann ich herausfinden, was Interrupts unter Windows verursacht?

36

Gelegentlich stoße ich auf Server (Windows 2003 und 2008) mit einer hohen prozentualen Unterbrechungszeit. Gibt es eine Möglichkeit zu sehen, welches Programm oder Gerät die Interrupts verursacht?

jlupolt
quelle

Antworten:

41

Nach dem Durchstöbern der Dokumentation (basierend auf den anderen Antworten hier) habe ich Folgendes ausgeführt:

  1. Erfassen Sie das ETW-Protokoll des Problems

    Am einfachsten geht das mit dem Windows Performance Recorder . Ich bin mir nicht sicher, wann es zum ersten Mal aufgetaucht ist, aber es scheint in neueren Windows-Versionen eingebaut zu sein. Stellen Sie das Profil auf CPU usage.

    Windows-Leistungsrekorder

    Oder navigieren Sie über eine Eingabeaufforderung mit erhöhten Rechten zu dem Ordner, in dem sich der Befehl befindet, 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, da andernfalls die folgende Fehlermeldung angezeigt wird: xperf: error: NT Kernel Logger: Cannot create a file when that file already exists. (0xb7).

  2. Beenden Sie die Verfolgung / speichern Sie das Protokoll

    xperf -d interrupt_trace.etl
    
  3. Öffnen Sie den Trace in Windows Performance Analyzer(Teil von Windows Performance Toolkit). Einige Orte erwähnen xperfviewstattdessen die Verwendung von .

  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-Leistungsanalyse

  5. Dies wies direkt auf den fraglichen Fahrer hin. In diesem Fall verwendet HDAudBus.sys über Interrupts konstant 10,82% meiner CPU. Genau das hat mir Process Explorer gezeigt.

Dave Andersen
quelle
Schön! Sehr gut gemacht.
Michal Sokolowski
Gut erklärt. In meinem Fall stellte sich heraus, dass es sich um audiodg.exe handelte. Sobald ich es getötet hatte, gingen die DPCs fast ins Nichts. Ich habe hier weitere Informationen zur Behebung dieses Problems
CJBS
Eine Korrektur - Sie müssen Berechnen-> CPU-Auslastung (abgetastet) erweitern - "CPU-Auslastung" ist nicht eindeutig.
Bruce Dawson
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 ergab jedoch einen Drittanbieter-Dienst "RfeCo10X64.sys", der Teil der Killer Performance Suite war. Ich habe diese Software deinstalliert (ein Netzwerk-Priorisierungssystem, das das Gegenteil von dem getan hat, was es versucht hat) und mein Problem wurde behoben.
Chris
Funktioniert es unter Windows 10? Gibt es noch andere Tools? Ich möchte keine GiB-Dateien des gesamten Pakets installieren.
Unknown123
4

Wenn Sie mit einfachen Systemwerkzeugen umgehen können;

Windows Performance Analyzer (WPA)

Windows Performance Analyzer (WPA) ist eine Reihe von Tools zur Leistungsüberwachung, mit denen ausführliche Leistungsprofile von Microsoft Windows-Betriebssystemen und -Anwendungen erstellt werden.

Nachdem Sie erfahren haben, wie Sie xperf verwenden; Auschecken;

Die DPC / ISR-Aktion

Die DPC / ISR-Aktion erstellt einen Textbericht, in dem die verschiedenen Metriken in Bezug auf DPCs und ISRs zusammengefasst sind. Die Verwendung für diese Aktion ist:

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

Möglichkeit

Beschreibung

dpc

Statistiken nur für DPC anzeigen

isr

Statistiken nur für ISR anzeigen

Zusammenfassung

Zusammenfassenden 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 Arten von Berichten gedruckt.

RandomNickName42
quelle
3

Hier ist der beste Artikel, den ich dazu 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/

Syclone0044
quelle
1
Willkommen bei Server Fault! Im Allgemeinen möchten wir, dass die Antworten auf der Website für sich selbst stehen - Links sind großartig, aber wenn dieser Link jemals bricht, sollte die Antwort genügend Informationen enthalten, um weiterhin hilfreich zu sein. Bitte überlegen Sie, Ihre Antwort zu bearbeiten, um weitere Details zu erhalten. Weitere Informationen finden Sie in den FAQ .
Slm
0

Schauen Sie sich den Windows Process Explorer an:

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

Das sollte helfen.

Davey
quelle
2
Der Process Explorer zeigt an, wie viel Prozessorzeit für die Interrupts aufgewendet wird, bietet jedoch meines Erachtens keine Möglichkeit, festzustellen, was die Interrupts verursacht.
Jlupolt