如何防止Windows系统长期运行时耗尽全部RAM?
我太懂你这种长期不关机却被Windows慢慢吃光内存的糟心情况了——毕竟不能频繁重启、换硬件或换系统,得找针对性的软解决办法。结合你的描述(两台硬件不同的Win10,运行一个月后内存占满99-100%,磁盘也跟着跑满,任务管理器里内存占用数字对不上),这大概率是Windows的内存缓存机制或者部分服务/进程的内存泄漏导致的,给你几个实用的解决方法:
禁用SysMain服务(原Superfetch)
这个服务会预加载你常用的程序到内存里,本意是加快启动速度,但长期运行后,它可能会占用大量内存且不会及时释放。操作步骤很简单:
按Win+R打开运行框,输入services.msc回车,找到「SysMain」服务,右键选「属性」,把启动类型改成「禁用」,再点击「停止」按钮,最后确定保存。用系统自带命令快速释放闲置内存
你之前靠开大型游戏再关闭的方法其实是强制系统释放缓存,但不用这么麻烦,直接做个批处理文件就能搞定:
新建一个文本文档,把下面的内容复制进去,然后把后缀改成.bat:@echo off echo 正在释放闲置内存... rundll32.exe advapi32.dll,ProcessIdleTasks echo 释放完成!以后内存占满时,双击这个bat文件就行,它会调用系统自带的空闲任务处理函数,自动释放没用的缓存内存。
排查内存泄漏进程
任务管理器里内存占用加不上来,可能是某个进程悄悄泄漏内存(比如系统服务或第三方软件)。你可以打开任务管理器的「详细信息」标签,按「内存」列排序,盯着看几个小时,找那些内存一直在增长、不会回落的进程:- 如果是第三方软件,试试更新到最新版本,或者直接卸载不用的;
- 如果是系统进程(比如
svchost.exe),可以右键它选「转到服务」,看看对应的服务是什么,再决定是否禁用或更新相关组件。
调整虚拟内存设置
内存占满时磁盘也跑满,大概率是系统在疯狂读写虚拟内存。你可以把虚拟内存转移到容量更大的机械硬盘上(避免占小SSD的空间):
右键「此电脑」→「属性」→「高级系统设置」→「高级」标签里的「性能」→「设置」→「高级」标签→「虚拟内存」→「更改」,取消「自动管理所有驱动器的分页文件大小」,然后选中你的机械硬盘,选「系统管理的大小」或者手动设置初始大小为物理内存的1.5倍、最大值为2倍,最后点击「设置」确定。修改注册表优化内存缓存
如果你想让Windows更积极地释放闲置内存,可以修改注册表(操作前记得备份注册表,避免出错):
按Win+R输入regedit回车,定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management,右键新建「DWORD(32位)值」,命名为LargeSystemCache,把值设为0(关闭大系统缓存,让系统优先释放闲置内存给程序)。
另外要说明的是,Windows本来就会把闲置内存用来做文件/程序缓存,这是它的设计逻辑,但长期不关机的情况下,缓存可能积累过多,导致真正需要内存的程序不够用。上面的方法就是针对这个问题,要么让系统别乱占内存,要么手动/自动释放缓存。
备注:内容来源于stack exchange,提问作者user9203881




