Vmware内存使用情况与linux不同

我有一个新的系统在VMware下运行,我只是想了解内存使用情况。

在vSphere客户端,它显示我活跃使用335,544 KB:

在这里输入图像说明

但是,Linux显示我使用3,146,148 KB:

root@PFDEV-SVN:~# free -k total used free shared buffers cached Mem: 4118636 3146148 972488 0 477216 1268364 -/+ buffers/cache: 1400568 2718068 Swap: 6040400 0 6040400 

为什么这是如此不同? 我刚刚读错了吗?

这是Ubuntu 9.10,没有安装vmware工具,运行在ESXi服务器上。

有关内存pipe理和计算主动内存工作集大小的详细白皮书 。

它基本上归结为客人没有使用所有分配给它的所有内存的事实。 相反,只有特定的内存范围在特定的时间段被认为是“活动的”,如果您碰巧过度使用了您的物理内存,则使“非活动”内存成为交换的候选对象。 如果要将其与主机内的内存使用量进行粗略匹配(由于在多个虚拟机间共享内存页造成的偏差),您应该查看“内存消耗”的内存。

人们会希望他们不匹配。 虚拟化的目的之一是允许许多操作系统驻留在一个物理系统上。 在构build虚拟机pipe理程序(如ESX或Hyper-V)时注意到的一件事情是,操作系统通常不会实际使用分配给它们的所有RAM。 虚拟机pipe理程序将相应地使其他操作系统可以使用该物理内存,从而允许您“过量使用”可用的内存量。 过度使用的缺点是,如果遇到每个操作系统实际使用分配的RAM的情况,性能将会下降。