Windows不明内存占用案例分析:Driver Locked

电子说

1.3w人已加入

描述

前一段有客户反映Windows系统下不明内存占用越来越多,128GB物理内存的主机,启动完成后就有大约一半的内存被占用,导致留给应用的内存容量不够。

对于这类问题,我的习惯是先看任务管理器,下面随便找台笔记本做个模拟测试。

PCIe接口

参考上图,这台测试机8GB的物理内存(实际可用容量7.7GB),已用4.8GB。接下来看看是哪些程序占用的。

PCIe接口

切换到进程视图,内存占用排名前几位的都只有几十MB,从这里看加起来怎么也达不到4.8GB那么多?

我想起来早年经验中的可能性:

1、BIOS为硬件预留;
2、驱动程序锁定内存开销在这里也是体现不出来的。

有一次客户在主机上加装有第三方PCIe卡,Windows下相关的驱动好几个,加上若干应用软件等我不熟悉的东西。说实话,在以前我大多建议重装系统(或者先不动当前数据,另换个系统盘上去)看看,而就地分析的办法实际上也有。

我先是在网上找到了RamMap这个工具。初步分析结果如下图:

PCIe接口

这下总算看到内存开销里的大头了——Driver Locked占据了大约2200多MB;Mapped File映射文件接近1600MB(其中Active比例倒不是很大)。

到这一步还是没有查到根因,Driver Locked里面具体是哪个驱动“捣的鬼”?我在国外网站上又查到一篇文章,该问题终于有了进展。

PCIe接口

先安装Windows ADK中的Windows Performance Toolkit和Windows评估工具包。

PCIe接口

然后运行Windows Assessment Console,并按照上图所述操作,界面显示如下:

PCIe接口

这里“MemoryTest”是我输入的任务名称,主要是选择分析“Memory footprint”。

PCIe接口

按照提示重启后得到测试结果,在上图界面中把右下方的滚动条往下拉。

PCIe接口

我要寻找的细节终于出现了——在这里展开“DriveLockedSystemPages”,一共看到7个.sys驱动文件。本文中的截图只是一个模拟环境,下面我们拿dxgkrnl.sys文件举例,来介绍最后的分析步骤。

PCIe接口
先搜索文件名,这些驱动文件应该都在C:WindowsSystem32drivers目录下。

PCIe接口

查看驱动文件属性中的详细信息,就可以看到它的说明(用途)和来源(厂商)了。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分