我正在一台非常强大的机器上运行一些测试(24GB RAM,Windows 2008 64位)
我检查了我的任务管理器:物理内存:98%(RAM为24GB)
但是我所有正在运行的处理器的总“内存(私有工作集)”使用量不超过 16GB
额外的 8GB 是用来做什么的?是被操作系统的 IO 缓冲区使用,还是用在其他地方?
有人可以提供一些想法吗?
答案1
是的,用于缓存和缓冲。现代操作系统试图变得聪明……如果你有 8GB 的内存闲置着,没有用于任何事情,那么它就被浪费了。因此,只要没有应用程序请求它,操作系统就会找到其他东西来使用它来尝试加快速度。不用担心——如果你的应用程序需要内存,操作系统会在应用程序请求时立即释放它。
答案2
快速回答:RAM 中的内存比所有进程的“内存(私有工作集)”的总和要多得多。
首先,共享所有进程的工作集。现在其中大部分实际上是在进程之间共享的,因此它只计入总 RAM 使用量一次。但任务管理器所称的“内存(共享工作集)”实际上应该称为“潜在可共享”。我们无法从该显示中看出实际共享了多少。我们只能说,那里使用的总 RAM 将是所有进程中最大的。但实际上会远不止于此。
然后是内核空间分配,它不会出现在任务管理器的进程列表中。但在“性能”选项卡中,您会看到分页和非分页内存的指示 - 这些是内核池。所有非分页池始终位于 RAM 中,大部分分页池也是如此。
如果您想真正了解“我的所有 RAM 都用于什么用途”,请查看 sysinternals 工具“RAMmap”。请注意,在“使用计数”显示中,“活动”列(可能还有“已修改”)是唯一计入 RAM 的内容用法。