VMware Cloud Community
mikrowiz
Contributor
Contributor
Jump to solution

Balloon Target and Balloon above Active on host with plenty of free memory

Just when I think I understand ESX memory management, something confuses me again. My understanding of the balloon driver, is that when an ESX host needs additional memory to allocate to other VM's that the VMKernel steals back memory from running VM's. However, I have a VM that seems to be showing that the balloon target is well over what the currently "Active" memory is, and the ESX host that the VM is running on has 6GB of unused memory. I believe this could have led this VM to get into a memory starved state once already, because I found it unresponsive, only to discover that it was only using 30% CPU and 2GB Active out of 6GB of allocated memory, but doing a ton of memory swapping. What gives?

Why in the world would the ballon driver target memory on a busy running VM, when there is plenty of free memory available on the host, and why would a guest start swapping when it's only using a fraction of the memory allocated to it and the host is sitting on pletty of free memory? None of my other VM's have memory usage charts that look like this.

Reply
0 Kudos
1 Solution

Accepted Solutions
CCSScot
Contributor
Contributor
Jump to solution

This can happen even without resource pools. Check your VM Settings, Resources tab and ensure that the unlimited tick box it ticked on both memory and CPU...

View solution in original post

Reply
0 Kudos
6 Replies
sflanders
Commander
Commander
Jump to solution

What is the configuration of the host / cluster? If you are using resource pools, this could cause the problem experienced...

Hope this helps! === If you find this information useful, please award points for "correct" or "helpful". ===
Reply
0 Kudos
mikrowiz
Contributor
Contributor
Jump to solution

The cluster is made up of 3 hosts. No resource pools. All resources are fair game to all VM's.

Reply
0 Kudos
CCSScot
Contributor
Contributor
Jump to solution

This can happen even without resource pools. Check your VM Settings, Resources tab and ensure that the unlimited tick box it ticked on both memory and CPU...

Reply
0 Kudos
sflanders
Commander
Commander
Jump to solution

I agree, my second recommendation would be to check VM settings

Hope this helps! === If you find this information useful, please award points for "correct" or "helpful". ===
Reply
0 Kudos
mikrowiz
Contributor
Contributor
Jump to solution

Brilliant! Somehow the box got unticked on that one VM. As soon as I set it back to unlimited the balloon driver backed off. So obvious! Thanks for the help!

Reply
0 Kudos
jqvm
Enthusiast
Enthusiast
Jump to solution

I've ran into a similar problem, but after changing the memory limit to 'unlimited' tick box, the balloon memory is still large (1.2GB of ballooning).

  • 2vCPU

  • 4GB Allocated

  • hosted on 5 node Cluster, no resource pools, no HA/DRS, all VM's have 'normal' share settings

  • Cluster resource allocation for VM set to unlimited RAM

  • 32GB ESX physical ram, current ESX RAM stats: 1.2G Balloon, 55% Usage, 5.5G Active, 31G allocated (another 18 VM's are powered on the ESX but the ballooning does not decrease if these are powered off)

  • Windows task mgr reports 100MB free of 4GB, 3GB pagfile used. Application load is applied.

  • No other VM's are ballooning just the single VM

The VM previously had 8GB allocated, and a RAM limit of 2048MB applied via the cluster resource allocation tab. 5.5GB of ballooning was seen in this old configuration when the VM was under load. No other VM's on the host had a ram limit applied.

Any ideas why this VM would be ballooning when the ESX usage is low? The ram limit was changed yesterday and the VM has since been rebooted but it still balloons 1.2GB?

Thanks, Josh

Reply
0 Kudos