RAMMap 使用解析:用 Use Counts 看懂 Windows 物理内存的每一个去向(one-small-step 系统系列)

发布时间:2026/10/6 12:18:40
RAMMap 使用解析:用 Use Counts 看懂 Windows 物理内存的每一个去向(one-small-step 系统系列)
文档教程技术博客大模型人工智能【免费下载链接】one-small-step这是一个简单的技术科普教程项目主要聚焦于解释一些有趣的前沿的技术概念和原理。每篇文章都力求在 5 分钟内阅读完成。项目地址https://gitcode.com/gh_mirrors/on/one-small-step点击查看免费下载RAMMap 是微软 Sysinternals 出品的 Windows 物理内存分析工具本教程基于 one-small-step 仓库中《RAMMap 使用解析》一文展开带你逐项读懂 Use Counts 标签页里每一个内存分类的真实含义并学会用它定位内存去哪了这类经典问题。读完本文你将能独立解读 RAMMap 的统计表格把已使用 60%之类的笼统数字拆解成进程私有、文件缓存、内核池等可定位的具体去向。RAMMap 是什么RAMMap 是 Windows Vista 及更高版本上的高级物理内存使用分析实用程序。与任务管理器只给你一个使用中的百分比不同通过 RAMMap 你可以轻松查看Windows 究竟如何分配物理内存内存中缓存了多少文件数据内核和设备驱动程序使用了多少内存。从截图顶部可以看到工具标题栏为 RamMap - Sysinternals说明它隶属于微软官方的 Sysinternals 工具集。其官方下载页面位于 Microsoft Learn 的 Sysinternals 栏目即原文档 Refs 中列出的地址安装后建议以管理员身份运行才能完整读取物理内存统计信息。先看懂界面Use Counts 标签页RAMMap 主窗口上方有一排功能标签页从截图可见依次为Use Counts使用计数、Processes进程、Priority Summary优先级摘要、Physical Pages物理页、Physical Ranges物理范围、File Summary文件摘要、File Details文件详情。本篇聚焦 Use Counts——它按内存用途Usage分类直接回答每一类东西各占了多少物理内存。表格的列从左到右为Usage、Total以及Active、Standby、Modified、Modified no write、Transition、Zeroed、Free、Bad。从列结构可以推断后八列对应 Windows 内存管理器维护的物理页列表状态Active 表示正在被使用、Standby 表示内容仍在但可回收、Modified 表示已修改待写回磁盘、Zeroed/Free 表示空闲可分配、Bad 表示硬件坏页等。窗口上方还有一条彩色进度条用不同颜色块直观展示各状态的内存占比。在解读任意一行时先看Total列该分类占用的物理内存总量再拆到各状态列看它处于什么生命周期。以本截图约 128 GB 物理内存的机器为例汇总行 Total 为 133,865,992 K即约 127.7 GB是下面所有分类之和。Use Counts 内存分类详解下面 14 个分类是 Use Counts 的核心每个都给出定义、截图中的实际数值单位 KB与解读。进程与用户态内存Process Private进程私有内存由特定进程独占使用的内存空间不能被其他进程访问或共享。截图中该项 Total 为 23,409,936 K约 22.3 GB且绝大部分处于 Active 状态22,779,616 K说明当前运行中的应用程序占用不小。Shareable可共享内存可以被多个进程访问的内存区域包括共享的 DLL、COM 对象等。截图中该项为 857,908 K约 820 MB量级明显小于 Process Private符合进程独享为主、共享为辅的常态。Session Private会话私有内存与特定用户会话相关的私有内存空间主要用于存储用户界面相关数据如桌面、窗口、输入法、资源管理器等会话级 UI 数据。截图中该项仅 60,916 K约 60 MB数值很小属于正常现象。文件与缓存Mapped File内存映射文件由内核缓存管理器Cache Manager管理将文件内容直接映射到进程地址空间中用于提高文件访问效率多个进程可用相同映射方式和访问权限共享同一个文件的映射。截图中该项 Total 高达 35,427,512 K约 33.8 GB是仅次于 Unused 的第二大分类——这是本机最大的缓存去向。更值得注意的是其中 32,370,300 K约 30.9 GB处于Standby状态内容仍在物理内存中但随时可被回收这正是 Windows拿空闲内存当文件缓存的典型表现。Metafile元文件内存用于存储系统元数据如 NTFS 文件系统的元数据等。截图中该项为 2,283,588 K约 2.2 GB其中 Standby 1,544,096 K、Active 739,440 K。Metafile 是后面排查文件服务器内存异常的关键指标。内核与系统结构Page Table页表管理虚拟内存到物理内存映射关系的系统数据结构记录虚拟地址到物理地址的转换信息。截图中该项 527,076 K约 515 MB几乎全部 Active524,620 K因为页表本身必须常驻。Paged Pool分页池系统核心组件使用的、可被换出到磁盘的内存池主要用于存储系统数据结构、I/O 请求等。截图中该项 1,420,752 K约 1.4 GB与任务管理器中的分页缓冲池Paged Pool是同一概念——在姊妹文章《Windows 任务管理器内存标签说明》中有对应讲解。Nonpaged Pool非分页池系统核心组件使用的、不可被换出到磁盘的内存池用于存储必须常驻内存的关键系统数据。截图中该项 1,478,444 K约 1.4 GB且 100% 处于 Active——因为它不允许被换出。System PTE系统页表项系统用于映射内核空间和系统数据的页表条目资源池。截图中该项 1,770,548 K约 1.7 GB同样几乎全部 Active1,770,420 K。Driver Locked驱动程序锁定的内存被设备驱动程序锁定、不能被换出的内存页面。截图中该项 53,740 K约 52 MB属于较小但必须留意的类别——驱动锁定过多会挤占可分页空间。Kernel Stack内核栈内核执行函数调用和存储临时数据使用的内存空间。截图中该项 216,404 K约 211 MB其中 Active 169,168 K、Modified 47,236 K规模与系统线程数量正相关。特殊与空闲AWEAddress Windowing Extensions地址窗口扩展允许 32 位应用程序访问超过 4GB 的物理内存在 64 位系统中已逐渐淘汰。可以看到截图中该项为 0与作者原文档的观察一致。Large Page大页面内存使用较大的内存页通常是 2MB 或 1GB来减少页表开销、提升性能常见于数据库和大内存应用。截图中该项同样没有数值说明该机器上未使用大页。Unused未使用的物理内存当前空闲可用的内存页面。截图中该项为 66,359,168 K约 63.3 GB其中 65,441,696 K 处于 Zeroed已清零、可立即分配状态——说明这台机器内存相当充裕系统为后续程序启动预留了大量空闲页。Total总计所有类型内存使用的总和即 133,865,992 K约 127.7 GB与机器物理内存总量对应。如何用 RAMMap 定位问题Use Counts 的价值在于看异常把各类别的数值与机器实际负载对照就能快速圈定内存去向。Metafile 使用量很大原文档给出的经典场景是——系统正在访问大量文件这可能出现在文件服务器上导致缓存的 NTFS metafile 数据无法从缓存中释放。如果一台文件服务器的 Metafile 持续高位且 Standby 迟迟不降说明元数据缓存长期占着物理内存需结合文件访问模式评估是否需要限制缓存或调整负载。Mapped File 异常偏高说明有大量文件内容被映射进内存。虽然多数时候是良性的文件缓存但若伴随 IO 性能下降可以切到File Summary / File Details标签页从截图可见的标签栏可以看出它们用于查看具体是哪些文件占用了映射缓存——这是进一步定位谁在吃缓存的入口。Nonpaged Pool 持续增长由于该池不可换出若其数值随时间只涨不跌实践中常被怀疑是某个内核驱动存在内存泄漏嫌疑可结合驱动更新排查。Unused 占比很大如上文截图所示约 63.3 GB 空闲说明内存供给充足、压力较小反之若 Unused 长期趋近于 0 而 Mapped File 的 Standby 也很低则意味着内存紧张可能需要扩容或排查进程占用。需要说明的是单看一次快照只能得到此刻的状态定位问题时要结合负载前后多次采样对比趋势比绝对值更有说服力。与任务管理器内存标签的对应关系RAMMap 与任务管理器观察的是同一套内存系统只是视角不同任务管理器给你量的概览RAMMap 给你分类去向的明细。仓库中的《Windows 任务管理器内存标签说明》已详解了任务管理器中的各项指标其中分页缓冲池 / 非分页缓冲池与 RAMMap 的 Paged Pool / Nonpaged Pool 一一对应已缓存Cached对应 RAMMap 中 Mapped File 的缓存部分Standby 页即操作系统用于缓存文件数据的内存区域已提交Committed是操作系统承诺分配的内存总量含尚未实际使用的部分RAMMap 中并不直接展示这一虚拟承诺值——它是比物理内存更宽的账本。对照阅读两篇文章你就能把任务管理器显示已提交很高这类现象进一步拆解到 RAMMap 的物理页分类中去验证。使用提示与注意事项RAMMap 需在 Windows Vista 及以上版本运行并建议以管理员权限启动以获得完整统计截图可见主菜单包含 File /Empty/ Settings / Help其中 Empty 菜单提供清空各类内存列表如 Standby、工作集等的操作入口常用于做清空后再观测的对比实验但请勿在生产环境中随意清空本文所有数值均取自仓库内的 RAMMap 截图不同机器、不同负载下数值差异很大解读时应以自己机器上的实际快照为准。Refs微软官方 Sysinternals RAMMap 下载与文档页面原文档 Refs 中所列地址本文姊妹篇《Windows 任务管理器内存标签说明》本仓库赞分享文档教程技术博客大模型人工智能【免费下载链接】one-small-step这是一个简单的技术科普教程项目主要聚焦于解释一些有趣的前沿的技术概念和原理。每篇文章都力求在 5 分钟内阅读完成。项目地址https://gitcode.com/gh_mirrors/on/one-small-step点击查看免费下载相关推荐如何用Mole打造终极Mac清理神器一键释放数十GB空间如何用Mole打造终极Mac清理神器一键释放数十GB空间 Mac电脑用久了是不是感觉越来越慢磁盘空间总是不够用别担心今天我要介绍一个让你彻底告别系统卡CLI开发工具运维观测MMDetection 多目标跟踪推理实战使用 mot_demo.py 推理视频与图像序列MMDetection 多目标跟踪推理实战使用 mot_demo.py 推理视频与图像序列 MMDetection 在 demo/mot_demo.py 中提文档教程技术博客大模型人工智能heapprofd 排查实录从 RSS 尖峰到调用栈定位heapprofd 排查实录从 RSS 尖峰到调用栈定位 dumpsys meminfo 里 Native Heap 持续上涨、进程在夜间被 lmkd 杀掉时可观测性后端开发工具前端数据可视化上一篇AntiMicroX终极指南如何让任何游戏完美支持游戏手柄下一篇AI编程革命7个终极技巧彻底改变你的开发工作流创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考