I had 9 VM’s
– 4 vCPU’s and 32 GB RAM
– all Citrix ones with Windows OS
– 32GB RAM reserved (equal to the configured memory).
– some amount of reserved CPU (dont remember the exact figure, but about 3 Ghz)
– 3 hosts running ESXi 5, 128GB RAM, 2-way 6 core units with hyperthreading enabled.
– HA policy = host failures a cluster tolerates = 1
– Several DRS rules in place as requested by the client and vendor. Moderate setting on DRS aggressiveness.
– No resource pools
– Total of about 25 VM’s in cluster
Now there was significant ballooning going on in the cluster with a number of other VM’s suffering as a result of these reservations. I got handed the troubleshooting of this. I checked the utilization within the 9 Citrix VM’s, none of the guests were using more than 10GB, the CPU utilization also sat at about 25%.
I decided to remove the reservations for both RAM and CPU. Powered down the VM’s, removed both RAM and CPU reservations, left the CPU shares at High, and powered up the VM’s. Left the configured memory at 32GB.
After the change:
Similar stats within the VM’s today (RAM at about 10GB, CPU at 25%). Ballooning still happening for some VM’s, not quite as much though. The hosts dont seem to have released the physical memory backing the VM’s back into the cluster resource pool. Check below screenshots:
So obviously removing the reservation had little to no effect on the physical memory being backed by ESXi. A vMotion between hosts didnt help either. The FIX?
Drop the configured RAM on the VM’s down. Check the resultant drop in host memory!
My hosts are now humming along nicely. No more contention/ballooning/swapping or any of that nasty stuff.