IT pros tasked with maintaining a collection of virtualized servers quite naturally want to ensure that those virtual...
servers perform as well as possible. Fortunately, there are a number of things IT pros can do to improve VM performance.
Don't skimp on the hardware
Although it's trendy for IT pros to look for creative ways to achieve the highest possible VM density, VM performance and density are often at odds with one another. Increasing a host's VM density is often achieved by overprovisioning hardware resources, or by decreasing the hardware resources that are allocated to VMs.
It's important to remember that an application's system requirements don't change simply because the application is running inside of a VM. Although it's important to avoid wasting resources by allocating excessive resources to VMs, it's just as important to make sure that VMs receive the resources required in order to achieve the desired level of performance. If you use mechanisms such as dynamic memory to overprovision hardware resources, you must do so in a way that guarantees that the VM will always receive at least enough hardware resources to meet the minimum system requirements for the applications that are running within the VM.
It's important to remember that the hypervisor also needs hardware resources in order to function. As such, you should set up host reserves to prevent the hypervisor from being depleted of the resources that it needs.
Use current generation VMs
You may also use the current VM generation to improve VM performance. In the case of Hyper-V, Microsoft indicates that there is the potential to see faster boot times or installation times by using Generation 2 VMs. Unfortunately, there is no way to change a VM's version without using backup and restore. New VMs should be created as Generation 2 VMs, unless there is a compelling reason to use legacy VMs.
VMware also uses the concept of VM hardware generations. Although VMware hardware generations don't directly impact performance, each hardware generation adds new hardware support, which can in turn improve performance. Unlike Microsoft, VMware provides a procedure for upgrading a VM's hardware version.
Avoid using hardware emulation
Yet another thing you can do to improve VM performance is to avoid using hardware emulation. Hyper-V Generation 1 VMs, for example, can emulate legacy network adapters in an effort to achieve compatibility with guest OSes that aren't otherwise Hyper-V aware. When possible, it's better to install the Hyper-V Integration Services onto a VM. This allows the guest OS to use synthetic hardware instead of emulated hardware, which results in better overall performance. Similarly, VMware administrators can achieve better VM performance by installing the VMware tools onto their guest operating systems.
Be aware of the impact of resource contention
The number one thing that hurts VM performance is resource contention. Resource contention occurs when two or more workloads are competing for hardware resources. This happens when there aren't enough hardware resources available to meet the demand.
There are a variety of techniques that can be used to overcome resource contention. Some of these techniques include hardware upgrades and VM load balancing.
In some cases, it's also possible to use resource pooling as a means of overcoming resource contention problems. Windows Server's NIC Teaming feature, for example, allows a collection of physical network interface controllers to be used as a single logical NIC, thereby increasing the network bandwidth that's available to the VMs.
Remember that VMs aren't just competing with other VMs for hardware resources; they are also competing with the hypervisor itself. Because the hypervisor consumes some of the available hardware resources, it's a good idea to do what you can to prevent the hypervisor from consuming resources that could otherwise be used for hosting VMs. For example, many administrators isolate host management traffic and live migration traffic to one or more dedicated network adapters, so as to prevent management functions from robbing VMs of network bandwidth.
Avoid using hardware configurations that increase overhead
Your virtualization host servers have a finite amount of hardware resources available for use. One of the keys to improving VM performance is to avoid configuring your hardware in a way that results in additional overhead, thereby decreasing overall performance.
The best example of this is probably the storage architecture. A storage array that is configured to RAID 5 or 6 will not perform as well as if it were configured to use RAID 0, because of the increased overhead involved in writing parity information. RAID 1+0 -- sometimes referred to as RAID 10 -- generally provides the best balance between performance and fault tolerance.
Although there are a number of ways to increase a virtual server's performance, administrators must typically strike a balance between performance, VM density and cost. The best way to do this is often to allocate hardware in a way that provides the VM with the resources that it needs, but without wasting hardware resources through excessive allocations.
Which server memory configurations are worth using?
Boost VM performance with these storage configuration tips
Overcome storage subsystem issues