Does Dynamic Memory Negatively Affect VM Performance?
In a word, no, but as with most things in life there are scenarios in which Dynamic Memory can cause problems:
- Databases like SQL and Oracle will explicitly tell you in their documentation that Risk When Using Dynamic Memory within Hyper-V (sqlperformance.com).
- One of the obvious issues with Dynamic Memory on VM’s with Databases is that databases like SQL will consume as much RAM as they have access to, so when using Dynamic RAM, they will quickly gobble up the maximum… so just use Static Memory for DB servers.
- There is always the risk of over-provisioning RAM if you use Dynamic Memory.
- For instance, if you have a host computer with 24GB of RAM and that host uses 4Gb for itself + 20GB for VM’s (5 VM’s wanting 4GB of RAM each) and you add a 6th VM using any amount of RAM, it is possible that at the time you build and start that new VM (perhaps after hours when systems are quiet), there is capacity, but in regular daytime use, that server will be short memory and then all of the VM’s suffer. In this case you will see “Memory Pressure” warnings, which simply means a VM wants more memory than is available (which can occur if the VM is configured with Static or Dynamic memory).
What is HyperV Memory Weight?
In the case where you have over-provisioned your HyperV hosts memory, the MEMORY WEIGHT setting becomes relevant. You can change the default Memory Weight slider from the middle to higher or lower depending on how important the Virtual Machine is to you. If a VM wants more memory and it has a higher weight than other VM’s, Hyper-V will dealocate memory from a lower Memory Weight server and give it to this higher memory weight server.