为什么内存使用量比虚拟内存使用量大得多

我正在一个非常强大的机器上运行一些testing(24GB内存,Windows 2008 64位)

我检查了我的任务pipe理器:物理内存:98%(内存是24GB)

但是,我所有运行的处理器的完全“内存(私人工作集)”使用率不超过16GB

这些额外的8GB用于哪里? 它是由OS IO缓冲区使用,还是在其他地方使用?

谁能提供一些想法?

从Vista / Server 2008开始,Microsoft使用几乎所有可用于caching目的的内存来提高性能:

为什么Vista使用我所有的内存?

请注意,这不会影响新进程的加载时间,因为当需要更多的RAM时,高速caching使用的内存将被丢弃。

MS员工Mark Russinovich (SysInternals的联合创始人)解释了虚拟内存在Windows中的工作原理:

推动Windows的限制:虚拟内存 。

推出Windows的限制是非常有趣的,因为Mark解释了一些通常不被人们所熟知或误解的Windows概念(例如进程地址空间和虚拟内存之间的区别)。

我认为内存不共享,所以每个虚拟机有其内存保留。 这就是为什么你看到你的内存使用率高,因为运行主机操作系统的开销。

Windows(以及任何操作系统,甚至包括带有SmartDisk的DOS)都将在内存(包括networking缓冲区等)中维护一个磁盘和IOcaching。 另一块内存将用于pipe理虚拟机页面表(更多RAM =更多页表)和其他操作系统开销。

不同的操作系统在为进程内存popup磁盘高速caching时具有不同的策略,许多操作系统甚至更喜欢将进程中的死页换出,而不是将磁盘高速caching减less到接近0。