请告知可能导致下述不必要的 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!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