内存正在Windows任务pipe理器中报告?

我有一台安装有16GB RAM的Windows Server 2008 R2 64位SP1机器。 如果我打开任务pipe理器,它会告诉我,几乎所有的内存都已满,只有它不是。

Total是正确的,但caching,可用和自由总计似乎并不反映服务器上实际可用的RAM数量。 什么可能导致这个?

Windows任务管理器misreports内存使用情况

更新根据@ evan-anderson的build议,我们加载了RAMMap。 它报告了一大堆被“图元文件”吸取的内存。

find一个post ,通过RAMMap解释一个修复。 我这样做,似乎正在慢慢释放内存。 但是,每隔几天就要做这件事似乎有问题。

还发现了关于这个问题的服务器故障问题 ,并且正在考虑@BeowulfNode42的解决scheme

“caching”,“可用”和“免费”的总数不会累加到“总计”中。 这里有一个很好的博客条目,详细描述这些数字 。

任务pipe理器告诉你88%的物理内存已被占用。 您有一些分配了大量内存的进程(或进程的组合)。

如果你不能追踪哪个进程正在使用这个,我想这台服务器很可能运行在Hyper-V或者VMware ESXi(或者KVM或者Xen)上,并且正在发生膨胀。 在Hyper-V中,这被称为dynamic内存。 在其他产品,它被称为气球。

膨胀过程中会发生什么情况,即当物理主机的内存不足以及其他客户需要时,主机将在未充分利用的主机上“膨胀”气球驱动程序,这会导致气球驱动程序显示消耗内存。 这样做是为了确保它可以安全地将该块物理RAM重新分配给另一个guest虚拟机。 检查您的主机资源利用率和dynamic内存选项。 如果你的RAM太多了,这几乎肯定是发生了什么事情。