Odpowiedzi:
Po przejrzeniu dokumentacji (w oparciu o inne odpowiedzi tutaj), proces ten skończyłem przy użyciu:
Przechwyć dziennik ETW problemu
Najłatwiej to zrobić za pomocą narzędzia Windows Performance Recorder . Nie jestem pewien, kiedy to się pojawiło, ale wydaje się, że jest wbudowane w najnowsze wersje systemu Windows. Ustaw profil na CPU usage
.
lub za pomocą wiersza polecenia z podwyższonym poziomem uprawnień przejdź do folderu, który go zawiera, i użyj narzędzia wiersza polecenia xperf:
xperf -on base+interrupt+dpc
Pamiętaj, że musisz zamknąć Process Monitor lub dowolną inną aplikację korzystającą z ETW, w przeciwnym razie pojawi się następujący błąd: xperf: error: NT Kernel Logger: Cannot create a file when that file already exists. (0xb7).
Zatrzymaj śledzenie / zapisz dziennik
xperf -d interrupt_trace.etl
Otwórz ślad w Windows Performance Analyzer
(część pakietu Windows Performance Toolkit); niektóre miejsca wspominają o użyciu xperfview
zamiast tego.
Rozwiń Computation
-> CPU Usage (Sampled)
-> DPC and ISR Usage by Module, Stack
, kliknij prawym przyciskiem myszy iadd graph to analysis view
Wskazało to wprost na danego kierowcę. W tym przypadku HDAudBus.sys wykorzystuje stałe 10,82% mojego procesora przez przerwania, co dokładnie pokazał mi Process Explorer.
Jeśli potrafisz obsługiwać narzędzia systemowe niskiego poziomu;
Windows Performance Analyzer (WPA)
Windows Performance Analyzer (WPA) to zestaw narzędzi do monitorowania wydajności służących do tworzenia szczegółowych profili wydajności systemów operacyjnych i aplikacji Microsoft Windows.
Po nauczeniu się, jak korzystać z xperf; sprawdzić;
Działanie DPC / ISR generuje raport tekstowy podsumowujący różne wskaźniki dotyczące DPC i ISR. Zastosowanie tej akcji jest następujące:
Skopiuj kod -a dpcisr [-dpc -isr -summary -interval [n] -bucket [n] -range T1 T2]
Opcja
Opis
dpc
Pokaż statystyki tylko dla DPC
isr
Pokaż statystyki tylko dla ISR
Podsumowanie
Pokaż raport podsumowujący
interwał [dt]
Pokaż raport użytkowania dla przedziałów czasu dt, domyślnie 1 sekunda
wiadro [dt]
Pokaż histogram dla przedziałów dt, domyślnie 2 sekundy
zakres T1 T2
Pokaż opóźnienia między T1 i T2
If no data type is specified, default is to show report for both DPC
i ISR. Jeśli nie określono żadnego typu raportu, domyślnie drukowane są wszystkie trzy rodzaje raportów.
Oto najlepszy artykuł na ten temat z samouczkami, zrzutami ekranu i linkami do odpowiednich narzędzi:
http://www.msfn.org/board/topic/140263-how-to-get-the-cause-of-high-cpu-usage-by-dpc-interrupt/
Spójrz na Eksploratora procesów systemu Windows:
http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
To powinno pomóc.
Dwa świetne narzędzia to LatencyMon i DPC Latency Checker .