I have several resource pools that were created for specific projects which the developers then overloaded and this, as you'd expect, lead to memory ballooning.
However I noticed that even with large amounts of ballooning happening constantly the resource pool isn't using 100% of the configured memory.
Example, resource pool has 75GB, it's using 60GB but still has 40GB ballooning.
Why isn't it using the whole 75GB?
further to this, I have another overloaded resource pool to which I added 10GB and over the next day that 10GB was used.
I go back and check the other pool and it is still only using 60GB out of 75GB even though there is memory ballooning and swapping taking place.
The only difference is one pool is a lot more dynamic with vms being created and rebooted whereas the other pool is fairly static.
If the memory balloon driver is taking a certain amount will it continue to take that amount even if the total in the pool is increased? So increasing the memory in the pool will not change anything unless the virtual machines are rebooted to clear the driver?
Seems similar to your previous question: Memory ballooning
I understand why the ballooning is happening, the developers created way more vms that the resource they asked for can accommodate.
My question is why the resource pool isn't using 100% of the memory available.
I would have expected the memory use to approach 100% and then start ballooning so if I increase the memory in the pool the ballooning decreases.
Post all the memory information about your resource pool:
I don't think that memory ballooning has anything to do with amount of the memory used by the resource pool.
Memory ballooning happens when ESXi server is in the memory soft state.
You had to had recently situation, when some ESXi servers had more than 98% of RAM usage:
What happens at which vSphere memory state? | Yellow Bricks
If you want to "unballoon" this memory you need to vMotion affected VMs to less occupied ESXi servers: