What server factors can I check or adjust to improve hypervisor performance? How much of a difference do server configurations really make?
Today, almost all servers based on x86 architecture can support any of the major hypervisors, including ESXi, Hyper-V or XenServer. The hypervisor and workloads will function, but there is no guarantee that the server will deliver optimum hypervisor performance. Secondary factors such as default BIOS setup options, old or poorly written drivers, storage and memory setups can all conspire to waste precious clock cycles.
If you elect to optimize hypervisor performance, first move the system into a lab environment and perform a thorough benchmark of the system's performance. Verify the effect of any changes by re-benchmarking the system after each change. This allows IT personnel to isolate specific problem areas and identify possible upgrade opportunities.
Start by checking virtualization-related settings in the BIOS setup. All current Intel and AMD processors support virtualization and enable it by default. Discrete I/O virtualization features, such as Intel VT-d capabilities, on the other hand, may need to be enabled specifically if the server supports them. You may also want to disable hyper-threading in the BIOS, or set BIOS power management to a static or high-performance mode to prevent the server from entering a low-power state when a hypervisor is present. Also, consider a BIOS upgrade if it's available to address virtualization support.
More resources on server configurations and performance
A cloudy future for server hardware
Opting for container-based virtualization over hypervisors
Improving network performance through hypervisor configurations
At the hardware level, it's important to verify that you have at least 1 GB of physical memory space available for the operating system (OS). If not, OS performance will suffer, and this will adversely affect the hypervisor and workloads on the system. Though memory techniques like overcommitment and transparent page sharing can improve memory use, systems with inadequate memory may need a memory upgrade.
Next, consider the effect of hardware drivers at the OS level. Driver development shares many of the same goals as hypervisor development: to create compact, reliable and highly efficient code. Unfortunately, many drivers are initially released as bloated, cumbersome, bug-ridden software components that waste system resources. Newer driver versions may offer significant performance improvements, so check with the server vendor for any available chipset, network or storage drivers that are optimized for the OS currently installed.
Don't forget to check for hypervisor software updates that address server hardware compatibility and performance issues. Hypervisor updates can be particularly important for unusual or exotic hardware platforms that may be more likely to deviate from typical designs.
Finally, remember that workloads depend on disk storage, which is often at least an order of magnitude slower than solid-state memory. Invoking as many spindles as possible is one way to boost storage performance, so it may be helpful to configure the virtual machine storage to use a stripe set or RAID 0, which interleaves data across multiple disks. The storage that contains the OS should, however, be on a disk that does not hold VMs.
This was first published in March 2013