我有一个简单的问题。我有一台 64 位 Ubuntu 10.04 服务器,具有 24GB RAM,用作 VMWare Workstation 7.1 主机。我想使用内存驱动器作为 VM 内存位置,我将其设置如下:
tmpfs /mnt/vmware tmpfs defaults,size=100% 0 0
一切正常。接下来,我想为虚拟机分配 16GB 的 RAM,我知道这很多,但我们进行了很多需要大量 RAM 的处理。
启动虚拟机并运行 df -h 后,我获得该驱动器的以下内容:
Filesystem Size Used Avail Use% Mounted On
tmpfs 24G 11G 14G 44% /mnt/vmware
为什么可用大小 (14GB) 不等于驱动器的大小 (24GB)?为什么整个 16GB 不会分配给内存空间,这是我在 vmware guest .vmx 文件中设置的?分配给 tmpfs 文件系统的空间是否有限制?
谢谢你的时间。
答案1
可用空间不必等于大小。在这种情况下,您看到的/dev/shm
是系统为该文件系统使用的空间很少或为零(用过的= 0),因此在这种情况下可用的=尺寸。
我不知道为什么df
没有显示 16G 的已用空间,但一般来说,当一个进程向内核请求分配空间时,该请求可能会被批准,但内核实际上可以分配更小的空间,以后(如果需要更多内存)再扩展它。
答案2
如果虚拟机映像被分配为稀疏文件,则其表观大小有可能比所讨论的文件系统更大。
实际上,如果文件的区域尚未写入,则无需分配任何页面来存储完全为零的部分。因此,您创建的来宾映像文件中大概有 5GB 是空的。如果虚拟机使用了该空间,则会分配额外的页面来存储它(假设当时有资源可用)。