我正在一个非常强大的机器上运行一些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。