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

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

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

답변1

문서를 살펴본 후(여기의 다른 답변을 기반으로) 이것이 제가 사용한 프로세스입니다.

  1. 문제의 ETW 로그 캡처

    이를 수행하는 가장 쉬운 방법은 다음을 사용하는 것입니다.Windows 성능 레코더. 언제 처음 등장했는지는 확실하지 않지만 최신 버전의 Windows에 내장된 것 같습니다. 프로필을 로 설정합니다 CPU usage.

    Windows 성능 레코더

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

    xperf -on base+interrupt+dpc
    

    참고로 프로세스 모니터나 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%를 일정하게 사용하고 있는데, 이는 Process Explorer가 나에게 보여준 것과 정확히 같습니다.

답변2

낮은 수준의 시스템 도구를 처리할 수 있는 경우

Windows 성능 분석기(WPA)

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

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

DPC/ISR 조치

DPC/ISR 작업은 DPC 및 ISR에 관한 다양한 측정항목을 요약하는 텍스트 보고서를 생성합니다. 이 작업의 사용법은 다음과 같습니다.

코드 복사 -a dpcisr [-dpc -isr -summary -interval [n] -bucket [n] -range 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/

답변4

두 가지 훌륭한 도구는대기 시간월그리고DPC 레이턴시 체커.

관련 정보