如何解决 win11 系统由于内存泄漏导致的卡顿 修复系统资源回收机制

如果您发现 Windows 11 系统在持续运行数小时后出现明显卡顿、响应延迟,且任务管理器中“内存”使用率长期高于90%,同时“非分页缓冲池”(Non-Paged Pool)占用持续攀升至数GB甚至超过10GB,则极可能是由内核级内存泄漏引发的资源回收机制失效。以下是针对该问题的多种修复方法:

一、禁用快速启动功能

快速启动是混合关机机制,会将内核会话状态保存至休眠文件(hiberfil.sys),在驱动或硬件兼容性不佳时易导致非分页池内存无法彻底释放,造成累积性泄漏。

1、点击开始菜单,搜索并打开“控制面板”。

2、将右上角查看方式设为“大图标”,点击“电源选项”。

3、在左侧边栏点击“选择电源按钮的功能”。

4、点击顶部“更改当前不可用的设置”。

5、取消勾选启用快速启动,点击“保存修改”。

6、重启计算机以使配置完全生效。

二、回退或更新显卡驱动程序

桌面窗口管理器(dwm.exe)及GPU加速组件高度依赖显卡驱动;Game Ready驱动591.59等版本已被实测证实存在非分页池泄漏缺陷,尤其在长时间睡眠唤醒后表现显著。

1、按下Win + X,选择“设备管理器”。

2、展开“显示适配器”,右键当前显卡设备,选择“属性”→“驱动程序”选项卡。

3、点击“回退驱动程序”,若该选项灰显则说明无历史版本记录,需手动操作。

4、访问Intel官网下载27.20.100.9621(2022年Q4稳定版)或NVIDIA Studio驱动版本546.17进行覆盖安装。

5、安装完成后执行完整重启,避免仅注销或睡眠。

三、禁用SysMain与Print Spooler服务

SysMain(原Superfetch)在Win11中存在已知内核内存驻留缺陷,其预加载缓存常以非分页池形式长期锁定;Print Spooler即使未打印也会维持约200MB非分页池占用,二者均为高频泄漏源。

1、按下Win + R,输入services.msc并回车。

2、在服务列表中依次找到“SysMain”和“Print Spooler”,分别双击打开属性。

3、对两项服务均将“启动类型”设为禁用。

4、若状态显示为“正在运行”,点击“停止”按钮终止当前实例。

5、点击“应用”→“确定”保存设置,无需重启即可即时释放对应非分页池内存。

四、使用RamMap释放非分页池内存

RamMap由Microsoft Sysinternals官方提供,可强制清除非分页池中已标记为可回收但未被系统自动释放的内核内存块,适用于临时缓解突发性泄漏高峰。

1、访问https://learn.microsoft.com/en-us/sysinternals/downloads/rammap下载并解压RamMap。

2、以管理员身份运行RamMap.exe。

3、切换到“Empty”选项卡,点击Empty Standby List。

4、再次点击Empty Working Sets(此操作不影响当前运行程序稳定性)。

5、返回“Physical Pages”选项卡,观察“Nonpaged pool”数值是否在30秒内下降至少1.2GB。

五、排查并卸载可疑内核级软件

部分第三方安全软件、录屏工具、虚拟化插件及USB设备配套驱动会在内核层注册非分页池分配器,若其卸载不彻底或存在兼容性Bug,将导致持续性泄漏。PoolMon可定位具体泄漏驱动模块。

1、以管理员身份运行命令提示符,进入WDK安装路径下的tools\poolmon目录。

2、执行poolmon -b命令启动按字节排序的实时监控。

3、待非分页池升至异常值(如≥8GB)后,按下P键切换至按池标签(Tag)排序。

4、记录顶部占用最高且名称非微软标准标签(如MmSt、CM23、FLTR)的4字符Tag(例如:VGA1、BTH0、WDF0)。

5、使用PowerShell执行findstr /s /i “VGA1” *.sys(替换VGA1为实际Tag)在系统驱动目录中反查对应驱动文件。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。