The Performance Tuning Guidelines for Windows Server 2012 document is available and I’m reviewing and commenting on notable text in it.
I normally advise that the startup amount of memory in a Dynamic Memory virtual machine is set to whatever is required to get the services up and running. This Microsoft document has another approach:
- Set the VM to start with some small amount
- Configure the paging file to be able to live up to any additional requirements – the paging file maximum size being 3 times the paging file’s initial size
Now if a VM cannot get enough physical RAM, it’ll page internally. Before the questions come in, this is different to how VMware pages; host level paging has no knowledge of prioritisation or usage of memory pages inside a VM. Using the Microsoft approach, the guest OS has complete knowledge of how to prioritise and page in/out memory to suit what is going on.
If you are sizing hosts/VMs appropriate then VMs should always get enough RAM. But I suppose there might be rare circumstances where a number have hosts in a cluster are offline and you have to squeeze more out of your physical RAM.