Hello all,
I have a VM that is configured with 8GB of RAM. I happened to look at the Resource Allocation tab and noticed that its Memory Limit is only at 4GB. Here are my Guest Memory stats real quick:
Private: 4.09 GB
Shared: 221 MB
Swapped: 0
Compressed: 0
Ballooned: 3.28 GB
Unaccessed: 415 MB
Active: 1.04 GB
My question is this: if I were to edit the settings of this VM while it runs and increase the memory limit, what will happen to the VM? Will it slowly reduce its ballooning, or do I need to reboot it?
The Guest OS is CentOS 5.6 32-bit.
Thanks in advance!
Matt
By setting the limit you forced the vmkernel to utilize balloon memory - by removing the limit now allows the vmkernel to provide physical ram if available which it sounds like it was available but it does take time as you learned -
You can adjust the limit while the VM is running with no issue - my suggestion is to reset it to unlimited but do not be confused the VM will still be limited to the 8 GB assigned to the VM -
Thanks! I figured as much. So when I change the memory limit, what will it take to get the ballooning to go down? Will the VM do it on its own?
check if removing limitation the vm works better. check box unlimited.
or if you need HOT ADD memory, follow to you check if your guest supports add memory HOT http://www.simonlong.co.uk/blog/2009/12/09/vmware-hot-add-memory-cpu-support/
answering your question about ballon
If the VM is not using it provides the resource to another virtual machine. This is automatic.
Please consider marking my answer as "helpful" or "correct"
Message was edited by: MauroBonder
Actually it looks like I seen the answer to my own question (apologies) the ballooing slowly went down to 0 MB after a couple minutes.
Thanks all!
By setting the limit you forced the vmkernel to utilize balloon memory - by removing the limit now allows the vmkernel to provide physical ram if available which it sounds like it was available but it does take time as you learned -
Thanks David, got it! When the VM was forced to utilize balloon memory, where was it getting that from? Other VMs?
So for example, previously the VM was configured with 8GB of RAM and had a limit of 4GB of RAM. The vmkernel allocated 4GB of physical RAM from the host to this VM. So when it was using ballooning for the rest, where did that come from?
in reality if you VM was configured with a 4 GB limit and was trying to use all 8 GB assigned to it it should not have been using Balloon memory but the per VM VMkernel swap file - let me explain how virtual memory works -
The vmkernel always will use physical RAM when storing the VMs memory. To conomize on memory the vmkernel will utilize Transparent Page Sharing (TPS) storing identical pages one time. If the vmkernel is not bale to provide physical RAM it will attempt to ustilize balloon memory. Balloon memory is a component of VMware Tools. It is driver that is installed in the guest OS of the VM and allows the vmkernel to influence how the guest OS utilizes its own virtual memory. So if the vmkernel determines that it is not able to provide the necessary RAM it will activate the Balloon Driver in the VM forcing the guest OS to use its own virtual memory (e.g. swapfile or swap disk depending on the OS). If this does not free up enough memory then the vmkernel will start swapping to the per vm VMkernel swap file.
So you can see the Balloon memory is actually virtual memory inside the VM -
Makes sense, thanks again David.
Matt