Hi John,
For the most part I typically enable memory reservations when running any flavour of VDI regardless of vendor. If the host and cluster is "right sized" to handle the maximum number of possible active VMs, then reserving the memory will only compliment and ensure that a host is never at risk of being overloaded with more VMs than designed, thus avoiding memory ballooning and performance becoming an issue due to the use of vSWAP which will perform slower than accessing the RAM.
When you reserve all the guest memory, you are also removing the creation of a VSWAP file for every VM which from a storage perspective (assuming SSD and shared) will typically cost more than the associated memory reservation. So it's ultimately a trade off in cost vs capacity and performance.
For example if you have 1000VMs, here are two possible scenarios (all or nothing, a compromise could be found by not necessarily reserving ALL memory i.e. 50%) - assumptions are of course being made that the cluster is dedicated to VDI workloads etc.
- 6GB of RAM per VM, all reserved, this equates to 6TB of RAM (+hypervisor overheads) needed across the allocated hosts. If the cluster is right sized for the 1000VMs for the correct level of concurrency for those that are "active", then the memory wouldn't be being used for any other purpose anyway.
- 6GB of RAM per VM, none reserved, this equates to 6TB of VSWAP storage. The use of the VSWAP will impact VM performance if triggered but similarly, if not triggered will result in the waste of 6TB of capacity.
Hope that helps.
Thanks
Andrew