VMware Communities
VM013
Contributor
Contributor

VMware Workstation/Player on Win 7 32bit host with 8 GB RAM (RAMDISK?)

Hi everybody,

have been researching this topic for a while, but did not find a final answer yet... I have a Win 7 32bit host with 8 GB RAM. Obviously Windows 7 32bit can only make use of up to 4 GB. Is it possible for the VM to utilize the RAM above the 4 GB used by the host OS? Ideally, I want to have a guest that uses 4 GB from the memory outside of the host memory. Is this possible? Is there a difference between Workstation and Player?

Thanks, VM013.

0 Kudos
6 Replies
piaroa
Expert
Expert

Hey there. Your Workstation will only be able to work with the 3.5GB or so of RAM that Windows 7 sees. The rest of your RAM is literally wasted and you can't use it unless your OS sees it. So basically you need a 64 bit host OS.

If this post has been helpful/solved your issue, please mark the thread and award points as you see fit. Thanks!

If this post has been helpful/solved your issue, please mark the thread and award points as you see fit. Thanks!
VM013
Contributor
Contributor

Hi piaroa, thanks for you quick response. I already thought that this would be the case, unfortunately. As a workaround I am thinking about installing a RAMDISK with 4GB in the address range outside of windows and move the windows pagefile to this RAMDISK, for example:

http://memory.dataram.com/products-and-services/software/ramdisk

In doing so I could make use of all 8GB I have currently installed without needing to move to 64bit OS (I can't for other reasons). So I could assign 4GB to the VM, but paging won't hurt me much since the pagefile is in memory as well (still Windows will need to do some memory-to-memory copies, however this is much faster than memory-to-disk).

Is there anybody who has already experience with that?

0 Kudos
wila
Immortal
Immortal

Hi,

Just to confirm the other post, your VMware workstation will not be able to see more memory as your host OS.

There have been some conflicting posts about this in the past (even from VMware employees) but you can't address more as what your host sees and the 4GB boundary is fixed.

Your suggestion to use a RAM disk for some disk based files at first sounds good. In your case I would probably not move the pagefile to that disk, but the vmware .vmem file. However I'm very doubtful that this product -or any other RAM disk product- is able to access memory outside of what windows can see... even at kernel mode, it still runs under windows in 32 bit mode.

As a result the other 4GB is wasted. What I'm doing in a similar situation is dual boot and install a 64 bit OS on another drive. So while I can't always access all available memory in that host, there are still times when I can.



--
Wil
_____________________________________________________
VI-Toolkit & scripts wiki at http://www.vi-toolkit.com

Contributing author at blog www.planetvm.net

Twitter: @wilva

| Author of Vimalin. The virtual machine Backup app for VMware Fusion, VMware Workstation and Player |
| More info at vimalin.com | Twitter @wilva
0 Kudos
VM013
Contributor
Contributor

Hi Wil, thanks for your precise answer. You are right, I have seen different statements about this topic as well... Regarding the RAMDISK, it seems that it is capable of addressing the memory beyond the 4GB OS limit:

Source: http://memory.dataram.com/__documents/Dataram_User_Manual_35(1).pdf

I will do some testing over the weekend and post the results here.

Last question: what seems to be the better choice:

a) move the .vmem file to the RAMDISK

b) disable .vmem file (mainMem.useNamedFile = "FALSE") and move pagefile to RAMDISK

I would go with option b) as this will allow Windows and the VM to share the RAMDISK equally.

0 Kudos
ItsMeHere
Enthusiast
Enthusiast

Well, the 4GB boundary is a lie that always gets told when discussing 32bit OSes.

In fact, there is no such thing.

Microsoft proves that with their Server OS editions (like 2003 and 2008), and Linuxes do the same. They all leverage the benefits of recent CPUs and memory controllers, and employ a feature called PAE (physical address extension). Of course, your rest of the hardware (and software!) needs to support that, too. I can confirm that I never had a VM crash with my Workstation7 running happily in 5GB of address space on Vista 32bit.

Unfortunately, Microsoft has chosen to restrict the use of memory above the 4GB line for their 32bit workstation OSes. I'm not implying any reasons for that, I just don't know them.

But you can well work around them, e.g. by following information found here:

VM013
Contributor
Contributor

Just wanted to give the community an update on this topic. I have intensively tested the Dataram Ramdisk, which is free, but unfortunately it caused some "Bluescreens of death" on my notebook. Which caused my host and guest to crash simultaneously... Now I moved to RamDisk Plus from Superspeed (http://www.superspeed.com/ramdisk.php) which sells for $59.95, but runs stable for 1 month now.

My Windows 7 32 bit has ~ 3 GB that it can natively address. My notebook has 8 GB built-in memory. Using RamDisk Plus I have created a 4 GB ramdisk which appears as a new drive in Windows. I have moved my Windows pagefile to the ramdisk and configured my virtual machine to use the Windows pagefile for paging instead of its own file. Now I am able to run my VM with 2 GB without ever having a delay from paging effects when switching between host and guest.

Here is my *.vmx configuration:

mainMem.useNamedFile = "FALSE"
prefvmx.minVmMemPct = "50"

Hope this info helps!

0 Kudos