Windows 10 中“系统和压缩内存”CPU 使用率高的原因是什么?

Windows 10 中“系统和压缩内存”CPU 使用率高的原因是什么?

在我的笔记本电脑上运行 Windows 10 时,有一个观察结果,可用内存为 24G,已使用内存为 2.5G。没有“内存压力”。其他问题关注的是内存消耗(这不是这里的问题)。在这里和其他地方的所有相关问题中,我都无法找到一个充分的解释,说明在 Windows 10 更新后的一两个月内 CPU 利用率过高的问题。

我可以接受这项服务或流程的价值,但要持续运行并使用额外的 CPU 资源,从而导致电池电量使用效率降低,这就是我试图解决的问题。

在本网站的某些文章中,建议我关闭 SuperFetch,并将 PrefetchParameters 的注册表项设置为 0。我执行了这两项操作并重新启动。

我重启机器,关闭屏幕保护程序,然后启动任务管理器。几分钟后,标记为“系统和压缩内存”的服务开始持续占用我 5% 的 CPU。我的基本 CPU 利用率可能为 1%,这使风扇保持低速。但是当“系统和压缩内存”服务以 5% 的速率运行时,风扇加速运转。并且一直运转。

愚蠢。为什么该服务需要像这样持续运行而没有内存压力?我可以尝试任何其他机制来关闭它或确定它实际上在做什么?某处有日志文件条目吗?或者深入的诊断工具?

如何禁用 Windows 10 内存压缩-- 这里没有真正的答案

Windows 10 系统进程占用大量 RAM

17993-Windows-10-内存压缩

桌面版本 10525 和 Windows 10 内存

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

Windows-10-build-1511-CPU 风扇始终过热

Windows 性能记录器- 现在需要一个链接来了解如何解释这些信息

擦洗保养

答案1

使用 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)。

这是设计使然,当您的设备处于空闲状态且空闲维护任务启动时就会发生这种情况。

答案2

首先,关于 CPU 使用率:“系统和压缩内存”进程(它不是服务)执行许多功能。仅仅因为您看到它使用 CPU 时间并不意味着它正在执行压缩内存内容的工作。要找出答案,请使用 Process Explorer 查找正在使用 CPU 时间的进程中的线程函数的名称。您需要在 Process Explorer 中配置符号才能执行此操作,如所述在这个答案中

被压缩的内存是

  • 进程的私有工作集的一部分(即与任何其他进程共享);
  • 在该过程中进行了修改;并且
  • 随后由于页面替换而从进程中丢失,并被放入已修改页面列表中。(此算法在 Windows 10 中没有发生实质性变化。您不会比以前获得更多的页面替换。)

现在...如果您没有页面文件,它将只保留在修改后的页面列表中(直到该过程结束)。(请注意:禁用您的页面文件不会改变迄今为止描述的行为。)

如果您确实有页面文件(当然,强烈推荐),则 Windows 10 与之前的版本之间的行为会有所不同。

  • 在 Windows 10 之前,它很快就会被写入页面文件,物理页面将被移至待机页面列表。这是由系统进程中的“修改页面写入器”线程完成的。

  • 在 Windows 10 中,它首先被压缩(占用的空间大约是以前的一半)并存储在系统进程的用户模式地址空间中(现在称为“系统和压缩内存”)。如果需要释放内存,则可以将其写入页面文件并释放用于其他用途。(请注意,空间压缩的好处也适用于页面文件空间和 I/O 时间。)

所以,这确实是一件好事。无论您看到系统进程使用了​​多少额外的内存,在 Windows 10 之前,修改页面列表或待机列表中的内存大约是这个数字的两倍。当然,它不会比以前占用更多的空间。

您可以(根据我最近的测试)通过删除页面文件来禁用此机制,但这不会影响页面替换行为;从进程中推出的修改后的私有页面将无法被释放用于其他用途,并且内存(大约两倍)将仅位于 MPL 上,而不是位于系统进程中。

答案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 网卡的一部分。没有该软件,您就无法上网。

答案4

我最近升级到 Windows 10 后也遇到了类似的问题。我的鼠标突然开始停顿,即当我将它移动到屏幕上时会出现抖动,这让它非常难以使用。

我在任务管理器中检查了 CPU 使用率,发现问题发生在“系统和压缩内存”进程开始消耗 5-15% 的 CPU 时。我运行了 Process Explorer 并检查了线程,和 Raymond 一样,我注意到罪魁祸首是 CcWriteCopyWontFlush,偏移量为 0xb50。谷歌搜索后,我找到了这个页面。我尝试按照这里的建议安装 Windows 符号,但它并没有帮助我解决偏移问题。

这个问题也是时有时无的。我工作几个小时后,它就会断断续续地出现几分钟,让我抓狂。重启可以解决一段时间,但之后又会再次出现。

根据这里的答案,我决定在我的电脑上寻找驱动程序,因此我从设备管理器开始,在那里我得到了答案。当问题发生时,我的设备管理器窗口会不断空白并刷新,大约每隔一两秒一次。它基本上是不可读的。进一步的谷歌搜索建议连接并重新连接外部 USB 设备。我把它绑在我的三星手机上,我每天都通过连接到 USB 端口的电缆从电脑上为手机充电。我还使用电脑和 MyPhoneExplorer 将我的手机与 Outlook 同步,因此我有几个驱动器映射到手机的内部和外部 RAM,使用三星的 PC 驱动程序。我可以看到这些驱动器在设备管理器中频繁出现和消失。

我的手机是 Galaxy S2,大约 4 年前的,一年多来,microUSB 端口的连接问题一直存在。这可能是问题偶尔出现的原因,也可能是我手机的三星 PC 驱动程序太差。如果只是电缆问题,我不知道为什么重启可以暂时解决问题,所以这仍然有点神秘,但至少我知道问题的根源,我可以修复它。

断开手机连接是解决问题最简单的方法,而且我无论如何都要扔掉它,因为它太旧了。所以我想知道雷蒙德的电脑上是否也有三星设备驱动程序和类似的软件。雷蒙德,如果你还在关注,请告诉我。

正如我提到的,电缆已经坏了一段时间了,早在从 Windows 7 升级到 Windows 10 之前,三星软件也一直很糟糕,但在 Windows 7 中,这种不稳定并没有影响我对 PC 的其他操作。在 Windows 10 中,它使鼠标变得非常不稳定,几乎无法使用。我很难找到目标,而且我认为键盘也受到了影响,按键会漏掉。这些因素之间的相互关系很奇怪,我不知道该向微软提出什么建议来改进 Windows 10,但现在我觉得 Windows 10 有点“脆弱”。请谨慎使用。

相关内容