Virtual machine migration can greatly affect CPU resources in your cluster and lead to unwanted queuing of tasks on your virtual machines.
What is virtual machine migration?
Hypervisors are used to create and run virtual machines. A typical hypervisor is responsible for managing the activities, and allocating resources for, multiple virtual machines. Each hypervisor has access to a fixed amount of physical disc memory, for example 1 TB. A hypervisor uses this disc space to provide memory as needed to each of the virtual machines it manages.
Because virtual machines vary in their need for memory based on current activity levels, a hypervisor can allocate more memory to its virtual machines than it has available. The practice of over-allocating resources to virtual machines works fine until the machines claim the same resources simultaneously.
When a hypervisor is called on to deliver more resources to a virtual machine than it has available, the hypervisor temporarily migrates the virtual machine to another disc or storage array that has available resources. The process of temporarily moving a virtual machine to another disc that has available resources is called “virtual machine migration.”
How does VMware manage virtual machine migrations?
In VMware vCenter, virtual machine migration is known as “vMotion”. During a migration, an entire running virtual machine is moved from one physical server to another without being shut down. Such migrations occur when the resources of a vCenter server are overloaded and another vCenter server is called on to take responsibility for the migrated virtual machine. Such migrations can be triggered manually or can occur automatically without any administrator action.
Dynatrace tracks vMotion events for all the vCenters in your IT infrastructure, showing you daily (counters are reset at midnight each day) and past-week percentages.
Each vMotion event consumes resources on the target ESXi host. Even when newly migrated virtual machines don’t immediately require more CPU or memory, other virtual machines that exist on the same host may need more resources. The result of this is that target ESXi hosts can experience problems allocating requested resources and CPU saturation can occur.
Why is “Ready time” important?
Ready time is the percentage of time that a virtual machine is ready but can’t be scheduled to run on a physical CPU.
CPU Ready time should remain below 10%. A CPU Ready time measurement of over 10% indicates that your virtual machines are competing for available resources and a virtual machine is unable to execute all of its tasks. Such contention can lead to a drop in application performance.
Machines with a Ready time value over 10% will likely have poor performance.
To learn more about how virtual machine migration degrades CPU performance, see Virtual machine migration as root cause