Jak mogę dowiedzieć się, co powoduje przerwy w systemie Windows?

37

Czasami natrafiam na serwery (Windows 2003 i 2008) o wysokim% przerwania procesora. Czy istnieje sposób, aby zobaczyć, który program lub urządzenie powoduje przerwania?

jlupolt
źródło

Odpowiedzi:

41

Po przejrzeniu dokumentacji (w oparciu o inne odpowiedzi tutaj), proces ten skończyłem przy użyciu:

  1. 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.

    Rejestrator wydajności systemu Windows

    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).

  2. Zatrzymaj śledzenie / zapisz dziennik

    xperf -d interrupt_trace.etl
    
  3. Otwórz ślad w Windows Performance Analyzer(część pakietu Windows Performance Toolkit); niektóre miejsca wspominają o użyciu xperfviewzamiast tego.

  4. Rozwiń Computation-> CPU Usage (Sampled)-> DPC and ISR Usage by Module, Stack, kliknij prawym przyciskiem myszy iadd graph to analysis view

    Windows Performance Analyzer

  5. 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.

Dave Andersen
źródło
Niezłe! Bardzo dobrze zrobione.
Michał Sokołowski,
Dobrze wyjaśnione. W moim przypadku okazało się, że to audiodg.exe. Jak tylko go zabiłem, DPC poszły na marne. Znalazłem dodatkowe szczegóły, jak rozwiązać ten problem tutaj: windows-exe-errors.com/…
CJBS
Jedna korekta - musisz rozwinąć Obliczenia-> Wykorzystanie procesora (próbkowane) - „Wykorzystanie procesora” jest niejednoznaczne.
Bruce Dawson
W moim przypadku miałem 10% DPC w Menedżerze zadań, ale większość z nich to ślad programu ntoskrnl.exe. Jednak rozszerzenie stosu tego modułu ujawniło zewnętrzną usługę „RfeCo10X64.sys”, która była częścią Killer Performance Suite. Odinstalowałem to oprogramowanie (jakiś system ustalania priorytetów sieci działał odwrotnie niż próbował) i mój problem został rozwiązany.
Chris
Czy to działa w systemie Windows 10? Jakieś inne dostępne narzędzia? Nie chcę instalować plików GiB całego pakietu.
Nieznany123
4

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

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.

RandomNickName42
źródło
3

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/

Syclone0044
źródło
1
Witaj w Server Fault! Zasadniczo podoba nam się, aby odpowiedzi na stronie były w stanie samodzielnie działać - linki są świetne, ale jeśli ten link kiedykolwiek się zepsuje, odpowiedź powinna zawierać wystarczającą ilość informacji, aby nadal była pomocna. Proszę rozważyć edycję swojej odpowiedzi, aby zawierała więcej szczegółów. Zobacz FAQ, aby uzyskać więcej informacji.
slm
0

Spójrz na Eksploratora procesów systemu Windows:

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

To powinno pomóc.

davey
źródło
2
Process Explorer pokazuje, ile czasu procesor spędza na obsłudze przerwań, ale, o ile wiem, nie zapewnia sposobu na określenie, co powoduje przerwania.
jlupolt,