CPU 사용 문제를 진단하려면 Windows 용 이벤트 추적 (ETW)을 사용하여 CPU 샘플링 데이터 / 프로파일을 캡처해야합니다.
데이터를 캡처하려면 Windows SDK의 일부인 Windows Performance Toolkit을 설치하십시오 .
Windows 10 WPT는 Windows 8 / Server 2012, Windows 8.1 / Server 2012R2 및 Windows 10 / Server 2016에서 사용할 수 있습니다. Windows 7을 계속 사용하는 경우 Build 15086과 함께 SDK / WPT를 사용하십시오 .
(다른 모든 항목은 선택 해제 할 수 있습니다)
이제 리소스 선택 CPU 사용 에서 실행 WPRUI.exe
을 선택 하고 시작을 클릭하십시오 .First Level
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/1vXVx.png)
이제 1 분의 CPU 사용량을 캡처하십시오. 1 분 후 저장을 클릭 하십시오 .
이제 그래프를 끌어다 놓은 다음 그림과 같이 열을 정렬하여 Windows 성능 분석기 로 생성 된 ETL 파일을 분석 하십시오.CPU Usage (sampled)
analysis pane
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/57XUp.png)
WPA 내부 에서 디버그 기호를로드 하고 SYSTEM 프로세스의 스택을 펼치십시오. 이 데모에서는 CPU 사용량이 nVIDIA 드라이버에서 제공됩니다.
다음 데모에서는 CPU 사용량이 Realtek NIC 드라이버에서 제공됩니다.
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/gX99l.png)
ntoskrnl.exe 와 같은 호출을 볼 때 ! Vi KeTrimWorkerThreadRoutine, ntoskrnl.exe! Mm Verifier TrimMemory, ntoskrnl.exe! Verifier KeLeaveCriticalRegion , 이것은 Driver Verifier가 활성화되었음을 의미합니다. 또한 성능이 많이 저하되고 높은 시스템 사용량이 발생합니다. Driver Verifier를 비활성화 하고 재부팅하십시오.
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/2nRvg.png)
이 데모에서는 드라이버 iai2ce.sys
(Intel Serial IO GPIO Controller 드라이버)가 다음을 수행합니다.
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/HbcPQ.png)
이 예에서, CPU 사용량이 파일에서 제공 rtsuvc.sys
것 같다Realtek UVC webcam Driver
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/sQZQP.png)
이 데모는 Bitdefender 드라이버가 ignis.sys
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/gMStO.png)
다음 예에서 Broadcom 네트워크 드라이버가 CPU 사용량을 계산합니다. bcmwl664.sys
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/vc605.png)
당신이 볼 때 ntoskrnl.exe!MiZeroWorkerPages
원인으로,이 까다 롭습니다. 다시 사용하기 전에 메모리를 0으로 만드는 커널의 기능은 CPU 사용량이 높다는 것을 의미합니다.
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/2AYDZ.png)
어떤 프로세스로 인해 프로세스가 발생했는지 감지하는 실제 방법은 없지만 Chrome에서 하드웨어 가속을 사용하도록 설정하면 Chrome에서 문제를 일으킬 수 있다는 것을 알고 있습니다. 따라서이 정보를보고 Chrome을 사용하는 경우 Chrome에서 하드웨어 가속을 끄십시오.
ntoskrnl.exe! RtlpGenericRandomPatternWorker, ntoskrnl.exe! RtlpTestMemoryRandomUp 호출 을 볼 때
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/B7zmW.png)
CPU 사용량은 커널에서 발생하여 메모리 문제를 테스트합니다 (memtest). 이 사용은 Windows 8.1 / 10의 유휴 유지 관리 작업을 통해 트리거됩니다. 작업 스케줄러를 사용하여 유휴 작업을 비활성화 할 수 있습니다.
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/g9HPE.png)
Windows 10에서는이 작업을 Microsoft> Windows> MemoryDiagnostic> RunFullMemoryDiagnostic에서 RunFullMemoryDiagnostics라고 합니다.
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/oHsmI.png)
이 경우 CPU 사용량 은 Windows Server 의 Data Deduplication
기능 ( dedup.sys!DdpPostCreate
) 에서 비롯된 것 같습니다 .
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/TLkRA.png)
이 데모에서 CPU 사용량은 WIFI 카드 드라이버로 인해 발생합니다 athrx.sys
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/8pVoR.png)
이 드라이버 업데이트가 있으면 검색하십시오.
다음 데모에서는 citrix 드라이버가 사용됩니다.
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/bvhtV.png)
따라서 Citrix 문제를 해결하는 방법에 대해서는 IT 부서에 문의하십시오.
이 데모에서이 함수 usbhub.sys!UsbhPortRecycle
는 CPU 사용을 유발합니다.
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/FZnM7.png)
USB2.0 포트를 1.1 속도로 변경 하거나 USB 드라이브를 다른 USB 2.0 포트에 연결하면 일부 사용자에게 도움이되었습니다.
이 경우 소량의 SYSTEM 사용량이 Acronis 드라이버에서 제공됩니다 tdrpm251.sys
.
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/WWDBo.png)
이 데모에서는 CPU 사용량 ntoskrnl.exe!KeAcquireSpinLockRaiseToDpc
과 ntoskrnl.exe!KeReleaseSpinLock
.
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/KulEs.png)
그래서 드라이버는 SpinLocks를 매우 많이 사용 하고 있습니다. 원인이 될 때까지 일부 장치 / 드라이버를 비활성화하십시오.
이 경우 CPU 사용은 드라이버에 의해 발생합니다 L1C62x64.sys
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/VgXrX.png)
이것은 qualcomm atheros AR8171/8175 PCI-E gigabit Ethernet
드라이버입니다. 따라서 스택에 드라이버가 있으면 업데이트하십시오.
여기서 CPU 사용량은 호스트 파일 (netbt.sys! DelayedScanLmHostFile)을 스캔하여 발생합니다.
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/M9hFL.png)
이 사용을 피하기 위해 호스트 파일이 너무 크지 않은지 확인하십시오.
이 경우 CPU 사용은 SRTSP64.SYS
symantec에서 나옵니다 .
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/fpjnj.png)
사용 된 symantec 제품을 최신 버전으로 업데이트하십시오.
여기서 CPU 사용량은 AMD GPU 드라이버 (atikmdag.sys)에서 제공됩니다.
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/Dmfnn.png)
이 메시지가 나타나면 AMD 사이트로 이동하여 AMD 카드의 최신 드라이버를 구하십시오.
여기서 드라이버 TMXPFlt.sys 및 VsapiNt.sys는 높은 CPU 사용량을 유발합니다.
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/cAJDF.png)
내가 본 것에서이 파일은 Trend Micro AV 제품군의 일부입니다. 도구를 업데이트하거나 제거하십시오.
이 예에서 CPU 사용량은 함수에서 비롯됩니다. ntoskrnl.exe!MmGetPageFileInformation
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/dpM83.png)
이 함수는 페이지 파일에 대한 정보를 얻습니다.
루틴 설명 :이 루틴은 현재 활성화 된 페이징 파일에 대한 정보를 반환합니다.
페이지 파일을 비활성화하고 다시 부팅 한 다음 다시 활성화하여 문제가 해결되는지 확인하십시오. 또한 인텔 서비스 (예 : 인텔 콘텐츠 보호 HECI 서비스) 를 제거하면 사용자를 위해 수정 된 것으로 보입니다 .
여기서 드라이버 Netwtw04.sys
(Intel Wifi 드라이버)가 함수를 호출하면 flushCompleteAllPendingFlushRequests
CPU 사용량이 높아지는 것을 알 수 있습니다.
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/B1zzz.png)
디버그 기호가로드되기 때문에 Windows받은 편지함 드라이버가 사용됩니다. 여기서 만 함수 이름으로 콜 스택을 볼 디버그 심볼을 얻을 수 있습니다 flushCompleteAllPendingFlushRequests
.
여기에서 수정하려면 인텔에서 최신 드라이버를 설치 해야 합니다.
가장 복잡한 SYSTEM 사용 사례는 콜 스택에서 ACPI.sys 사용입니다.
Line #, DPC/ISR, Module, Stack, Count, Process, Weight (in view) (ms), TimeStamp (s), % Weight
6, , , | |- ACPI.sys!ACPIWorkerThread, 40246, , 39.992,941063, , 4,13
7, , , | | ACPI.sys!RestartCtxtPassive, 40246, , 39.992,941063, , 4,13
8, , , | | ACPI.sys!InsertReadyQueue, 40246, , 39.992,941063, , 4,13
9, , , | | ACPI.sys!RunContext, 40246, , 39.992,941063, , 4,13
10, , , | | ntoskrnl.exe!KeReleaseSpinLock, 40246, , 39.992,941063, , 4,13
11, , , | | ntoskrnl.exe!KiDpcInterrupt, 40246, , 39.992,941063, , 4,13
12, , , | | ntoskrnl.exe!KiDispatchInterruptContinue, 40246, , 39.992,941063, , 4,13
13, , , | | ntoskrnl.exe!KxRetireDpcList, 40246, , 39.992,941063, , 4,13
14, , , | | ntoskrnl.exe!KiRetireDpcList, 40246, , 39.992,941063, , 4,13
15, , , | | |- ntoskrnl.exe!KiExecuteAllDpcs, 40198, , 39.945,173325, , 4,13
16, , , | | | |- ACPI.sys!ACPIInterruptDispatchEventDpc, 27565, , 27.408,930428, , 2,83
17, , , | | | | |- ACPI.sys!ACPIGpeEnableDisableEvents, 24525, , 24.384,921620, , 2,52
18, , , | | | | | ACPI.sys!ACPIWriteGpeEnableRegister, 24525, , 24.384,921620, , 2,52
19, , , | | | | | |- hal.dll!HalpAcpiPmRegisterWrite, 24421, , 24.281,015516, , 2,51
20, , , | | | | | | |- hal.dll!HalpAcpiPmRegisterWritePort, 24166, , 24.027,316013, , 2,48
이것은 디버깅하기가 매우 어렵습니다. A의 시스 인 터널 주제 , 나는 몇 가지 조언을 나열 :
- CPU 팬의 먼지로 인해 CPU가 과열되지 않도록하십시오
- (동일한) BIOS / UEFI 업데이트 또는 다시 플래시
- 기본 BIOS / UEFI 설정로드
- 배터리가 손상되지 않았는지 확인하거나 노트북에서 배터리를 제거하거나 장치 관리자에서 배터리를 비활성화하십시오.
- DVD / Blue-Ray 드라이브를 캐디로 교체하여 기존 HDD 옆에 SSD를 설치 한 경우 HDD 캐디의 점퍼 변경
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/BEzrB.jpg)
다음 데모에서는 igdkmd64.sys
Intel HD 630 용 버전 .4574 의 Intel HD 드라이버 가 문제를 일으 킵니다.
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/m6c7a.png)
해결책은 .4590 이상의 버전 으로 드라이버 로 업데이트하는 것입니다.
다음과 같은 경우 SYSTEM 프로세스의 CPU 사용량은 드라이버로 인해 발생합니다. stdriverx64.sys
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/6nvDx.png)
이것은 오디오 스트리밍 드라이버 인 것 같습니다 . WPA에이 소프트웨어 / 드라이버가 있으면이를 업데이트하십시오.
risdxc64.sys
시스템의 콜 스택에서 높은 CPU 사용량을 유발 하는 드라이버가 표시 되면 Ricoh PCIe SDXC / MMC 호스트 컨트롤러 드라이버를 업데이트하거나 드라이버 업데이트가 없으면 장치 관리자에서 SD 카드 리더를 비활성화하십시오.
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/RSWLI.png)
이 SD 카드 리더는 많은 Lenovo 장치에 내장 된 것 같습니다.
사용자 @stevemidgley는 Wdf01000.sys!FxSystemWorkItem::_WorkItemThunk
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/ry4E6.png)
여기에서 드라이버 UDE.sys의 원인이됩니다.
심볼 허브에서
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/MMnLM.png)
모뎀 드라이버와 트레이스 쇼의 PNP 데이터 Fibocom L850-GL
(LTE 모뎀)가 가능한 장치 임을 알 수 있습니다.
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/k5pai.png)
해결책은 장치 관리자에서 모뎀 및 USB 복합 장치를 비활성화하는 것입니다.