Hyper-V Program Manager
Hyper-V now allows you to configure a startup, minimum and maximum memory limit. If you are like me – you probably leave the startup ram at the default of 512mb – but you should really consider changing it to better suit your environment. Here is a quick screenshot from one of my Hyper-V servers:
Two things that I have discovered:
Why would I increase the startup ram for the TMG server? Well – we do not start adding & removing memory dynamically until fairly late in the boot process for Windows (basically we wait until the system is mostly up and running before we start doing anything fancy with memory). TMG loads a *lot* of processes before we start reacting with dynamic memory.
The result is that while this virtual machine will always run well at the end of the day (no matter what the startup ram value is) the amount of memory assigned for startup ram can have a profound impact on boot times. When my TMG server has a startup ram value of 512mb it consistently takes ~10 to 15 minutes from cold boot to fully functional. If I bump the startup ram to 2GB it boots and is functional in under 2 minutes.
The net result for me is that my system is fully functional a lot quicker after any servicing, and I have not had to give up any resource to enable this.
I believe this is also true for almost any application server (from SQL, to SharePoint, to Exchange). Although some are not supported with DM, they work pretty well with it - you only need to boot them with reasonable amount of memory (otherwise the boot times could go up to tens of minutes). An Exchange 2010 with FPE needed between 15 and 20 mins to boot with 4GB ram and under 5 with 16GB.
But what is interesting for me is if HV page file is used when VMs with more cumulative startup memory than the host's (but with less cumulative minimum) are booting at the same time? And even if you delay some of those VMs' startup times, will HV "shrink" the also running (to their minimum) so that the others can boot successfully?
Nice tip. Just tried to apply it, but sadly the amount of startup RAM can only be changed when the VM is not running... I understand the technical reasons for that - but it's very annoying from a usability perspective. I understand that it's difficult to change it during runtime (since dynamic memory might not be active on a VM), but let me change it and update the value on the next restart of the VM. That'd be nice, because I don't want to shutdown VMs just to change configuration.
Speaking of dynamic memory: Will it be supported for Linux guests in the foreseeable future?
Now Linux support would be great :)
My SQL2012 with big tabular cubes need at least 10 GB for startup, otherwise analysis service won't start...