지연된 절차 호출이 많은 근본 원인을 찾으려면 어떻게해야합니까?


41

듀얼 코어 프로세서가 있는데 그 중 하나가 지속적으로 100 %입니다. ProcessExplorer를 보면 지연된 프로 시저 호출임을 알 수 있습니다. 인터넷을 읽는 것은 나에게 많은 다른 대답을주는 것 같습니다.

내 경우에 문제가 무엇인지 좁히기 위해 몇 가지 단계를 설정할 수 있습니까?

업데이트 1 : FWIW, 안전 모드에서도 문제가 지속됩니다.

업데이트 2 : PC 뒷면에서 가능한 모든 것을 뽑았으며 40 % 더 많은 무료 프로세서를 구입했습니다. 나는 또한 RATTV3 도구를 다운로드 했지만 어떤 이유로 든 내 컴퓨터에서 드라이버별로 고장을 일으키지 않습니다. DPCLatencyChecker와 RATTV3에 대한 설명이 여기에 있습니다 .

업데이트 3 : , LatencyMon는 (내 대답은 아래 참조) 나에게 말한다 그것의 nvstor32.sys- 엔비디아의 SATA 드라이버 인 - 5300에 대한 μS의 시간이.

업데이트 4 : 복구 디스크 부팅 시도 여부 (하드웨어 문제가 아닌 실제 드라이버인지 확인)를 고려하면서 음모가 두꺼워지면서 DVD / CD 플레이어가 작동하지 않는 것으로 나타났습니다 (예 : 버튼을 누를 때 문). 기계가 마더 보드를 교체 한 후 다시 돌아 왔을 때, 나는 그것들을 연결하는 것을 잊었을 것이라고 생각했다. 나는 상자를 열었고 모든 것이 정상인 것처럼 보였지만 다시 연결을 끊었다가 다시 연결했다. 다시 부팅하면 모든 것이 정상이었습니다. 더 이상 DPC가 아닙니다 (최고 300µs)!

업데이트 5 : 다음 날, 문제가 발생하면 CD 플레이어가 다시 작동하지 않고 암호 텍스트 상자의 커서조차도 슬로우 모션으로 깜박입니다 ... 내가 생각할 수있는 모든 것을 뽑고 두 번째 재부팅하면 다시 작동했습니다 (Update2에서와 같이) ). 다음에 CD 플레이어의 플러그를 완전히 뽑아 보겠습니다 ...

업데이트 6 : 방금 시스템 이벤트 로그 nvstor32.sys에 오류 메시지 Parity error detected in \Device\RaidPort0가 표시되고 재 초기화 전송에 대한 경고가 표시됩니다. 이제 어느 RaidPort0것이 어떤 것인지 알아 내야합니다 ... (참고 : RAID 설정이없고 단지 표준 Acer입니다). 아, 그리고 시스템 롤백 (또는 호출 된 것)을 시작했을 때 Avast 설정이 종료되었습니다 (RPC 오류), 제거되지 않습니다 (표면 오류가 발생했습니다).

업데이트 7 : 마침내 DVD를 뽑고 재부팅 할 시간이 생겼습니다. 더 이상 DPC 문제가 없습니다! (하지만 많은 페이지 결함이 있지만 나중에 있습니다.) 다음 단계 : 케이블인지 DVD 플레이어인지 확인하십시오.

업데이트 8 : SATA 케이블을 빌려서 부팅했습니다. CD / DVD 플레이어가 작동하며 DPC 문제가 nvstor32.sys없으며 프로세서가 차단되지 않습니다. 해피 엔드 ... 거의 : 여전히 Avast 문제 storport.sys, 시작시 명백한 DPC 문제 (USB의 경우 정상일 수 있음) 및 많은 하드 페이지 오류가 있습니다. 그러나 이것들은 다른 질문의 주제가 될 것입니다.

Postscript : 최근에 같은 문제가 발생하기 시작했고 같은 방법을 사용하여 촬영중인 USB 스틱 (ReadyBoost에 사용했던 것)까지 추적 할 수있었습니다.


답변:


43

다음은 DPC 대기 시간이 긴 원인을 어떻게 찾았는지에 대한 이야기입니다.


사운드 재생 중에 시스템에서 클릭 및 팝이 발생했습니다. 나는 이것이 커널 모드의 어떤 것이 CPU를 낭비한다는 것을 알았습니다. 내 첫 번째 생각은 Process Explorer 주위를 찌르고 아무것도 보이지 않는지 확인하는 것이 었 습니다. 내 관심을 끈 유일한 것은 지연된 프로 시저 호출 (DPC) 을 수행하는 데 소요되는 과도한 시간이었습니다 .

높은 DPC 시간을 보여주는 Process Explorer 스크린 샷

DPC가 드라이버 내에서 실행되는 코드라는 것을 알고있었습니다. 문제는 어떤 드라이버 를 파악하는 것이 었습니다 . DPC Latency Checker 로 전환 하여 지연 시간이 얼마나 나쁜지 보여주었습니다.

DPC 지연 시간 검사기의 스크린 샷

DPC Latency Checker장치 관리자 에서 장치를 살펴보고 불필요한 하드웨어를 하나씩 비활성화 (예 : 네트워크 카드, 사운드 카드)하여 버그가있는 드라이버를 격리 할 것을 제안 합니다. (기기를 사용 중지하고 DPC 대기 시간이 갑자기 떨어지면 범인을 발견 한 것입니다!)

장치 비활성화 스크린 샷

불행히도, 컴퓨터 를 사용할 수 는 있지만 하드 드라이브, 비디오 카드, 마우스 또는 마우스가 연결된 USB 허브를 비활성화하지 마십시오! 다음으로 Windows Performance Toolkit ( Windows SDK의 일부 )과 Peter Weiland의 "DPC 시간 측정" 이라는 훌륭한 블로그 게시물을 보았습니다 . Windows Performance Toolkit을 설치 한 후 :

Windows Performance Toolkit이 선택된 Windows SDK 설치 프로그램의 스크린 샷

관리자 권한 명령 프롬프트를 열고 실행했습니다.

>xperf -on Latency

참고 : Latency 그룹커널 그룹 공급자 에서 추적 할 수있는 미리 정의 된 이벤트 집합입니다 .

>xperf -providers kg
   Base           : PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+PROFILE+MEMINFO
   Diag           : PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+DPC+INTERRUPT+CSWITCH+PERF_COUNTER+COMPACT_CSWITCH
   DiagEasy       : PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+DPC+INTERRUPT+CSWITCH+PERF_COUNTER
   Latency        : PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+DPC+INTERRUPT+CSWITCH+PROFILE
   ...

이 경우 Latency커널 플래그에 해당합니다.

  • PROC_THREAD 프로세스 및 스레드 생성 / 삭제
  • 로더 커널 및 사용자 모드 이미지로드 / 언로드 이벤트
  • 프로파일 CPU 샘플 프로파일
  • CSWITCH 컨텍스트 스위치
  • DPC DPC 이벤트
  • 인터럽트 인터럽트 이벤트
  • DISK_IO 디스크 I / O
  • HARD_FAULTS 하드 페이지 결함

1 분 동안 실행 한 후 추적을 중지하고 파일에 저장했습니다.

C:\Users\Ian\Desktop\xperf -d thingy1.etl

그런 다음 명령으로 추적 결과를 보았습니다.

C:\Users\Ian\Desktop\xperf thingy1.etl

그래픽 Windows 성능 분석기가 로드됩니다 . DPC CPU Usage 그래프를 마우스 오른쪽 버튼으로 클릭하고 Summary Table을 선택했습니다 . 다음은 드라이버가 DPC에서 보낸 시간을 보여줍니다.

XPerf 출력 스크린 샷

당장 tsvp.sysDPC 실행 당 평균 2.8ms를 소요하는 하나의 드라이버 ( )를 볼 수 있습니다 . 이는 다른 드라이버보다 훨씬 느린 속도입니다.

스크린 샷

인터넷 검색 tsvp.sys은 내가 최근에 설치 한 CommView 답변을 주었다 .

문제는 이제이 드라이버를 비활성화하는 방법입니다. 사용하여 자동 실행을 , 나는 그것이 드라이버 서비스로 설치되어 있음을 볼 수있다 :

자동 실행의 스크린 샷

장치 관리자를 사용하여이 드라이버를 호스팅하는 서비스를 비활성화 할 수 있습니다. 먼저 숨겨진 장치 표시표시 한 다음 Non-Plug and Play Drivers노드 를 펼치십시오 .

장치 관리자의 스크린 샷

마지막으로 드라이버 서비스를 중지하고 시작 모드를 System(드라이버가 Windows의 필수 부분이며 Windows가 없으면 부팅 할 수 없음을 Demand의미 )에서 (원할 때 드라이버를 시작할 수 있음)을 다음과 같이 변경했습니다.

장치 관리자의 스크린 샷

드라이버 서비스를 중지하면 DPC 대기 시간이 즉시 해결되었습니다.

스크린 샷

CommView를 완전히 제거하거나 제거하지 않을 수 있지만 현재로서는 높은 DPC 지연 시간을 해결했습니다.


업데이트 : Windows 8부터는 장치 관리자에서 비 플러그 앤 플레이 드라이버더 이상 볼 수 없습니다 .

참고 플러그 앤 플레이 관리자는 Windows 8 및 Windows Server 2012부터 더 이상 비 PnP (레거시) 장치에 대한 장치 사전 설정을 만들지 않습니다. 따라서 장치 관리자에서 볼 장치가 없습니다. 장치 관리자 디스플레이에 숨겨진 장치를 포함 시키려면보기를 클릭하고 숨겨진 장치 표시를 선택하십시오.

Microsoft는이 기능을 제거하고 아무것도 대체하지 않았습니다. 잘 했어.

전형적인 괴상한 분노에서 도움이되지 않는 답변 :

  • 장치 관리자는 비 pnp 드라이버를 보여주지 않았습니다
  • 왜 이것이 필요한가요?

다행히 NirSoft가 교체 제품을 만들었습니다. ServiWin을 사용하면 모든 서비스를보고 중지하고 시작할 수 있습니다 (Microsoft가 관리자가 결정한 서비스조차 포함).

ServiWin의 스크린 샷


13

진행 보고서

지금까지 찾은 최고의 도구는 LatencyMon 이며 기본적으로 앞의 두 도구가 수행하는 모든 작업을 생각하지 않고 수행합니다. 다운로드 페이지는 이메일을 통해 등록하라는 메시지를 표시합니다.하지만 그렇게해도 아무 일도 일어나지 않았습니다. 그러나 페이지 하단으로 스크롤하여 다운로드 할 수 있습니다.

대체 텍스트


6

필자의 경우 나는 LatencyMon (Benjol의 답변)을 사용하여 운전자의 냉동 생활, 우주 및 모든 것이 storport.sys" 고성능 버스 "를 위한 Microsoft 드라이버라는 것을 알았습니다 . 문제가 IO 관련이라는 의심이 들었습니다.

또한 Windows 7 이벤트 뷰어 , Windows 로그-> 응용 프로그램 폴더를 살펴본 후 30 분에서 2 시간마다 VSS (볼륨 섀도 복사본)에서 발생하는 몇 가지 오류가 발견되었습니다. 세부 사항은 다음과 같습니다.

Volume Shadow Copy Service error: Error calling a routine on the Shadow Copy Provider {b5946137-7b9f-4925-af80-51abd60b20d5}. Routine returned E_INVALIDARG. Routine details GetSnapshot({00000000-0000-0000-0000-000000000000},000000000023C850). 

Operation:
   Get Shadow Copy Properties

Context:
   Execution Context: Coordinator

그런 다음 도대체 VSS 가 무엇이며 무엇이 사용되는지 조사하기 시작했습니다 . 내가 비켜갔습니다 몇 가지 - 페이지 - - VSS 문제 해결 . 나는 한가지 큰 용의자 인 백업 소프트웨어 CrashPlan을 겪었습니다 .

이 리드에 이어 VSS 오류와 관련된 페이지를 빠르게 찾았 습니다 . VSS를 사용하는 열린 파일의 백업을 비활성화하기위한 지침에 따라 정지, 커널 CPU 사용량 등이 완전히 소멸되었습니다. 그리고 나를 틀리지 마십시오 : CrashPlan은 훌륭합니다! 이 기능은 내 컴퓨터에서 작동하지 않았습니다.

BTW, 여기이 페이지는 문제의 근본 원인을 찾는 데 도움이되는 초기 리드를 제공 한 것입니다. @Benjol과 이전에 답변 한 다른 모든 분들께 감사드립니다! 내 답변이 다른 사람들을 도울 수 있기를 바랍니다.


Chuim에게 감사드립니다. 정확한 문제 일 수도 있습니다. 몇 주 동안이 문제를 해결하기 위해 노력해 왔으며 마침내 VSS와 storport.sys로 좁혔지만 근본 원인 (CrashPlan 백업 파일 백업)을 찾을 수 없었습니다. 당신의 게시물. 이 문제가 해결 될지 아직 확실하지 않지만, 지금까지 DPC 대기 시간이 길면 최고의 리드입니다!
Matt Palmerlee

방금 열린 파일을 백업하지 않도록 충돌 계획 설정을 조정하는 것이 효과가 있음을 확인했습니다! 정말 고마워! 이제 끔찍한 오디오 일시 중지 및 고장없이 Skyrim을 재생할 수 있습니다!
Matt Palmerlee

새 PC 빌드 후 오디오 끊김 현상이 발생했으며 Crashplan도 ​​범인이라는 것을 추가하고 싶습니다. computercabal.com/2012/07/debugging-audio-skipping-lagging.html을 통해이 답변을 찾았습니다 . 이를 추적하기 위해 많은 작업을 해주신 모든 분들께 감사드립니다!
chucknelson

4

시스템을 바쁘게 유지하는 장치 드라이버가있을 수 있습니다. 이를 분석하는 한 가지 방법은 DPC 대기 시간 검사기 를 실행하는 것 입니다. 그런 다음 한 번에 하나의 드라이버를 비활성화하고 DPC로드가 다운되는지 확인하십시오. (프로세스 탐색기도 작동합니다.)

컴퓨터 관리-> 장치 관리자에서 장치 드라이버를 비활성화 할 수 있습니다.


고마워요, 나는 그 링크를 읽을 것입니다. 실례지만, '지점을 끊지 않고 (예 : 키보드, 화면, 마우스 등) 어떤 장치를 안전하게 비활성화 할 수 있습니까?
Benjol

1
확실하지 않습니다. 제 주요 용의자는 Microsoft 이외의 서비스 일 것입니다. 난 그냥 시도, 그것이 잘못되면 안전 모드에서 부팅하고 드라이버를 다시 활성화 할 수 있습니다
Andomar

좋습니다. 해당 페이지에는 피해야 할 드라이버 목록이 포함되어 있습니다. 그것이 그들 중 하나가 아니기를 바랍니다.
Benjol

그 전에 복구 디스크에서 부팅을 시도 할 것입니다. 그래도 문제가 지속되면 하드웨어 일 가능성이 큽니까?
Benjol

1
대기 시간 검사기 +1 내 경험상 가장 일반적인 범인은 무선 네트워킹 카드의 드라이버입니다.
Shinrai

3

이 문제를 해결하기가 어렵고 항상 불량 드라이버 또는 IRQ 충돌로 인한 것은 아니기 때문에 여기에 답변을 추가해야한다고 생각합니다.

내 프로슈머 USB 사운드 카드에서 팝 / 크랙을 유발하는 높은 RPC 대기 시간이있었습니다. 허용 된 답변에 설명 된 도구는 문제를 일으킨 특정 드라이버를 식별하는 데 도움이되지 않았습니다. 대기 시간은 HAL, USBPORT.SYS 및 Windows 커널과 같은 여러 프로세스에서 발생했습니다. 이러한 과정을 더 깊이 파고 들어도 명백한 범인은 드러나지 않았습니다.

필자의 경우이 문제는 특정 칩셋 및 BIOS 개정판이있는 GigaByte 마더 보드와 관련하여 저수준이며 특정 것으로 나타났습니다. 해결책은 Intel SpeedStep 및 CPU 속도와 전압을 즉시 조정하는 다른 모든 마더 보드 특정 기능을 비활성화하는 것입니다. 이러한 옵션이 꺼지면 RPC 대기 시간이 즉시 수정되었습니다.


1

그래픽 카드를 GeForce GTX 550 Ti로 업그레이드 할 때 나타나는 nVidia 10/100/1000 이더넷 컨트롤러의 IRQ 오류를 해결 한 후이 오류가 발생하기 시작했습니다.

새 GeForce 드라이버 295.73으로 업그레이드 한 후 인터럽트 충돌을 해결 한 후 기존 nForce SATA / RAID 컨트롤러 드라이버를 제거, 손상 또는 제거했습니다. RAID를 사용하지 않고 오류가 계속 발생하여 Vista Ultimate 64 비트를 때때로 잠갔습니다.

웹에서 찾은 모든 문제 해결 제안을 시도한 후 간단한 해결책이 제시되었습니다 ... nForce SATA / RAID 컨트롤러 15.58로 업그레이드했지만 다른 nForce 드라이버는 그대로 두었습니다.

그로 인해 문제가 해결되었으며 이제 모든 운전자 충돌을 해결했습니다. 도움이되기를 바랍니다.

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