Windows에서 인터럽트를 일으키는 원인을 어떻게 알 수 있습니까?


36

때때로 프로세서 % 인터럽트 시간이 높은 서버 (Windows 2003 및 2008)를 사용합니다. 어떤 프로그램이나 장치가 인터럽트를 일으키는 지 확인하는 방법이 있습니까?

답변:


41

문서를 파고 들고 (여기의 다른 답변을 바탕으로), 이것은 내가 사용한 프로세스입니다.

  1. 문제의 ETW 로그를 캡처

    가장 쉬운 방법은 Windows Performance Recorder를 사용하는 것 입니다. 언제 처음 등장했는지는 확실하지 않지만 최신 버전의 Windows에 내장 된 것 같습니다. 프로필을로 설정하십시오 CPU usage.

    Windows 성능 레코더

    또는 관리자 권한 명령 프롬프트를 사용하여 해당 명령이 포함 된 폴더로 이동하여 명령 줄 도구 xperf를 사용하십시오.

    xperf -on base+interrupt+dpc
    

    Process Monitor 또는 ETW를 사용하는 다른 앱을 닫아야합니다. 그렇지 않으면 다음 오류가 발생합니다. xperf: error: NT Kernel Logger: Cannot create a file when that file already exists. (0xb7).

  2. 추적 중지 / 로그 저장

    xperf -d interrupt_trace.etl
    
  3. 추적을 엽니 다 Windows Performance Analyzer(Windows Performance Toolkit의 일부). 일부 장소는 xperfview대신 사용 을 언급 합니다.

  4. Computation-> CPU Usage (Sampled)->을 확장 DPC and ISR Usage by Module, Stack하고 마우스 오른쪽 버튼을 클릭 한 다음add graph to analysis view

    Windows 성능 분석기

  5. 이것은 문제의 운전자에게 옳았다. 이 경우 HDAudBus.sys는 인터럽트를 통해 CPU의 10.82 %를 일정하게 사용하고 있으며, 이는 프로세스 탐색기가 표시 한 것과 정확히 같습니다.


좋은 것! 잘 했어요
Michal Sokolowski

잘 설명했다. 필자의 경우 audiodg.exe로 밝혀졌습니다. 내가 죽이자 마자 DPC는 거의 아무것도 가지 않았습니다. 이 문제를 해결하는 방법에 대한 자세한 내용은 windows-exe-errors.com/…을
CJBS

한 가지 수정-계산-> CPU 사용량 (샘플링)을 확장해야합니다.- "CPU 사용량"이 모호합니다.
Bruce Dawson

내 경우에는 작업 관리자에 10 % DPC가 있었지만 대부분 추적에서 ntoskrnl.exe였습니다. 그러나 해당 모듈의 스택을 확장하면 Killer Performance Suite의 일부인 타사 서비스 "RfeCo10X64.sys"가 드러났습니다. 해당 소프트웨어 (시도한 것과 반대되는 일부 네트워크 우선 순위 지정 시스템)를 제거하고 문제가 해결되었습니다.
Chris

Windows 10에서 작동합니까? 다른 도구가 있습니까? 전체 팩의 GiB 파일을 설치하고 싶지 않습니다.
123

4

저수준 시스템 도구를 처리 할 수있는 경우

WPA (Windows 성능 분석기)

WPA (Windows Performance Analyzer)는 Microsoft Windows 운영 체제 및 응용 프로그램의 심층적 인 성능 프로파일을 생성하는 데 사용되는 성능 모니터링 도구 세트입니다.

xperf 사용법을 배운 후; 체크 아웃;

DPC / ISR 행동

DPC / ISR 작업은 DPC 및 ISR과 관련된 다양한 메트릭을 요약 한 텍스트 보고서를 생성합니다. 이 조치의 사용법은 다음과 같습니다.

코드 복사 -a dpcisr [-dpc -isr-요약-간격 [n]-버킷 [n]-범위 T1 T2]

선택권

기술

dpc

DPC에 대한 통계 만 표시

ISR

ISR에 대한 통계 만 표시

요약

요약 보고서 표시

간격 [dt]

dt 간격에 대한 사용량 보고서 표시, 기본값은 1 초

버킷 [dt]

dt 간격에 대한 히스토그램 표시, 기본값은 2 초

범위 T1 T2

T1과 T2 사이의 지연 표시

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

그리고 ISR. 보고서 유형이 지정되지 않은 경우 기본값은 세 가지 보고서를 모두 인쇄하는 것입니다.


3

튜토리얼, 스크린 샷 및 관련 도구에 대한 다운로드 링크와 함께이 작업을 수행하는 방법에 대해 찾은 최고의 기사는 다음과 같습니다.

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


1
서버 결함에 오신 것을 환영합니다! 일반적으로 우리는 사이트에서 스스로 답변을 얻을 수있는 답변을 좋아합니다. 자세한 내용을 포함하려면 답변을 수정하십시오. 자세한 내용은 FAQ 를 참조하십시오.
slm 2016 년


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.