企业存储技术 · 2023年09月25日

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

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

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

image.png

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

image.png

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

我想起来早年经验中的可能性:
1、BIOS为硬件预留;
2、驱动程序锁定内存开销在这里也是体现不出来的。

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

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

image.png

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

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

image.png

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

image.png

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

image.png

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

image.png

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

image.png

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

image.png
先搜索文件名,这些驱动文件应该都在C:\Windows\System32\drivers目录下。

image.png

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

希望对大家有帮助,以下是我的参考资料来源:

https://superuser.com/questions/1121714/driver-locked-memory-on-a-non-virtual-machine

练习 1 - 确定具有大型工作集的进程

作者:唐僧 huangliang
原文:企业存储技术

推荐阅读

欢迎关注企业存储技术极术专栏,欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
5613
内容数
260
关注存储、服务器、图形工作站、AI硬件等方面技术。WeChat:490834312
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息