应立即用资源监视器确认非分页池是否超1.5gb,再通过rammap验证并用poolmon按tag定位泄漏驱动(如mloc→eset),最后禁用对应驱动并重启。

电脑提示“物理内存已满”,任务管理器里所有进程加起来只占3~4GB,但总使用率却飙到92%,鼠标卡顿、程序响应迟缓——这大概率不是应用在吃内存,而是非页面缓冲池(Nonpaged Pool)异常膨胀,它属于内核态内存,不归任何用户进程显示,任务管理器完全不体现。
确认是否为Nonpaged Pool异常占用
打开资源监视器(Ctrl+Shift+Esc → 性能 → 打开资源监视器)→ 切换到“内存”选项卡,直接查看底部“内核内存”区域中的【非分页池】数值。若该值持续高于1.5GB(16GB内存设备)或超过物理内存的10%,且随时间缓慢爬升,即可锁定问题根源。
此时不要重启,也不要盲目结束进程——非分页池由驱动程序在内核中分配,释放需精准定位,否则可能触发蓝屏。
用RAMMap快速定位内存分布
从微软Sysinternals官网下载并运行RamMap.exe(无需安装,直接双击)。
启动后等待5秒,等左下角状态栏显示“Ready”,点击顶部菜单“File”→“Save As”保存当前内存快照(.bin格式),以防后续操作误判需回溯。
切换到“Use Counts”页签,重点关注“Nonpaged pool”行右侧的数值——这个数字应与资源监视器中看到的完全一致。如果它占据整列高度的70%以上,说明问题确实在此。
切到“Processes”页签,按“Nonpaged Pool”列降序排列,你会发现几乎所有进程该项都为0或极小值——这正是关键证据:非分页池不属于任何进程,它属于驱动层。
用PoolMon追踪具体驱动标签
以管理员身份运行命令提示符(Win+S → 输入cmd → 右键“以管理员身份运行”)。
执行命令:poolmon /p,屏幕将滚动显示实时非分页池分配情况,每行包含Tag、Paged/Nonpaged标识、字节数等。
按下大写字母P,筛选仅显示Nonpaged条目;再按大写字母B,按字节数从高到低排序。
观察最顶部1~3个Tag(4字符缩写,如Mloc、Etwb、Ntfs),它们就是罪魁祸首的驱动标识符。注意:Tag区分大小写,且必须全匹配。
在管理员CMD中执行查找命令,例如Tag是Mloc,则输入:cd /d C:\Windows\System32\drivers & findstr /m /l Mloc *.sys。若返回多个.sys文件(如epfw.sys、ehdrv.sys),说明对应安全软件驱动存在泄漏。
定位并禁用问题驱动
第一步:根据上一步查出的.sys文件名,反向确认所属软件。常见高危Tag对应关系如下:
Mloc → ESET安全套件;ndis → 网卡驱动(尤其是Killer系列);VidS → NVIDIA显卡驱动旧版;Ntfs → 第三方磁盘加密或备份工具。
第二步:临时禁用对应服务或驱动。例如发现是epfw.sys,可执行:sc stop epfwwfp & sc config epfwwfp start=disabled(注意空格和等号间无空格)。
第三步:执行【shutdown /r /t 0】强制重启,确保驱动彻底卸载。重启后立即打开资源监视器验证非分页池是否回落至正常范围(通常16GB内存设备应低于800MB)。











