"시스템"프로세스에 의한 높은 CPU 사용량 문제 해결


97

어느 정도 시간이 지나면 시스템이 정지되고 시스템 프로세스로 인해 CPU 사용량이 높을 수 있습니다.

내가 실행중인 모든 응용 프로그램은 Skype, TeamSpeak 및 Chrome이므로 그 정도의 CPU를 먹어서는 안됩니다.

아래 스크린 샷에서 문제 자체와 실행중인 프로세스를 볼 수 있습니다.

여기에 이미지 설명을 입력하십시오

때때로 CPU 사용량은 90 %에 도달하지만 평균 사용량은 40-65 %입니다.

내 PC 매개 변수 :

  • Windows 8 (고객 미리보기)
  • 인텔 코어 i3-2350M
  • 8GB RAM

도움을 주셔서 감사합니다! 문안 인사.

--최신 정보--

아래의 사용자가 큰 대답을 게시했을 때 시스템에서 가장 많은 CPU를 사용하는 프로세스 Arthurx.sys가라고 불리는 것을 알았습니다. 간단한 Google은 TPLink 드라이버 (WiFi 어댑터, 2 주 전에 구입했습니다!) 드라이버라고 알려줍니다 Windows MSDN에서 설치되었지만 첨부 된 CD에서 드라이버를 설치하려고했지만 도움이되지 않습니다. 시스템 시작부터 CPU의 5 % 만 사용하지만 2-4 시간 작업 한 후에는 CPU 사용량의 40-60 %에 도달합니다.

장치 이름: TPLink WN722N


5
주문 시점, 고객 미리보기를 실행하면 모든 것이 최신 상태가 아닙니다 ... 고객 미리보기를 실행하고 있습니다.
Everett

@Everett Yea, 아마도 당신이 옳을 것입니다 ...하지만 고객 (또는 릴리스) 미리보기가 있어도 여전히 발생해서는 안됩니다.
Scott

4
@Scott 예, 이런 종류의 일을 해야 고객의 미리보기에서 발생합니다. 물론, 그러한 버그가 처음에는 존재하지 않는 것이 더 좋지만, 이것은 미리보기가 의도 한 것 중 하나입니다. 사용자는 새로운 기능과 사용자 인터페이스 요소를 조금 일찍 볼 수 있고 앱 호환성을 확인할 수있을뿐만 아니라 개발자 팀이 피드백을 받고 더 많은 사용자로부터 버그를 찾을 수 있습니다. 핵심 시스템은 아직 프로덕션 환경에서 사용할 준비가되지 않았습니다 . 완전히 수행되거나 디버깅되지 않았기 때문에 기본 시스템으로 사용하기위한 것이 아닙니다. 만약 그렇다면, RTM과 함께 갈 것입니다.
Joel Coehoorn

1
xperf를 사용하여 추적하십시오. 그러나 다른 사용자가 말했듯이 CP 사용을 중지하십시오. 모든 시험판 버전은 2 주 후에 만료됩니다!
magicandre1981

1
이 문제가 Windows 8 RTM 버전에 존재하는지 확인하는 경우 도움이 될 수있는 유일한 방법은 다른 사람이 Preview 릴리스에 존재하는 문제에 대해 도움을 줄 수는 없다는 것입니다. 미리보기 버전을 사용하여 태그를 업데이트했습니다.
Ramhound

답변:


90

드라이버가 잘못되었거나 시스템에서로드 한 다른 모듈로 인해 발생할 수 있습니다. 시스템 프로세스 내부를 살펴 보려면 Process Explorer 와 같은 도구를 사용할 수 있습니다 .

다운로드하여 실행 한 다음 시스템 프로세스를 선택하고 마우스 오른쪽 단추를 클릭 한 후 특성을 선택하십시오.

여기에 이미지 설명을 입력하십시오

스레드 탭으로 전환하십시오 (기호를 언급하는 대화 상자는 무시하십시오).

여기에 이미지 설명을 입력하십시오

CPU 사용률이 높은 파일이 표시되면 진단을 시도 할 수 있습니다.

그러나 다른 사람들이 의견에서 말했듯이 가능한 한 빨리 미리보기 버전에서 벗어나야합니다!


답변 주셔서 감사합니다. 업데이트 된 질문을 참조하십시오.
Scott

2
@Scott 나는 당신이 지금 업그레이드하고 있음을 알았습니다. 그 후에도이 문제가 해결되지 않으면 TPLink의 사이트에 베타 Windows 8 드라이버가있는 것입니다. 그것은 여기에서 찾을 수 있습니다 : tp-link.com/en/support/download/...을
그레이엄 내기를

2
여기에 예를 카드 리더 용 드라이버입니다 씽크 패드 노트북과 함께 평소 용의자를 볼 수있다 risdxc64.sys을 보인다 forums.lenovo.com/t5/ThinkPad-X-Series-Laptops/... - 나는 최신 다시 설치하여 그것을 해결 10 승 1 패
patrickf

Windows 10에서도 비슷한 문제가 발생했습니다. 나에게는 많은 CPU를 사용하는 것이 avc3.sys였습니다. Bitdefender Antivirus Free의 일부로 밝혀졌습니다.
Bruno

2
@Legends 잘못된 도구를 사용했습니다. ProcExp는 도움이되지 않는 shapshot을 보여줍니다. CPU 성능 을 분석하는 방법을 자세하게 보여주기 위해 Windows Performance Toolkit대한 답변을 작성 했습니다
magicandre1981

89

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

여기에 이미지 설명을 입력하십시오

이제 1 분의 CPU 사용량을 캡처하십시오. 1 분 후 저장을 클릭 하십시오 .

이제 그래프를 끌어다 놓은 다음 그림과 같이 열을 정렬하여 Windows 성능 분석기생성 된 ETL 파일을 분석 하십시오.CPU Usage (sampled)analysis pane

여기에 이미지 설명을 입력하십시오

WPA 내부 에서 디버그 기호를로드 하고 SYSTEM 프로세스의 스택을 펼치십시오. 이 데모에서는 CPU 사용량이 nVIDIA 드라이버에서 제공됩니다.


다음 데모에서는 CPU 사용량이 Realtek NIC 드라이버에서 제공됩니다.

여기에 이미지 설명을 입력하십시오


ntoskrnl.exe 와 같은 호출을 볼 때 ! Vi KeTrimWorkerThreadRoutine, ntoskrnl.exe! Mm Verifier TrimMemory, ntoskrnl.exe! Verifier KeLeaveCriticalRegion , 이것은 Driver Verifier가 활성화되었음을 의미합니다. 또한 성능이 많이 저하되고 높은 시스템 사용량이 발생합니다. Driver Verifier를 비활성화 하고 재부팅하십시오.

여기에 이미지 설명을 입력하십시오


이 데모에서는 드라이버 iai2ce.sys(Intel Serial IO GPIO Controller 드라이버)가 다음을 수행합니다.

여기에 이미지 설명을 입력하십시오


이 예에서, 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에서는이 작업을 Microsoft> Windows> MemoryDiagnostic> RunFullMemoryDiagnostic에서 RunFullMemoryDiagnostics라고 합니다.

여기에 이미지 설명을 입력하십시오


이 경우 CPU 사용량 은 Windows Server 의 Data Deduplication기능 ( dedup.sys!DdpPostCreate) 에서 비롯된 것 같습니다 .

여기에 이미지 설명을 입력하십시오


이 데모에서 CPU 사용량은 WIFI 카드 드라이버로 인해 발생합니다 athrx.sys

여기에 이미지 설명을 입력하십시오

이 드라이버 업데이트가 있으면 검색하십시오.


다음 데모에서는 citrix 드라이버가 사용됩니다.

여기에 이미지 설명을 입력하십시오

따라서 Citrix 문제를 해결하는 방법에 대해서는 IT 부서에 문의하십시오.


이 데모에서이 함수 usbhub.sys!UsbhPortRecycle는 CPU 사용을 유발합니다.

여기에 이미지 설명을 입력하십시오

USB2.0 포트를 1.1 속도로 변경 하거나 USB 드라이브를 다른 USB 2.0 포트에 연결하면 일부 사용자에게 도움이되었습니다.


이 경우 소량의 SYSTEM 사용량이 Acronis 드라이버에서 제공됩니다 tdrpm251.sys.

여기에 이미지 설명을 입력하십시오


이 데모에서는 CPU 사용량 ntoskrnl.exe!KeAcquireSpinLockRaiseToDpcntoskrnl.exe!KeReleaseSpinLock.

여기에 이미지 설명을 입력하십시오

그래서 드라이버는 SpinLocks를 매우 많이 사용 하고 있습니다. 원인이 될 때까지 일부 장치 / 드라이버를 비활성화하십시오.


이 경우 CPU 사용은 드라이버에 의해 발생합니다 L1C62x64.sys

여기에 이미지 설명을 입력하십시오

이것은 qualcomm atheros AR8171/8175 PCI-E gigabit Ethernet드라이버입니다. 따라서 스택에 드라이버가 있으면 업데이트하십시오.


여기서 CPU 사용량은 호스트 파일 (netbt.sys! DelayedScanLmHostFile)을 스캔하여 발생합니다.

여기에 이미지 설명을 입력하십시오

이 사용을 피하기 위해 호스트 파일이 너무 크지 않은지 확인하십시오.


이 경우 CPU 사용은 SRTSP64.SYSsymantec에서 나옵니다 .

여기에 이미지 설명을 입력하십시오

사용 된 symantec 제품을 최신 버전으로 업데이트하십시오.


여기서 CPU 사용량은 AMD GPU 드라이버 (atikmdag.sys)에서 제공됩니다.

여기에 이미지 설명을 입력하십시오

이 메시지가 나타나면 AMD 사이트로 이동하여 AMD 카드의 최신 드라이버를 구하십시오.


여기서 드라이버 TMXPFlt.sys 및 VsapiNt.sys는 높은 CPU 사용량을 유발합니다.

여기에 이미지 설명을 입력하십시오

내가 본 것에서이 파일은 Trend Micro AV 제품군의 일부입니다. 도구를 업데이트하거나 제거하십시오.


이 예에서 CPU 사용량은 함수에서 비롯됩니다. ntoskrnl.exe!MmGetPageFileInformation

여기에 이미지 설명을 입력하십시오

이 함수는 페이지 파일에 대한 정보를 얻습니다.

루틴 설명 :이 루틴은 현재 활성화 된 페이징 파일에 대한 정보를 반환합니다.

페이지 파일을 비활성화하고 다시 부팅 한 다음 다시 활성화하여 문제가 해결되는지 확인하십시오. 또한 인텔 서비스 (예 : 인텔 콘텐츠 보호 HECI 서비스) 를 제거하면 사용자를 위해 수정 된 것으로 보입니다 .


여기서 드라이버 Netwtw04.sys(Intel Wifi 드라이버)가 함수를 호출하면 flushCompleteAllPendingFlushRequestsCPU 사용량이 높아지는 것을 알 수 있습니다.

여기에 이미지 설명을 입력하십시오

디버그 기호가로드되기 때문에 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 캐디의 점퍼 변경

여기에 이미지 설명을 입력하십시오


다음 데모에서는 igdkmd64.sysIntel HD 630 용 버전 .4574 의 Intel HD 드라이버 가 문제를 일으 킵니다.

여기에 이미지 설명을 입력하십시오

해결책은 .4590 이상의 버전 으로 드라이버업데이트하는 것입니다.


다음과 같은 경우 SYSTEM 프로세스의 CPU 사용량은 드라이버로 인해 발생합니다. stdriverx64.sys

여기에 이미지 설명을 입력하십시오

이것은 오디오 스트리밍 드라이버 인 것 같습니다 . WPA에이 소프트웨어 / 드라이버가 있으면이를 업데이트하십시오.


risdxc64.sys시스템의 콜 스택에서 높은 CPU 사용량을 유발 하는 드라이버가 표시 되면 Ricoh PCIe SDXC / MMC 호스트 컨트롤러 드라이버를 업데이트하거나 드라이버 업데이트가 없으면 장치 관리자에서 SD 카드 리더를 비활성화하십시오.

여기에 이미지 설명을 입력하십시오

이 SD 카드 리더는 많은 Lenovo 장치에 내장 된 것 같습니다.


사용자 @stevemidgley는 Wdf01000.sys!FxSystemWorkItem::_WorkItemThunk

여기에 이미지 설명을 입력하십시오

여기에서 드라이버 UDE.sys의 원인이됩니다.

심볼 허브에서

여기에 이미지 설명을 입력하십시오

모뎀 드라이버와 트레이스 쇼의 PNP 데이터 Fibocom L850-GL(LTE 모뎀)가 가능한 장치 임을 알 수 있습니다.

여기에 이미지 설명을 입력하십시오

해결책은 장치 관리자에서 모뎀 및 USB 복합 장치를 비활성화하는 것입니다.



6
좋은!!! +1 .... Shizzle의 경우
Pimp Juice IT

1
@stevemidgley FxUsbPipeRequestWorkItemThunk는 데이터를 처리합니다. 스택을 더 확장하십시오. 또한 ETL 파일을 공유하십시오. USB Composite Device는 데이터를 전송하기 위해 전화를 연결할 때 스마트 폰 드라이버가 될 수 있습니다.
magicandre1981

1
@stevemidgley는 USB 장치를 활성화하고 추적을 캡처하므로 자세한 내용을 보려면 ETL 파일이 필요합니다.
magicandre1981

1
원시 USB 데이터 인 @ stevemidgley, 위의 답변에서 추적 CPU 사용 추적이 필요합니다.
magicandre1981

1
@stevemidgley 좋아, 드라이버 UDE.sys가 원인 인 것처럼 보입니다. 그리고 내가 본 것에서 그것은 LTE 모듈 인 Fibocom L850-GL에 속합니다.
magicandre1981

4

magicandre1981의 훌륭한 답변 에 추가하기 위해 디버깅 기호를로드하는 것에 대한 참고 사항 : Windows Performance Analyzer에서 기호를 올바르게로드하는 경우 Trace> Load Symbols 를 선택한 후 상단에 로드 기호 가 있는 진행률 표시 줄에 파일 이름이 표시되고 완료하는 데 몇 분이 걸립니다. 또한 진단 콘솔에 다음과 같은 여러 줄이 표시됩니다.

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

둘 중 하나라도 표시되지 않으면 디버그 기호로드가 작동하지 않았을 가능성이 있으며 추적을 제대로 해석 할 수 없습니다.

필자의 경우 처음에는 디버그 기호를로드하지 못했습니다. 다음 지침 에 따라 수정했습니다 .

  1. x86 또는 x64 버전의 Windows Performance Toolkit을 사용 중인지 확인하십시오.

    이것은 x86의 Windows 빌드에서 쉽습니다. x64 빌드에서 작업 관리자에 * 32 태그가 있는지 확인할 수 있습니다. 없는 경우 x64 버전을 실행하고있는 것입니다.

    WPT는 아키텍처와 상관없이 항상 프로그램 파일 (x86)에 설치됩니다.

  2. 올바른 디버거 디렉토리에서 Windows Performance Toolkit 디렉토리로 dbghelp.dllsymsrv.dll파일을 복사하십시오 . 내 시스템에서 관련 디렉토리는 다음과 같습니다.

    C:\Program Files (x86)\Windows Kits\10\Debuggers\x64C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit

  3. dbghelp.dll의 올바른 버전이 선택되도록 Windows 성능 분석기를 다시 시작하십시오.


2
내 답변에 이것을 편집으로 추가해야합니다. 이것은 실제 답변이 아닙니다
magicandre1981

0

첫째, 제공된 검토 및 정보는 매우 유익하지만 일반적으로 훨씬 적은 지능으로이를 파악할 수 있습니다! MSCOFIG.EXE와 이진 검색을 사용하여 문제가있는 서비스를 격리했습니다. 이와 같은 대부분의 문제는 인텔 소프트웨어에 의한 것으로 나타났습니다. 회사 이름이없는 서비스를 비활성화하여 시작합니다. 그런 다음 인텔 서비스를 시작합니다. 그런 다음 전체 이진 검색. 대개 누군가의 PC에서 문제를 해결하는 데 최대 1 시간이 걸립니다. 인텔은 결코 좋은 컴퓨터 회사가 아니었고, 그들의 소프트웨어가 그것을 보여줍니다. Pentium 아키텍처는 10 년 전에 출시되었습니다. VAX 시대에 누가 페이징 메모리로 컴퓨터 아키텍처를 구축했을까요? 글쎄, 나는 역사와 함께 당신을 지루하지 않습니다. 나도 AMD 나 마이크로 소프트의 팬이 아닙니다. 아마도 언젠가 우리는


VAX는 페이징 된 메모리를 사용한다는 것을 알고 있습니까? 그리고 왜 오늘 메모리를 사용하지 않습니까?
Jamie Hanrahan

-1

같은 문제가 발생하여 RAM 모듈 중 하나를 제거하면 사라졌습니다. 결함이있는 것 같습니다. Windows 7, 32 비트 실행

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