memory savings. Using Dynamic Memory can enable running many more virtual
machines on a server, thanks to the optimized use of memory.
Some types of services need special consideration when using Dynamic Memory, and
others should not use it. I’ve included some of the main ones in the following list.
Ultimately check with the application vendors for their support of Dynamic Memory:
Linux VMs were not able to utilize Dynamic Memory until the release of Windows
Server 2012 R2, which provides updated Linux Integration Services. This allows
recent distributions of Linux to leverage Dynamic Memory, but older releases
without updated Integration Services may not be able to do so.
The Exchange 2010 and above Mailbox server role checks the amount of memory
when the mailbox server starts and then does not recheck it. So Exchange will not
take advantage of additional memory if it’s added to the virtual machine after the
mailbox service has started.
The Enterprise SKU of SQL Server supports the hot-add of memory into the
operating system, which is how SQL Server treats Dynamic Memory. For SQL
Server to leverage additional memory, you must be running the Enterprise SKU of
SQL Server. With SQL Server Enterprise edition, the physical memory is checked
every second. If the memory has increased, the target memory size for SQL Server
is recalculated, which is how the additions from Dynamic Memory will be seen.
Because SQL Server has its own caching mechanisms regarding free memory, the
buffer percentage should be set to 5 percent for a SQL Server virtual machine
instead of the default 20 percent.
Like SQL Server, Java also has its own caching mechanisms. The buffer percentage
should be set to 5 percent for virtual machines running Java workloads instead of
the default 20 percent.
It should be clear that Dynamic Memory is not a memory overcommit technology.
Dynamic Memory gives a virtual machine an initial amount of memory and then, as
the virtual machine uses the memory for processes, additional memory is added if
available in the host. This assures the best use of memory while not running the risk
of overcommitting the amount of memory available to virtual machines.
The maximum amount of memory that can be assigned to a virtual machine with
Windows Server 2012 Hyper-V is 1TB. One other memory-related setting is available
for a virtual machine: the Smart Paging file location. Smart Paging files were
necessary because of the change in Windows Server 2012 that introduced the
Minimum RAM configuration memory option for a virtual machine. The new
minimum RAM capability introduces a potential problem. Consider the following
scenario on a host that is fully utilized from a memory perspective:
1 . A virtual machine has been running for a period of time, and the amount of
physical RAM allocated is set to its Minimum RAM value, 512MB. The additional
memory it was allocated when it started (startup RAM, which was 1GB) has been
taken by Hyper-V through the balloon driver process.