Dynamic memory has some people worried. I get it because even with my monster orange laptop (Dell Precision M6500) with 16Gb RAM and 600Gb of storage across 3 SSDs I can see my memory is better optimised and I can be really aggressive with the memory each virtual machine gets on start up and let my priority settings handle the excess. At the other end of the scale my good friend Jeff Woolsey gets it because was able to provision more virtual machines on less memory for the labs at MMS.
Why is this possible?
Airlines give you a baggage allowance but the plane wouldn’t take off if everyone used that allowance, they rely on some people just having carry on bags. The situation isn’t quite the same in dynamic memory as demand changes moment by moment as each VM asks for and releases memory. What this means is that you can cram in more virtual machines because you can start them with the bare minimum and then allow the rules you define to decide who wins when there is pressure for memory, for exampl in a VDI scenario you might be able to get 25-50% more VM’s running according to another good friend of mine, Kleefy.
So what’s to worry about?
Pushing and pulling memory in and of windows can make understanding what’s happening to your memory harder. Possibly and this is already a reality on other virtualisation platforms, but what do you need this for: second guessing the way Hyper-V works out what to give or to tune and understand a particular service. I would point you to the excellent post the SQL Server team have done on dynamic memory and then apply this to your application.
You might have thought there was some sort of smoke and mirrors going on in dynamic memory and I would point you to another colleague Hector Linares who is delighted that even Vmware get that dynamic memory works OK.
And of course if you are worried about it in certain scenarios because you have proved it’s an issue then turn it off for that virtual machine.
My final thought about these concerns is that it works for me, and you can only make that statement if you have turned it on and tried it yourself.