ntoskrnl.exe!_misaligned_access 在空闲时会占用大量 CPU

ntoskrnl.exe!_misaligned_access 在空闲时会占用大量 CPU

请告知可能导致下述不必要的 CPU 使用的原因。

症状:

  • 当计算机处于空闲状态时,系统进程会开始消耗大约 30% 的 CPU。如果按下任何键或移动鼠标,系统进程会在一秒钟内停止。这很烦人,因为这是一款相当薄的笔记本电脑,而且冷却系统的设计不适合持续的高 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),它是英特尔通用 USB 集线器

  • 我不知道该寻找什么。

环境详情:

  • Dell E7440,配备一些安装了戴尔的大量软件。我知道问题可能是缺少某些组件/驱动程序,但我仍然不想安装所有可能列出的内容。设备管理器没有显示任何没有驱动程序的设备。
  • Windows 8.1 Enterprise 64 位,未破解,已安装所有可能的更新。大约一个月前从官方 iso 安装,安装后没有安装太多垃圾,自那时起没有出现任何错误或 BSOD。
  • 除了 Windows 内置的安全软件外,没有防病毒软件。

答案1

CPU 的使用率是设计使然。它来自函数ntoskrnl.exe!RtlScrubMemory// ntoskrnl.exe!RtlpGenericRandomPatternWorkerntoskrnl.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

相关内容