How to Specify How Much RAM Is Used by All Virtual Machines

In VMWare workstation there are various physical memory options according to this article:

Memory Use on the Host

Can you change these options with Fusion?

I'm setting up a lab environment and trying to run 3 x ESXi VM's simultaneously on my Macbook Pro with 4GB of RAM.

Each ESXi VM needs to have 2 GB's allocated or it won't boot and I can't even start a 2nd VM.

I wont to tell the VM's that they have 2GB's so they boot and when they require the memory Fusion just uses a swap file instead.

My MAC is running 2 x 120 GB solid state drives so I don't really want to upgrade the memory when these drives could probably be used with swap files.

It looks to me that Fusion is not configurable and I can't choose to over allocate memory or configure file swapping instead.

I would like to be able to change these settings even if it causes the VM's to crash or run poorly for learning purposes.

0 Kudos
2 Replies

What I'm about to present I've not tested in VMware Fusion and do not know if it will work.

In VMware Workstation when one selects Edit > Preferences... Memory and in the Additional memory frame one has three choices, "Fit all virtual machine memory into reserved host RAM", "Allow some virtual machine memory to be swapped" and "Allow most virtual machine memory to be swapped".  IIRC the default is "Allow some..." and when one changes the default the following option is set/changed in the Host Defaults config(.ini) file as they correspond to the order presented here.

prefvmx.minVmMemPct = "100"

prefvmx.minVmMemPct = "50"

prefvmx.minVmMemPct = "25"

In the Reserve memory frame if the default amount is changed then following option is set/changed in the Host Defaults config(.ini) file.

Syntax: prefvmx.allVMMemoryLimit = "ValueInMegabite"

Example: prefvmx.allVMMemoryLimit = "2048

Additionally while I was changing setting the follow options was set/changed although I didn't get a handle on what triggered it and don't have time at the moment to go back and retest.  However you could investigate this on your VMware Workstation install yourself.  If I have time later to I will, but no promises.

Syntax: prefvmx.useRecommendedLockedMemSize = "TRUE | FALSE"

Example: prefvmx.useRecommendedLockedMemSize = "FALSE"

In VMware Fusion the Host Defaults config file may not exist, might have to be created manually and the path to which is show in the vmware.log file.  Look for "HOST DEFAULTS" and in will probably be pointing to "/Library/Preferences/VMware Fusion/config".

Maybe one of the VMware developers will see this thread and comment whether or not these options will work with VMware Fusion or not however I doubt it would hurt to try.  Also make sure all Virtual Machines are shutdown, not suspended and VMware Fusion closed when editing the config file.

0 Kudos

Hi Woodyz

Re-read your post not sure why I did not pick up on this before.

I checked the logs and found the HOST DEFAULTS entry and it  does point to: /Library/Preferences/VMware Fusion/config

So I created a text file called config in that folder and added the line : prefvmx.minVmMemPct = "25"

Does not seem to have had an effect but not sure its being read.

Do you know of a string I could add in there that could indicate if the config file is being read and applied.

I also looked in the preferences file and did find this entry

prefvmx.defaultVMPath = "/Volumes/OCZ/Virtual Machines.localized"

So it seemed appropriate to add the one you recommend after that line:

prefvmx.minVmMemPct = "25"

But still no improvement or I still get the same message of not being able to run a second VM, I don't know of another way to tell.

I also tried adding into the VM's vmx file but no noticeable difference

Without some further support I think we're probably being hopeful as to what is the right file and settings.

Looks like VM Workstation is more powerful or at least more configurable

0 Kudos