어느 시점부터 내 시스템이 정지되고 있으며 이는 아마도 시스템 프로세스로 인해 발생하는 높은 CPU 사용량으로 인해 발생했을 가능성이 높습니다.
내가 실행 중인 모든 애플리케이션은 Skype, TeamSpeak 및 Chrome이므로 확실히 그 정도의 CPU를 먹어서는 안 됩니다.
아래 스크린샷에서 문제 자체와 실행 중인 프로세스를 볼 수 있습니다.
때로는 CPU 사용량이 90%에 도달하지만 평균 사용량은 40~65% 정도입니다.
내 PC 매개변수:
- Windows 8(고객 미리보기)
- 인텔 코어 i3 - 2350M
- 8GB RAM
도움을 주시면 감사하겠습니다! 문안 인사.
--업데이트--
아래 사용자가 훌륭한 답변을 게시한 것처럼 시스템에서 CPU를 가장 많이 소모하는 프로세스가 이라는 것을 알았습니다. Arthurx.sys
간단한 Google에서는 이것이 TPLink 드라이버(Wi-Fi 어댑터, 2주 전에 구입했습니다!)라고 알려줍니다. Windows MSDN에서 설치했지만 첨부된 CD에서 드라이버를 설치하려고 시도했지만 도움이 되지 않습니다. 시스템 시작 시 CPU 사용량은 5% 정도지만, 2~4시간 작업 후에는 CPU 사용량이 40~60%에 달합니다.
장치 이름:TPLink WN722N
답변1
소개
"시스템" 프로세스의 높은 CPU 사용량은 종종 하드웨어 드라이버 문제(버그, 이전 버전, 비호환성 등)로 인해 발생할 수 있습니다.
시스템 프로세스는 더 높은 수준의 메모리 액세스가 필요한 다양한 공급업체의 여러 하드웨어 드라이버를 로드(또는 호스팅)합니다. 이것이 특정 범인을 진단하는 데 아래 설명된 대로 약간의 조사 작업이 필요할 수 있는 이유입니다.
문제 진단
CPU 사용량 문제를 진단하려면 ETW(Windows용 이벤트 추적)를 사용하여 CPU 샘플링 데이터/프로필을 캡처해야 합니다.
데이터를 캡처하려면,Windows 성능 도구 키트 설치, 이는 다음의 일부입니다.윈도우 SDK.
Windows 10 WPT는 Windows 8/Server 2012, Windows 8.1/Server 2012R2 및 Windows 10/Server 2016에서 사용할 수 있습니다. Windows 7을 계속 사용하는 경우 다음을 사용하세요.빌드 15086을 사용한 SDK/WPT.
이제 실행하고 리소스 선택에서 WPRUI.exe
선택하세요 .First Level
CPU 사용량그리고를 클릭하세요시작.
이제 CPU 사용량을 1분 동안 캡처합니다. 1분 후 다음을 클릭하세요.구하다.
지금Windows 성능 분석기를 사용하여 생성된 ETL 파일을 분석합니다.CPU Usage (sampled)
그래프를 끌어다 놓고 analysis pane
그림에 표시된 대로 열의 순서를 지정하면 됩니다.
WPA 내부,디버그 기호 로드SYSTEM 프로세스의 Stack을 확장합니다. 이 데모에서 CPU 사용량은 nVIDIA 드라이버에서 비롯됩니다.
다음 데모에서는 Realtek NIC 드라이버에서 CPU 사용량을 가져옵니다.
다음과 같은 전화를 보면ntoskrnl.exe!바이KeTrimWorkerThreadRoutine, ntoskrnl.exe!음검증자TrimMemory, ntoskrnl.exe!검증자KeLeaveCriticalRegion, 이는 드라이버 확인 프로그램이 활성화되어 있음을 의미합니다. 이로 인해 성능이 크게 저하되고 시스템 사용량이 높아집니다.드라이버 검증 프로그램 비활성화그리고 재부팅하세요.
이 데모에서는 드라이버 iai2ce.sys
(Intel Serial IO GPIO 컨트롤러 드라이버)로 인해 다음이 발생합니다.
이 예에서 CPU 사용량은 rtsuvc.sys
다음과 같은 파일에서 발생합니다.Realtek UVC webcam Driver
이 데모는 Bitdefender 드라이버가ignis.sys
다음 예에서는 broadcom 네트워크 드라이버로 인해 CPU 사용량이 발생합니다.bcmwl664.sys
원인으로 보면 ntoskrnl.exe!MiZeroWorkerPages
더 까다롭습니다. 이는 메모리를 다시 사용하기 전에 메모리를 0으로 만드는 커널 기능으로 인해 CPU 사용량이 높아진다는 의미입니다.
어떤 프로세스가 문제를 일으키는지 확인할 수 있는 실제 방법은 없지만 Chrome에서 하드웨어 가속을 활성화한 경우 Chrome에서 문제를 일으킬 수 있다는 것을 알고 있습니다. 따라서 이 내용을 보고 Chrome을 사용한다면 Chrome에서 하드웨어 가속을 끄세요.
저것들을 보면ntoskrnl.exe!RtlpGenericRandomPatternWorker, ntoskrnl.exe!RtlpTestMemoryRandomUp전화
CPU 사용량은 메모리 문제를 테스트하기 위해 커널에서 가져옵니다(memtest). 이 사용은 Windows 8.1/10의 유휴 유지 관리 작업을 통해 트리거됩니다. 작업 스케줄러를 사용하여 유휴 작업을 비활성화할 수 있습니다.
Windows 10에서는 이 작업을 RunFullMemoryDiagnostics라고 합니다.Microsoft > Windows > MemoryDiagnostic > RunFullMemoryDiagnostic.
이 경우 CPU 사용량은 Windows Server의 Data Deduplication
기능( )에서 나오는 것으로 보입니다.dedup.sys!DdpPostCreate
이 데모에서는 WIFI 카드 드라이버로 인해 CPU 사용량이 발생합니다.athrx.sys
이 메시지가 나타나면 드라이버 업데이트를 검색하세요.
다음 데모에는 citrix 드라이버가 포함되어 있습니다.
따라서 Citrix 문제를 해결하는 방법은 IT 부서에 문의하세요.
이 데모에서는 이 함수로 usbhub.sys!UsbhPortRecycle
인해 CPU 사용량이 발생합니다.
USB2.0 포트를 1.1 속도로 변경또는 일부 사용자에게는 USB 드라이브를 다른 USB 2.0 포트에 연결하는 것이 도움이 되었습니다.
이 경우 Acronis 드라이버에서 소량의 SYSTEM 사용량이 발생합니다 tdrpm251.sys
.
이 데모에서는 CPU 사용량 ntoskrnl.exe!KeAcquireSpinLockRaiseToDpc
과 ntoskrnl.exe!KeReleaseSpinLock
.
그래서 운전자가 사용하고 있어요스핀락아주 무겁게. 문제를 일으키는 원인이 나타날 때까지 일부 장치/드라이버를 비활성화하십시오.
이 경우 드라이버로 인해 CPU 사용량이 발생합니다.L1C62x64.sys
이 사람은 qualcomm atheros AR8171/8175 PCI-E gigabit Ethernet
운전사입니다. 따라서 스택에 드라이버가 있으면 업데이트하십시오.
여기서 CPU 사용량은 호스트 파일(netbt.sys!DelayedScanLmHostFile)을 검색하여 발생합니다.
이러한 사용을 피하기 위해 호스트 파일이 너무 크지 않은지 확인하십시오.
이 경우 CPU 사용량은 SRTSP64.SYS
시만텍에서 가져옵니다.
중고 시만텍 제품을 최신 버전으로 업데이트하세요.
여기서 CPU 사용량은 AMD GPU 드라이버(atikmdag.sys)에서 비롯됩니다.
이 메시지가 표시되면 AMD 사이트로 이동하여 AMD 카드용 최신 드라이버를 다운로드하세요.
여기서 TMXPFlt.sys 및 VsapiNt.sys 드라이버는 높은 CPU 사용량을 유발합니다.
내가 보기에 해당 파일은 Trend Micro AV 제품군의 일부입니다. 도구를 업데이트하거나 제거하세요.
이 예에서 CPU 사용량은 다음 함수에서 비롯됩니다.ntoskrnl.exe!MmGetPageFileInformation
이 함수는 페이지 파일에 대한 정보를 가져옵니다.
루틴 설명: 이 루틴은 현재 활성화된 페이징 파일에 대한 정보를 반환합니다.
페이지 파일을 비활성화하고 재부팅한 후 다시 활성화하여 문제가 해결되는지 확인하세요. 또한 Intel 서비스 제거(예: Intel Content Protection HECI 서비스)사용자를 위해 수정한 것 같습니다..
여기서는 드라이버 Netwtw04.sys
(Intel Wifi 드라이버)가 함수를 호출하여 flushCompleteAllPendingFlushRequests
CPU 사용량이 높아지는 것을 확인할 수 있습니다.
디버그 기호가 로드되기 때문에 Windows 인박스 드라이버가 사용됩니다. 여기서만 함수 이름이 있는 호출 스택을 보기 위한 디버그 기호를 얻을 수 있습니다 flushCompleteAllPendingFlushRequests
.
여기서는Intel의 최신 드라이버를 설치하세요.그것을 해결하기 위해.
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
이는 디버깅하기가 매우 어렵습니다. 안에sysinternals 주제, 나는 몇 가지 조언을 나열했습니다.
- CPU 팬에 먼지가 쌓여 CPU가 과열되지 않도록 하세요.
- (동일한) BIOS/UEFI를 업데이트하거나 다시 플래시합니다.
- 기본 BIOS/UEFI 설정 로드
- 배터리가 손상되지 않았는지 확인하고 노트북에서 배터리를 제거하거나 장치 관리자에서 배터리를 비활성화하십시오.
- 점퍼 바꾸기 HDD 캐디에DVD/블루레이 드라이브를 캐디로 교체하여 기존 HDD 옆에 SSD를 설치한 경우
- 일부 장치 비활성화이 사용자의 조언대로
- Intel 칩셋을 사용하는 경우 설치해 보세요.Intel 빠른 스토리지 기술(RST)Windows의 표준 AHCI 드라이버를 교체합니다. 이거 역시도움이 된 것 같습니다.
- 사용자샤이나 알아 냈어, 그 사용프로세스 해커(관리자로 시작됨)ACPI.sys 문제의 스레드를 일시 중단하면 문제가 "수정"됩니다. 따라서 다른 모든 단계를 수행해도 문제가 해결되지 않으면 해결 방법을 시도해 보세요.
다음 데모에서는 igdkmd64.sys
Intel HD 630용 버전 .4574의 Intel HD 드라이버로 인해 문제가 발생합니다.
해결책은드라이버로 업데이트버전이 .4590 이상이어야 합니다.
다음 경우에는 SYSTEM 프로세스의 CPU 사용량이 드라이버에 의해 발생합니다.stdriverx64.sys
이것은 것 같습니다오디오 스트리밍 드라이버. 따라서 WPA에 이 내용이 표시되면 이 소프트웨어/드라이버를 업데이트하세요.
risdxc64.sys
높은 CPU 사용량을 유발하는 SYSTEM의 콜스택에서 호출된 드라이버가 있으면 업데이트하세요.Ricoh PCIe SDXC/MMC 호스트 컨트롤러드라이버 업데이트가 없으면 장치 관리자에서 SD 카드 리더를 비활성화하거나 비활성화하십시오.
이 SD 카드 리더는 많은 Lenovo 장치에 내장되어 있는 것 같습니다.
@stevemidgley 사용자는 CPU 사용량이 더 높은 새로운 문제를 보여주었습니다.Wdf01000.sys!FxSystemWorkItem::_WorkItemThunk
여기에서 이 문제를 일으키는 드라이버 UDE.sys를 볼 수 있습니다.
기호 허브에서
Fibocom L850-GL
가능한 장치로 추적 쇼(LTE 모뎀)의 PNP 데이터와 모뎀 드라이버에 속해 있음을 알 수 있습니다 .
그리고 해결책은 장치 관리자에서 모뎀과 USB 복합 장치를 비활성화하는 것입니다.
사용자@fajar다음과 같은 경우를 제공합니다:
여기에서는 CPU 사용량이 적지만 DPC/ISR 사용량으로 보기를 변경하면
avgNetHub.sys 드라이버로 인해 많은 DPC 사용량이 발생하는 것을 볼 수 있습니다.
이름은 이 드라이버가 AVG 바이러스 백신 소프트웨어의 일부임을 나타냅니다. 따라서 추적에 이 내용이 표시되면 소프트웨어를 업데이트하거나 제거하십시오.
답변2
이는 결함이 있는 드라이버나 시스템에 로드된 다른 모듈로 인해 발생할 수 있습니다. 시스템 프로세스 내부를 보려면 다음과 같은 도구를 사용할 수 있습니다.프로세스 탐색기.
다운로드하여 실행한 다음 시스템 프로세스를 선택하고 마우스 오른쪽 버튼을 클릭한 후 속성을 선택합니다.
스레드 탭으로 전환합니다(기호가 언급된 대화 상자 무시).
이렇게 하면 과도한 CPU 사용량을 사용하고 있는 파일이 표시되며 이를 통해 진단을 시도할 수 있습니다.
그러나 다른 사람들이 댓글에서 말했듯이, 가능한 한 빨리 미리보기 버전에서 벗어나야 합니다!
답변3
추가할 디버깅 기호 로드에 대한 참고 사항Magicandre1981의 훌륭한 답변: Windows 성능 분석기에서 기호 로드가 올바르게 작동하는지 확인 후추적 > 기호 로드상단에 진행률 표시줄이 표시되어야 합니다.기호 로드 중옆에 파일 이름이 표시되며 완료하는 데 몇 분이 걸립니다. 또한 진단 콘솔에 아래와 같은 줄이 많이 표시되어야 합니다.
SYMSRV: File: Accessibility.ni.pdb
SYMSRV: Notifies the client application that a proxy has been detected.
SYMSRV: Connecting to the Server: http://msdl.microsoft.com/download/symbols.
SYMSRV: Successfully connected to the Server.
SYMSRV: Sending the information request to the server.
SYMSRV: Successfully sent the information request to the server.
SYMSRV: Waiting for the server to respond to a request.
SYMSRV: Successfully received a response from the server.
SYMSRV: Closing the connection to the Server.
SYMSRV: Successfully closed the connection to the Server.
SYMSRV: Get File Path: /download/symbols/Accessibility.ni.pdb/7B46178957827CDAB7EE4C86EDEE1DAE1/Accessibility.ni.pdb
둘 중 하나도 표시되지 않으면 디버그 기호 로드가 작동하지 않았을 가능성이 높으며 추적을 제대로 해석할 수 없습니다.
내 경우에는 처음에 디버그 기호를 로드하는 것이 작동하지 않았습니다. 나는 다음과 같이 그것을 고쳤다이 지침:
Windows Performance Toolkit의 x86 또는 x64 버전을 사용하고 있는지 알아보세요.
Windows의 x86 빌드에서는 쉽습니다. x64 빌드에서는 작업 관리자에서 *32 태그를 확인할 수 있습니다. 거기에 없으면 x64 버전을 실행하고 있는 것입니다.
WPT는 아키텍처에 관계없이 항상 Program Files(x86)에 설치됩니다.
dbghelp.dll
올바른 디버거 디렉터리의 및symsrv.dll
파일을 Windows Performance Toolkit 디렉터리로 복사합니다 . 내 시스템에서 관련 디렉토리는 다음과 같습니다.
C:\Program Files (x86)\Windows Kits\10\Debuggers\x64
그리고C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit
올바른 버전의 dbghelp.dll이 선택되도록 Windows 성능 분석기를 다시 시작하십시오.
답변4
답변님이 추가함@magicandre1981어떤 문제를 해결하는 열쇠입니다. 내 사례는 거기에 나열되지 않았지만 The most complicated case of SYSTEM usage is ACPI.sys usage in the callstack:
섹션 아래에 설명된 스택에서 비슷한 단어를 발견했습니다. 제 경우에는 Intel Rapid Storage
드라이버 설치가 도움이 되었습니다. 이 드라이버 없이 CPU 문제 없이 모두가 오랜 시간 동안 작동하는 한 나는 이것을 기대하지 않았습니다. 나는 여기에 내 스택을 넣었습니다. 아마도 누군가 비슷한 키워드로 이 답변을 찾을 것입니다.
Line #, Process, Stack, Count, Weight (in view) (ms), TimeStamp (s), % Weight
3, , [Root], 45104, 45,300.439000, , 16.21
4, , ntoskrnl.exe!KiStartSystemThread, 45104, 45,300.439000, , 16.21
5, , ntoskrnl.exe!PspSystemThreadStartup, 45104, 45,300.439000, , 16.21
6, , |- ntoskrnl.exe!SMKM_STORE_MGR<SM_TRAITS>::SmCompressCtxWorkerThread, 38830, 38,997.540000, , 13.95
7, , | |- ntoskrnl.exe!SMKM_STORE_MGR<SM_TRAITS>::SmCompressCtxProcessEntry, 38708, 38,874.943400, , 13.91
8, , | | |- ntoskrnl.exe!memcpy, 33888, 34,032.390100, , 12.18
9, , | | | |- ntoskrnl.exe!memcpy<itself>, 33655, 33,795.069100, , 12.09
10, , | | | |- ntoskrnl.exe!KiDpcInterrupt, 228, 232.331300, , 0.08
11, , | | | |- ntoskrnl.exe!KiInterruptDispatchNoLockNoEtw, 4, 3.989700, , 0.00
12, , | | | |- ntoskrnl.exe!KiInterruptDispatch, 1, 1.000000, , 0.00
13, , | | |- ntoskrnl.exe!RtlCompressBuffer, 2571, 2,585.541600, , 0.93
14, , | | |- ntoskrnl.exe!SMKM_STORE_MGR<SM_TRAITS>::SmCompressCtxProcessReadyQueue, 2015, 2,022.554900, , 0.72
15, , | | |- ntoskrnl.exe!MmBuildMdlForNonPagedPool, 129, 129.294600, , 0.05
16, , | | |- ntoskrnl.exe!SMKM_STORE_MGR<SM_TRAITS>::SmCompressCtxProcessEntry<itself>, 63, 62.901700, , 0.02
17, , | | |- ntoskrnl.exe!ExAcquireSpinLockExclusive, 31, 31.208200, , 0.01
18, , | | |- ntoskrnl.exe!MetroHash64::Hash, 10, 10.033100, , 0.00
19, , | | |- ntoskrnl.exe!KiDpcInterrupt, 1, 1.019200, , 0.00
20, , | |- ntoskrnl.exe!SMKM_STORE_MGR<SM_TRAITS>::SmCompressCtxWorkerThread<itself>, 78, 78.477100, , 0.03
21, , | |- ntoskrnl.exe!ExAcquireSpinLockExclusive, 39, 39.068100, , 0.01
22, , | |- ntoskrnl.exe!KeWaitForSingleObject, 5, 5.051400, , 0.00
23, , |- ntoskrnl.exe!SMKM_STORE<SM_TRAITS>::SmStWorkerThread, 5420, 5,445.923200, , 1.95
24, , |- ntoskrnl.exe!SmKmStoreHelperWorker, 495, 496.265200, , 0.18
25, , |- ntoskrnl.exe!SMKM_STORE<SM_TRAITS>::SmStReadThread, 359, 360.710600, , 0.13
26, , n/a, 16760, 16,773.871200, , 6.00
업데이트:불행하게도 문제가 다시 발생했습니다. 다시 시작한 후 PC는 한동안 잘 작동하지만 동일한 스택에서 동일한 CPU 누수가 나타납니다.