Windows 10 休眠之后内存占用大幅上升

每次休眠中唤醒一次系统,内存占用就会大幅上升。

首次开机,启动所有软件进入正常使用状态的内存占用是 30~40%。休眠唤醒 1 次,内存占用上升至 50%~70%。休眠唤醒 2 次,内存占用可达 80%以上:scream:

整个过程中,系统中运行的软件没有大的变化。

已做如下优化

  • 在 Services.msc 中关闭服务 Sysmain
  • 在 「Msconfig→系统配置→服务」中关闭不必要服务

相关信息

  • 版本:Windows10
  • 版本号:20H2
  • 操作系统内部版本:19042.1526
  • 物理内存:32G

我觉得这个内存占用过大,毕竟首次开机正常运行所有软件内存占用30%~40%。请问如何降低休眠、睡眠唤醒后的内存占用?:sos:

那么你的问题是什么?

我觉得你在陈述了一件你看到的事实,然后呢?我看你发到了问题求助频道…

补上了。之前想当然地认为 80%内存过大,是明显的问题,所以没有明确提出问题 :person_in_lotus_position:

可能是休眠启动之后,把已缓存的放到活动内存个人觉得如果不卡的情况下,完全交给系统分配就好,没必要过多的人工干预,开新的大程序,系统能及时腾出活动内存就行了。
付费要人工处理,可以用任务管理器,看一下活动内存都是哪些进程在用,看情况手工处理。

最后还是说一下,现代系统的内存调度效率是很高的,已经不是20年前旧系统那种,要自己清内存的时代。内存是拿来用的,不是拿来看的。

@11120 谢谢,你说的有道理

32G内存的情况下…休眠醒来后会卡么?如果没差别的话,就不要理他了

看看是哪些进程占了这些内存?

可能看不出,那么再运行占很大内存的应用(如数据库、内存盘),会不会报错:内存不足?来验证 系统多占的内存会不会在别的应用需要时 自动释放出来。

这是很诡异的情况。看你的截图,分页缓冲池已经上到 12 GB 了,正常情况下这个值应该不会超过 2 GB,可能是出现了驱动导致的内存泄漏。你可能需要参考这个链接进行排查: Windows 10 high memory usage (unknown reason) - Super User 。或者也可以直接使用这个工具: Download PoolMonX - MajorGeeks

此外,你的截图中,「已提交」的值也很高,是开了什么内存占用特别大(数据库、科学计算、游戏…)的程序吗?可以切换到「详细信息标签页」,分别按照「已提交」和「工作集(内存)」两列排序试试看。

以下是一些其他的可能排查思路:

2 Likes

Windows 8 及以上版本(采用新版任务管理器的),已经不会把内存中缓存的部分计算到「使用中」了,而是会计算到「可用」。看楼主截图,其中「可用」4.7 GB,「已缓存」4.6 GB,这是实打实的就剩下 4.7 GB 物理内存可用了(即使把缓存的内存视作随时可以腾出来的)。

我知道内存的区分。意思是缓存部分,某些原因变成活动了。
例如我开个ps用10G,关了之后,活动内存有部分就会变成缓存部分,下次打开,缓存就会很快的转为活动。
他休眠启动之后,估计有些进程重新活动了。要根据任务管理器看进程具体分析。

@Qingwa @haitao

感谢关注这个问题。今天是本次开机以来,第四次从休眠唤醒,内存占用率达到90%。

在此状态中,我增加运行一些大软件来做测试,包括酷家乐、Adobe Illustrator、After Effects 等软件执行简单任务,内存占用率超过 95%,偶有轻微的卡顿,过了一会内存占用下降到 92%,没有明显卡顿。没有任何报错。

目前看来对正常使用没有大的影响,但尚未运行高强度的任务或游戏,还不能盖棺定论。将来执行高强度任务时,我再把运行状况更新上来。



:handshake:非常感谢你提供的解决方案,我会跟着做一遍,有结果再来更新

:handshake:感谢关注我的问题,上面新增了进程内存占用排序截屏

那确实就是内存不够用。这些大程序,没关闭,过段时间不用,系统会把这些程序活动内存压缩、腾出、缓存,然后给其他程序用。其他程序关闭后,看起来活动内存就看起来不高了。等你休眠启动,这些没关闭的大程序相当于重新打开了一次就变成活动的,内存占用就起来了。启动的时候有点卡正常,相当于重新打开一次,等一会稳定了,应该就不卡了。如果不习惯关程序,或者要挂后台,只能说物理内存不够大了。

看你的截图,应该的确是遇到内存泄露了,因为这里有另一个表现:「详细信息」的内存占用加起来远小于「性能」中的内存占用。

1 Like

建议你试试下面工具中的一个清理内存:

好像是 显示是只剩4G了,结果再运行占了10G的应用也可以。
那说明 系统的剩余内存 计算或寻找 有问题

还有看看共享显存用了多少

通过关进程清内存似乎没有用,全清(进程列表只剩大概1~2GB)之后仍显示占用13GB左右

@jerrylus

安装了PoolMonX,但是看不懂 :flushed:,不知道怎么判断内存泄漏

@Dalieba

感谢推荐工具,尚未使用,因为没找到症结,清理恐怕不能从根上解决问题

@GingerCat

估计破案了,显存占用了一半物理内存,高达15.9 GB