How does SCVMM Dynamic Optimization work?

Microsoft's Dynamic Optimization feature can help ensure your VMs are running efficiently, but do you know how the process works?

Dynamic Optimization is a feature of System Center Virtual Machine Manager that allows VMs to be load-balanced across Hyper-V, VMware and Citrix XenServer host clusters that support live migration. This feature can improve efficiency and reduce resource contention in clustered environments.

However, before you can allow SCVVMM to load balance VMs across the host cluster, there are two settings that you must configure on the property page of a VMM host group:

  • You must specify the interval time. The setting labeled: "Automatically migrate virtual machines to balance load at this frequency," allows you to select an interval in minutes.
  • You must also configure threshold values for CPU, memory, disk I/O and network I/O that VMM will use for comparing with the current values.

When you enable Dynamic Optimization, SCVMM relies on a timer function, invoking the feature and checking for automatic load balancing opportunities. By default, the Dynamic Optimization interval is configured to start every 10 minutes.

First, SCVMM's timer queries the VMM host groups that have been configured. Then, SCVMM's timer queries the VMM host groups to get a list of host clusters that have been configured with the live migration feature. It is important to understand that Dynamic Optimization only works for host clusters. It doesn’t work for standalone virtualization hosts or hosts that are in the maintenance mode. SCVMM then starts monitoring resource utilization on all nodes within the host clusters. The timer function collects available resource values for CPU, RAM, disk I/O and network I/O from every cluster node. The SCVMM timer function compares those values to the threshold values set by the administrator on the Dynamic Optimization tab, within the property page of the SCVMM host group, and then compares these values with the values collected in the previous step. At this stage, the two values are compared. If available resource values fall below the threshold values configured on the VMM host group, VMM timer function invokes the "Optimize Hosts" function to load balance VMs across host clusters.

This automatic Dynamic Optimization works very well in most environments. If you have any issues enabling the automatic Dynamic Optimization feature, you can always optimize an individual host cluster and load balance VM load equally by running Dynamic Optimization manually. All you need to do is right click on a host cluster in the "VMs and Services" pane, and then click the "Optimize Hosts" action. This will perform the above steps for the selected host cluster -- except for the automatic rebalancing. Instead, SCVMM will present a list of VMs to be migrated for load balancing purposes. An administrator will then need to review and approve these changes.

Next Steps

Allow your hypervisor to load balance for you

Optimize VM performance with proper resource use

Dynamic memory versus memory overcommit

Dig Deeper on Virtual machine performance management