Windows 10에서 '시스템 및 압축 메모리'의 CPU 사용률이 높은 원인은 무엇입니까?


39

24G 메모리를 사용하고 2.5G를 사용하는 랩톱에서 Windows 10을 관찰해야합니다. '메모리 압력'이 없습니다. 다른 질문은 메모리 소비를 살펴 보았습니다 (여기에서는 문제가되지 않습니다). 여기 및 다른 곳의 모든 관련 질문에서 Windows 10 업데이트 중 하나가 지난 후 지난 한 달 또는 두 달 동안이 과도한 CPU 사용 문제에 대한 적절한 설명을 찾지 못했습니다.

이 서비스 나 프로세스에 가치가 있다는 것을 인정할 수 있지만 지속적으로 실행하고 추가 CPU 리소스를 사용하기 때문에 배터리 전원을 덜 효율적으로 사용하면 해결하려는 문제입니다.

이 사이트의 일부 기사에서는 SuperFetch를 끄고 PrefetchParameters의 레지스트리 항목을 0으로 설정하도록 제안했습니다. 둘 다 수행하고 재부팅을 수행했습니다.

컴퓨터를 재부팅하고 화면 보호기를 끄고 작업 관리자를 시작합니다. 몇 분 후 '시스템 및 압축 메모리'로 표시된 서비스가 CPU의 5 %를 일관되게 사용하기 시작합니다. 기본 CPU 사용률이 1 % 일 수 있으며 팬을 낮게 유지합니다. 그러나 '시스템 및 압축 메모리'서비스가 5 %로 실행되면 팬이 증가합니다. 그리고 계속 달려라.

어리 석음. 왜 메모리 부족없이 해당 서비스를 일관되게 실행해야합니까? 전원을 끄거나 실제로 수행중인 작업을 결정하기위한 추가 메커니즘이 있습니까? 어딘가에 파일 항목이 기록됩니까? 아니면 심층적 인 진단 도구입니까?

how-to-disable-windows-10-memory-compression- 실제 답변이 없습니다.

windows-10- 시스템-프로세스-태킹-대량-램

17993-windows-10- 메모리 압축

데스크톱 빌드 10525 및 Windows 10 메모리

www.techish.net/system-and-compressed-memory/

windows-10-build-1511- 과열 CPU 팬-항상

Windows Performance Recorder- 이제 정보 해석 방법에 대한 정보 링크가 필요합니다

스크럽 유지 보수


1
예, 메모리가 충분할 때 Windows가 페이지 파일을 사용하는 이유를 이해하지 못했습니다. 페이지 파일을 사용하지 않도록 설정하면 문제가 해결 될 수 있습니다.
Moab


@Moab : Windows가 "메모리가 충분할 때 페이지 파일을 사용"한다는 인식은 Windows XP의 작업 관리자의 잘못된 레이블에서 비롯된 것입니다. "충전을 커밋"했을 때 "PF 사용"이라는 레이블이 붙습니다. PerfMon을 사용하여 실제 페이지 파일 사용량을 검사하면 일반적으로 예상보다 훨씬 작습니다.
Jamie Hanrahan

2
CPU 사용량의 추적을 캡처합니다. Win10 SDK에서 WPT를 설치하십시오 : dev.windows.com/en-us/downloads/windows-10-sdk, WPRUI.exe 실행, CPU, 디스크, VirtualAlloc, ResidentSet 선택 및 1-2 분의 시스템 사용량 캡처 및 저장 ETL 파일로. ETL + NGENPDB 폴더를 7z / RAR 파일로 압축하고 압축 파일을 OneDrive에 업로드하고 공유 링크를 작성하고 여기에 공유 링크를 게시하십시오
magicandre1981

@ magicandre1981 : 가능한 방법론을 제공해 주셔서 감사합니다. 파일은 oneunified.net/files/rpb.20160102.WPR.7z 에서 찾을 수 있습니다 . 무언가가 보이면 방법론을 게시 할 수 있습니까? 다른 많은 게시물 이이 기술을 사용할 수 있다고 확신합니다. ... 다시 고맙습니다.
Raymond Burkholder

답변:


26

WPA를 사용하여 ETL 파일을 분석하면 CPU 사용량이 시스템 메모리 압축에서 나오지 않음을 알 수 있습니다. 그것은에서 온다 ntoskrnl.exe!MiScrubMemoryWorker:

Line #, DPC/ISR, Process, Stack Tag, Stack, Count, TimeStamp (s), % Weight
8, , , ,    |    |    |- ntoskrnl.exe!MiScrubMemoryWorker, 79667, , 12,45
9, , , ,    |    |    |    ntoskrnl.exe!MiScrubNode, 79667, , 12,45
10, , , ,   |    |    |    ntoskrnl.exe!MiScrubNodeLargePages, 79667, , 12,45
11, , , ,   |    |    |    ntoskrnl.exe!MiScrubNodeLargePageList, 79667, , 12,45
12, , , ,   |    |    |    |- ntoskrnl.exe!MiScrubPage, 79663, , 12,45
13, , , ,   |    |    |    |    |- ntoskrnl.exe!RtlScrubMemory, 79653, , 12,45
14, , , ,   |    |    |    |    |    |- ntoskrnl.exe!RtlpGenericRandomPatternWorker, 38549, , 6,02

일부 패턴을 채우거나 읽어 메모리에 오류가 있는지 테스트하는 기능입니다 ( ntoskrnl.exe!RtlpGenericRandomPatternWorker).

이것은 의도적으로 설계된 것으로 장치가 유휴 상태 일 때 유휴 유지 관리 작업이 시작될 때 발생합니다.


고마워 그것은 활동에 약간의 빛을 비춘다. 이제 유휴 상태라는 단어를 언급 했으므로 두 가지 의견을 제시 할 수 있습니다. 1) 평가 한 ETI 파일은 콘솔에서 활성화되어있는 동안 만들어졌으며 CPU는 '시스템 및 압축 메모리'에 대해 약 10 % ~ 15 %로 끝났습니다. 그래서 나는 어떤 종류의 활동을 포착 할 수있었습니다. 그리고 유휴 유지 관리로 평가했습니다. 2) 다음 코멘트에서 ...
Raymond Burkholder

10
종료를 위해 Win 10에서 시작-> 제어판-> 관리 도구-> 작업 스케줄러 작업 스케줄러 라이브러리-> Microsoft-> ​​Windows-> 메모리 진단으로 이동했습니다. 작업 실행은 로그 이벤트에 따라 달라질 수 있습니다. 그들이 존재 해야하는지, 로그에 들어갈 때 트리거되는지 확실하지 않습니다. RunFullMemoryDiagnosticEntry를 비활성화했습니다. 몇 분 지연된 후 5 %에서 12 %의 사용률을 더 이상 볼 수 없습니다. 작업 속성의 설정 탭에서 자주 실행되지 않는 항목을 조정할 수 있습니다. .... 다른 시간 테스트.
Raymond Burkholder 4

2
문제가 해결되었다는 소식을 들었습니다.
magicandre1981

1
주석에 추가하기 위해 RunFullMemoryDiagnostic 및 ProcessMemoryDiagnosticEvents라는 두 가지 작업이 정의되어 있습니다. 가장 중요한 것은 두 번째 작업입니다. "로그 : 시스템, 소스 : 응용 프로그램 팝업", "로그 : 응용 프로그램, 소스 : 응용 프로그램 오류"및 나머지 2 개의 트리거가 활성화되었습니다. 2 트리거를 비활성화하면 문제가 해결되었습니다. 문제는 이벤트 로그에 쓰기를 개발하는 일부 앱 오류로 인해 메모리 검사가 발생한다는 것입니다. 나머지 두 개의 트리거는 시스템과 완전히 관련되어 있으므로 비활성화하지 않는 것이 좋습니다.
zihotki

3
좋아, 트롤은 그것을 거절했다. 그렇습니다. xperf / WPR / WPA는 500 레벨 전문가입니다. 교육을받지 않은 바보 트롤 facepalm
magicandre1981

9

먼저. CPU 사용량 : "시스템 및 압축 메모리"프로세스 (서비스가 아님)는 많은 기능을 수행합니다. CPU 시간을 사용한다고해서 메모리 내용을 압축하는 작업을하는 것은 아닙니다. 알아 보려면 프로세스 탐색기를 사용하여 CPU 시간을 사용중인 프로세스에서 스레드 함수의 이름을 찾으십시오. 이 답변에 설명 대로이를 수행하려면 프로세스 탐색기에서 기호를 구성해야합니다 .

압축되고있는 메모리는

  • 프로세스의 개인 작업 세트의 일부 (즉, 다른 프로세스와 공유) 과
  • 그 과정에서 수정; 과
  • 페이지 교체로 인해 프로세스에서 손실 된 후 수정 된 페이지 목록에 추가됩니다. (이 알고리즘은 Windows 10에서 실질적으로 변경되지 않았습니다. 더 이상 페이지를 교체하지 않아도됩니다.)

이제 ... 페이지 파일이 없으면 수정 된 페이지 목록에 그대로 유지됩니다 (프로세스가 끝날 때까지). (참고 : 페이지 파일을 비활성화해도 지금까지 설명한 동작은 변경되지 않습니다.)

페이지 파일이있는 경우 (물론 권장) Windows 10과 이전 버전간에 동작이 다릅니다.

  • Windows 10 이전에는 페이지 파일에 곧 작성되었으며 실제 페이지는 대기 페이지 목록으로 이동했습니다. 이것은 시스템 프로세스에서 "수정 된 페이지 작성기"스레드에 의해 수행됩니다.

  • Windows 10에서는 처음 압축 (이전의 절반 정도 사용)하여 시스템 프로세스의 사용자 모드 주소 공간 (현재 "시스템 및 압축 메모리")에 보관됩니다. 메모리를 확보하는 데 필요한 경우 페이지 파일에 기록하여 다른 용도로 해제 할 수 있습니다. 공간 압축의 이점은 페이지 파일 공간 및 I / O 시간에도 적용됩니다.

실제로 이것은 좋은 것입니다. 그러나 Windows 10 이전에는 시스템 프로세스에서 사용 된 추가 메모리가 수정 된 페이지 목록 또는 대기 목록에 약 2 배가되었을 것입니다. 확실히 이전보다 더 많은 공간을 차지하지 않을 것입니다.

내 최근 테스트에 따라 페이지 파일을 제거 하여이 메커니즘을 비활성화 할 수 있지만 페이지 교체 동작에는 영향을 미치지 않습니다. 프로세스에서 푸시 된 수정 된 개인 페이지는 단순히 다른 용도로 사용하기에 적합하지 않으며 시스템 프로세스에있는 대신 메모리 (약 2 배)가 MPL에 저장됩니다.


프로세스 탐색기에서 디버그 기호가로드되지 않으면 ntoskrnl.exe! CcCopyWriteWontFlush + 0xb50 기호가 표시됩니다. 12.5 %의 CPU를 요구하는 12 개의 인스턴스가 있습니다. 시스템 프로세스에 속합니다.
Raymond Burkholder

@RaymondBurkholder 스레드 스택을 보면 더 많은 정보를 얻을 수 있습니다.
Daniel B

@DanielB : 예, 프로세스 탐색기의 PID 4에서 시스템 프로세스의 속성을 보면 팝업의 스레드 탭에있었습니다. 설명 : 스택 버튼에는 아무것도 표시되지 않지만 모듈 버튼은 2015-11-22 일자 ntkmlmp.exe 파일에 있음을 나타냅니다. 내가 생각하는 것은이 여분의 CPU가 시작된 대략적인 날짜입니다.
Raymond Burkholder

Windows 업데이트가이 파일에 마지막으로 영향을 준 날짜입니다. 결국 시스템 구성 요소입니다.
Daniel B

@RaymondBurkholder 심볼이 구성되지 않은 "StartAddress"디스플레이는 유용하지 않습니다. 심볼 이름 (예 : "CcCopyWriteWontFlush")과 오프셋 ( "+ 0xb50")이 보이면 심볼 이름이 거의 틀린 것입니다. 원하는 것은 예를 들어 오프셋이 표시되지 않은 ntoskrnl.exe! ExpWorkerThread입니다. 아 .. MS가 심볼을 제공하지 않는 모듈에 대한 오프셋을 볼 수 있습니다. 대부분 타사 드라이버입니다. nvhda64v.sys + 0x30ac와 같이 moduleName + offset으로 표시됩니다. 우리는 그에 대한 기호를 얻을 수 없지만 모듈 이름만으로도 경우를 디버깅하는 데 도움이됩니다.
Jamie Hanrahan 2016 년

3

"Killer Network Manager"소프트웨어 일 수 있습니다. 제거하면 문제가 해결되지만 네트워크 어댑터 드라이버도 제거되므로 네트워크도 삭제됩니다. 좋은 점은 수정이 있다는 것입니다.

먼저 http://www.killernetworking.com/support/driver-downloads/item/killer-suite 로 이동 하여 새 버전을 다운로드하되 아직 설치하지 마십시오. 파일을 저장하고 파일의 위치를 ​​알고 있으면됩니다.

그런 다음 제어판을 통해 현재 버전을 제거하십시오. 컴퓨터를 다시 시작해야합니다. 컴퓨터가 백업되면 새 소프트웨어 설치 프로그램을 실행하십시오. 2016 년 1 월에 릴리스 된 새 버전에는 동일한 문제가없는 것 같습니다.

이전 버전의 소프트웨어에이 문제를 일으키는 메모리 누수가 있다고 생각합니다.

참고로 "Killer Network Manager"소프트웨어는 Qualcomms Aethos Killer Wireless-AC / Wireless-N 및 유선 E2200 / E2400 네트워크 카드의 일부입니다. 소프트웨어가 없으면 인터넷이 없습니다.


포함하지 않는 드라이버 당신은 어떤 인터넷이 없습니다. 제조업체가 필요하다고 생각하는 무의미한 움푹 들어간 곳과 bloatware없이 드라이버를 얻을 수 있습니다 . 링크 된 페이지의 하단에는 killernetworking.com/support/driver-downloads/standard-drivers
Mokubai

2

최근에 Windows 10으로 업그레이드 한 후에도 비슷한 문제가 발생했습니다. 마우스를 갑자기 멈추기 시작했습니다. 즉, 화면을 가로 질러 마우스를 움직이면 사용하기가 매우 어려웠습니다.

작업 관리자에서 CPU 사용량을 확인한 결과 "시스템 및 압축 메모리"프로세스가 CPU의 5-15 %에서 소비를 시작했을 때 문제가 발생했음을 알았습니다. Process Explorer를 실행하고 스레드를 확인했으며 Raymond와 마찬가지로 주범은 CxWriteCopyWontFlush가 오프셋 0xb50임을 알았습니다. 약간의 인터넷 검색으로 나를이 페이지로 안내했습니다. 여기에 제안 된대로 Windows 기호를 설치하려고 시도했지만 오프셋을 해결하는 데 도움이되지 않았습니다.

문제는 또한 산발적이었다. 나는 몇 시간 동안 일한 다음 몇 분 동안 나타나고 시작되어 나를 미치게 할 것입니다. 재부팅하면 잠시 동안 치료 된 다음 돌아옵니다.

여기의 답변에서 나는 PC의 드라이버를 찾기로 결정했기 때문에 장치 관리자로 시작하여 그 곳에서 대답을 얻었습니다. 문제가 발생했을 때, 장치 관리자 창은 1 초 또는 2 초와 같이 지속적으로 비워지고 새로 고쳐집니다. 본질적으로 읽을 수 없었습니다. 더 많은 인터넷 검색은 외부 USB 장치 연결 및 재 연결을 제안했습니다. 매일 USB 포트에 연결된 케이블을 통해 PC에서 충전하는 삼성 전화에 연결했습니다. 또한 PC와 MyPhoneExplorer를 사용하여 휴대폰을 Outlook과 동기화하기 위해 PC 용 Samsung 드라이버를 사용하여 휴대폰의 내부 및 외부 RAM에 몇 개의 드라이브를 매핑했습니다. 장치 관리자에서 이러한 드라이브가 자주 나타나고 사라지는 것을 볼 수있었습니다.

내 휴대폰은 Galaxy S2이며 약 4 살이며 1 년 이상 microUSB 포트에 연결 문제가있었습니다. 문제가 산발적으로 발생하거나 휴대폰의 엉터리 삼성 PC 드라이버 일 수 있습니다. 그것이 케이블 일뿐이라면 재부팅으로 인해 문제가 잠시 동안 치료되는 이유를 알 수 없으므로 여전히 약간의 수수께끼이지만 적어도 소스를 알고 고칠 수 있습니다.

휴대 전화 연결을 끊는 것이 문제를 해결하는 가장 쉬운 방법이며, 너무 오래되어 버리고 있습니다. 그래서 Raymond도 PC에서 비슷한 소프트웨어를 사용하는 Samsung 장치 드라이버가 있는지 궁금합니다. Raymond, 아직도 체크인 중이라면 알려주세요.

앞에서 언급했듯이 Windows 7에서 Windows 10으로 업그레이드하기 전부터 케이블이 오랫동안 엉망이었고 삼성 소프트웨어는 항상 끔찍했지만 Windows 7에서는 그 결함이 PC의 다른 작동에 영향을 미치지 않았습니다. Windows 10에서는 마우스가 너무 부드러워서 사용할 수 없게되었습니다. 나는 목표물에 착륙하려고 매우 힘든 시간을 보냈으며, 키 누름을 놓치면 키보드도 영향을 받았다고 생각합니다. 이러한 요소들이 서로 어떻게 관련되어 있는지는 이상하며 Windows 10 개선에 대해 Microsoft에 제안 할 것이 무엇인지 모르겠지만 이제 Windows 10이 약간 "배신"된 것 같습니다. 주의해서 사용하십시오.

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