ntoskrnl.exe!_misaligned_access는 유휴 상태일 때 CPU를 많이 소모합니다.

ntoskrnl.exe!_misaligned_access는 유휴 상태일 때 CPU를 많이 소모합니다.

아래에 설명된 불필요한 CPU 사용의 원인이 무엇인지 알려주세요.

증상:

  • 컴퓨터가 유휴 상태이면 시스템 프로세스가 CPU의 약 30%를 소모하기 시작합니다. 아무 키나 누르거나 마우스를 움직이면 잠시 후에 중지됩니다. 이 노트북은 다소 얇은 노트북이고 냉각 기능은 지속적으로 높은 CPU 사용량을 위해 설계되지 않았으며 소음이 크기 때문에 이는 짜증나는 일입니다.
  • 배터리 사용 중에는 발생하지 않습니다.
  • 쉽게 구별할 수 있는 프로세스가 있기 때문에 바이러스 백신이나 색인 관련 항목과 관련이 없는 것 같습니다.

지금까지 내가 찾은 것:

  • 프로세스는 다음과 같습니다.체계, PID는 항상 4이고 설명은 다음과 같습니다.NT 커널 및 시스템.
  • 이 과정을 조사해보면프로세스 해커ntoskrnl.exe!_misaligned_access+0x3f0(마우스 오른쪽 버튼 클릭/속성, 스레드 탭) 이 불필요한 CPU 사용량을 모두 담당하는 스레드가 호출된 것으로 나타났습니다 . 다른 프로세스 탐색기 응용 프로그램에서도 마찬가지입니다. 프로세스 이름의 주소는 재부팅할 때마다 변경되지만 그 사이에는 동일하게 유지됩니다.

    • 실제로 이러한 속성을 가진 여러 스레드가 있지만 항상 동일한 CPU(동일한 PID)를 사용합니다.
    • 마우스 오른쪽 버튼을 클릭하고 검사하면 이 스레드에 대한 스택이 제공됩니다.

      0, ntoskrnl.exe!KeIsAttachedProcess+0x92e

      1, ntoskrnl.exe!KeWaitForMultipleObjects+0x140f

      2, ntoskrnl.exe!KeWaitForMultipleObjects+0xcb9

      3, ntoskrnl.exe!_misaligned_access+0x5fd

      4, ntoskrnl.exe!RtlGetCompressionWorkSpaceSize+0x1f0

      5, ntoskrnl.exe!KeSynchronizeExecution+0x59d6

  • 동일한 프로세스의 속성 창에 핸들 탭이 ​​있습니다. 핸들이 오작동하는 스레드의 주소와 동일하므로 위의 스레드에 연결될 수 있는 다음 행이 있습니다.

    • 유형: SymbolicLink, 이름: \GLOBAL??\USB#VID_8087&PID_8000#5&47f868&0&1#{f18a0e88-c30c-11d0-8815-00a0c906bed8}, 핸들: 0x3f0
  • 장치 관리자에서 장치(VID 8087 및 PID 8000)를 찾아보니 Intel Generic USB Hub입니다.

  • 무엇을 찾아야 할지 더 이상 알 수 없습니다.

환경 세부정보:

  • 델 E7440,일부Dell의 수많은 소프트웨어가 설치되어 있습니다. 일부 구성 요소/드라이버가 누락된 것이 문제일 수 있다는 것을 알고 있지만 나열된 가능한 항목을 모두 설치하고 싶지는 않습니다. 장치 관리자에는 드라이버가 없는 장치가 표시되지 않습니다.
  • 해킹되지 않은 Windows 8.1 Enterprise 64비트, 가능한 모든 업데이트 포함. 약 한 달 전에 공식 iso에서 설치했는데 그 이후로 오류나 BSOD가 많이 설치되지 않았습니다.
  • Windows에 내장된 Security Essentials 외에 바이러스 백신이 없습니다.

답변1

CPU 사용량은 의도적으로 설계된 것입니다. ntoskrnl.exe!RtlScrubMemory// 함수 에서 나옵니다 ntoskrnl.exe!RtlpGenericRandomPatternWorker.ntoskrnl.exe!RtlpTestMemoryRandomUp

여기에 이미지 설명을 입력하세요

이 함수는 RAM에 임의의 패턴을 기록하여 RAM의 오류를 테스트합니다. Windows는 Windows를 최적화하기 위해 유휴 유지 관리 작업 중에 이 작업을 수행합니다(WinSxS 정리, ngen을 사용하여 .net 파일 최적화).

작업 스케줄러를 실행하고 Microsoft -> Windows -> 작업 스케줄러로 이동하여 Idle Maintenance,

여기에 이미지 설명을 입력하세요

마우스 오른쪽 버튼을 클릭하고 선택하세요 disable.

여기에 이미지 설명을 입력하세요

답변2

안타깝게도 작업 스케줄러에는 이 설정이 없어서 비활성화할 항목이 없었습니다. (저는 Windows 10 b1607을 사용하고 있습니다)

하지만 실제로 도움이 된 것은 DWORD 값을 추가하는 것입니다.유지 관리 비활성화됨 가치있는1이 키에:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\Maintenance

그 후 유휴 CPU 사용량이 높아지지 않았습니다.

자세한 내용은 여기에서 확인할 수 있습니다. https://www.tenforums.com/tutorials/40119-enable-disable-automatic-maintenance-windows-10-a.html

관련 정보