2

Possible Duplicate:
Memory sticks, 32 and 64 Bit OS

I have a VMWare virtual machine on my computer (Host: Win7 x64, VM: Win7 x86). The host has 8GB, of which I've allocated 4GB to the VM, as you can see in the below screen shot:

alt text

But when I go to the VM itself, the computer seems to think it only has 3 GB - see screenshot from Task Manager:

alt text

Note the total physical memory of 3071 GB. I have tried powering down the VM and restarting, but it still doesn't use the extra memory.

See also my screen shot of the system: alt text

Is this a limitation of VMWare? Or is there some secret switch I need to flip?

Shaul Behr
  • 1,485

4 Answers4

8

32 bit machines may only address (see) 3 GB of ram. Your VM may be granting it 4 GB, but it can only use 3 GB of it. If you wish to use the remaining space, install a 64 bit OS in the VM.

7

Generally a 32 bit operating system can only see 4 GB of memory, including devices (graphics card etc.). This results in the OS seeing 3 GB of physical memory, even if more than 3 GB is installed. This is true for physical machines and VMs.

32 bit Windows XP, like Windows 2003 Server and later, supported PAE (Physical Address Extensions) which allowed it to use more than 4 GB of physical memory. Windows Vista and Windows 7 do not support PAE any more because of driver incompatibilities that were already present in Windows XP.

Thus generally only 64 bit Windows supports more than 3 GB of physical memory plus 32 bit versions of Windows supporting PAE (Windows 2000, Windows XP, Windows Server 2003, Windows Server 2008); while 32 bit versions of Windows that do not support PAE (Windows Vista, Windows 7) cannot usually see more than 3 GB of physical memory.

Again note that memory assigned to a VM counts as "physical memory" for the OS running in the VM.

3

Chances are that the VM is running in the host OS as a 32-bit program so that it can properly support a 32-bit guest. This means that it is subject to 32-bit limitations and as such the memory it can allocate is subject to the 3GB Virtual Address Space and 1GB Kernel Space limitations that are placed on 32-bit programs.

A nice blog about it: http://blogs.technet.com/b/askperf/archive/2007/03/23/memory-management-demystifying-3gb.aspx

From that page your address space for the hosting program would look like this:

alt text

And your VM would be locked into the 3GB space as the final GB is required for the 32 bit program to have access to the system drivers on your host.

Mokubai
  • 95,412
1

If you see this happening with 64-bit VMs, it's because some VMware products, like ESX/ESXi and Workstation can overcommit RAM to virtual machines.

This allows several VMs to run with more RAM allocated to them than the host machine physically has. While the RAM is overcommited to them, they only actually receive the RAM dynamically once they actually need it.

paradroid
  • 23,297