当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 内存压缩过程:Windows 10 和 11 中内存和 CPU 使用率较高

作者:精品下载站 日期:2024-12-14 23:16:58 浏览:13 分类:玩电脑

内存压缩过程:Windows 10 和 11 中内存和 CPU 使用率较高


Windows 10 和 11 中的内存压缩功能用于通过压缩 RAM 中的某些页面来优化物理 RAM 利用率。通过使用进程内存压缩,您可以将更多进程保留在物理内存中,而无需在磁盘上对它们进行分页。即使需要额外的 CPU 资源来压缩/解压缩数据,也可以更快地从 RAM 中检索所需的数据。通过内存压缩,可以通过减少 I/O 操作量来减少 RAM 使用量、硬盘负载,并节省 SSD 资源。

微软首先在 Windows 10 和 Windows Server 2016 中通过内存管理器 (MM) 进程引入内存压缩。在本文中,我们将了解如何在 Windows 中查看压缩内存使用统计信息,如何启用或禁用 RAM 压缩(如果您的计算机由于内存压缩进程的高负载而速度缓慢)。

Windows 10 和 11 中的压缩内存

如果 Windows 内存管理器检测到内存不足,它会尝试压缩未使用的内存页,而不是将它们写入磁盘上的分页文件以释放 RAM 以供其他进程使用。

本来System和压缩内存进程位于System进程内部,排查问题不太方便。在现代 Windows 版本(Win 10 20H2 和 Windows 11)中,此功能被分离到一个单独的内存压缩进程中,该进程对任务管理器隐藏。您可以使用 Get-Process PowerShell cmdlet 获取有关此进程的信息:

Get-Process -Name "Memory Compression"
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
0 0 1548 380920 1,104.59 1764 0 Memory Compression

[玩转系统] 内存压缩过程:Windows 10 和 11 中内存和 CPU 使用率较高

您只能在 Windows 任务管理器中查看当前的内存压缩使用级别。

转到性能选项卡并选择内存部分。压缩内存使用量的当前值显示在使用中(压缩)参数中。在我的示例中,使用了 4.5 GB,其中压缩了 373 MB。要了解压缩的初始内存量,请将鼠标悬停在内存组成图表上:

In use compressed (373 MB). Compressed memory stores an estimated 1549 MB of data, saving the system 1176 MB of memory.

正如您所看到的,内存压缩级别几乎达到了 315%,因此 RAM 节省量相当大。

[玩转系统] 内存压缩过程:Windows 10 和 11 中内存和 CPU 使用率较高

此外,您还可以使用 Process Explorer 查看 Windows 11/10 中内存压缩进程使用的实际 CPU 使用率和内存大小。

运行 Process Explorer 并在系统进程树中找到内存压缩进程。

[玩转系统] 内存压缩过程:Windows 10 和 11 中内存和 CPU 使用率较高

内存压缩过程由 SysMain(以前称为 SuperFetch)服务提供服务。 SysMain 通过压缩和合并内存页面来减少磁盘写入(分页)。如果此服务停止,Windows 将不使用 RAM 压缩。

您可以使用 PowerShell 检查 SysMain 服务的状态:

get-service sysmain

[玩转系统] 内存压缩过程:Windows 10 和 11 中内存和 CPU 使用率较高

在大多数情况下,如果您的计算机正常工作并且有足够的 RAM 大小,则压缩内存过程可以正常工作,不需要管理员执行任何操作。

系统和压缩内存进程 CPU 和 RAM 使用率高

SysMain 服务和内存压缩进程用于提高计算机性能。但有时会发生内存压缩过程开始严重负载计算机的CPU或硬盘的情况(高达100%,这可以在任务管理器中看到),或者占用过多的RAM资源。当然,计算机开始运行缓慢或挂起。

[玩转系统] 内存压缩过程:Windows 10 和 11 中内存和 CPU 使用率较高

在这种情况下你能做什么?

我将为您提供一些技巧,帮助您解决压缩内存进程占用大量 PC 资源的问题

  • 尝试暂时禁用计算机上的页面文件(无页面文件选项),重新启动计算机,启用页面文件(自动管理所有驱动器的页面文件大小选项),然后再次重新启动;

  • 如果压缩内存进程导致计算机负载过高的问题仅在从睡眠或休眠模式唤醒后出现(并在重新启动后消失),请尝试从官方网站下载并安装适用于您的存储控制器(ACPI/AHCI/RAID/SCSI)、硬盘驱动器和显卡的最新版本驱动程序。之后,建议禁用自动驱动程序更新。

    [玩转系统] 内存压缩过程:Windows 10 和 11 中内存和 CPU 使用率较高

如果这些操作没有帮助,您可以尝试完全阻止 Windows 使用压缩内存。

如何在 Windows 10 和 11 中禁用内存压缩?

如果你想确保Windows 10在不使用压缩内存的情况下稳定运行,可以暂时禁用此功能。为此,请打开提升的 PowerShell 提示符。让我们确保压缩内存已启用:

Get-mmagent
ApplicationLaunchPrefetching : True
ApplicationPreLaunch         : True
MaxOperationAPIFiles         : 512
MemoryCompression            : True
OperationAPI                 : True
PageCombining                : True

参数MemoryCompression: True表明压缩内存已启用。

让我们禁用 Windows 中的压缩内存:

Disable-MMAgent -MemoryCompression

并重新启动计算机:

Restart-Computer

[玩转系统] 内存压缩过程:Windows 10 和 11 中内存和 CPU 使用率较高

检查禁用压缩内存后系统整体性能是否发生变化。如果性能有所提高,您可以让 Windows 10 禁用压缩内存。

在某些情况下,建议用户通过以下操作修复压缩内存问题:

  1. 禁用 SysMain 服务(例如 SuperFetch (

    services.msc

    -> SysMain -> 启动类型:禁用)。这将禁用内存管理器中的 Windows 10/11 内存优化进程;

  2. 禁用任务计划程序中的完整内存诊断RunFullMemoryDiagnostic任务(任务计划程序 -> 任务计划程序库 -> Microsoft -> Windows -> MemoryDiagnostic -> RunFullMemoryDiagnostic(检测并缓解物理内存 - RAM 中的问题)-> 禁用;

    [玩转系统] 内存压缩过程:Windows 10 和 11 中内存和 CPU 使用率较高

  3. 尝试禁用网络活动监控驱动程序(网络数据使用,NDU)(在有关 Windows 中非分页内存池的文章中进行了描述);

  4. 禁用防病毒软件中的实时保护。也许它无法在压缩内存下正常工作;

  5. 使用 DISM 和 SFC 检查 Windows 映像系统文件。

这些技巧可以帮助您通过压缩内存进程摆脱计算机的高负载。但是,这会禁用底层 Windows 性能优化功能,这可能会对设备的整体性能产生不利影响。

如何在 Windows Server 2016/2019/2022 或 Windows 10 上启用内存压缩?

默认情况下,所有版本的 Windows Server 中都禁用内存压缩。

跑过

Get-mmagent

命令验证压缩内存是否已禁用。在下面的屏幕截图中,我们显示了 Windows Server 2022 中内存压缩=False 的值。

[玩转系统] 内存压缩过程:Windows 10 和 11 中内存和 CPU 使用率较高

Windows要使用内存压缩,必须满足以下条件:

  • 必须启用分页文件(最小大小至少为 16 Mb);

  • SysMain 服务必须正在运行;

  • 您使用的是 Windows 10/11 或 Windows Server 2016+。

要在 Windows 中启用内存压缩,请运行 PowerShell 命令:

Enable-MMAgent -MemoryCompression 

重新启动计算机。

启用内存压缩会自动打开另一个 SysMain 功能,页面聚合。该内存管理器功能用于合并具有相同内容的内存页(一种 RAM 重复数据删除)。

一般来说,Windows 10 和 11 中的内存压缩功能非常有效,不需要任何干预。如果内存压缩导致您的计算机出现任何问题,则可能是系统设置、硬件或驱动程序出现问题。如有必要,可以完全禁用内存压缩。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯