After our previous article “XenDesktop on Microsoft Server 2008 R2 Hyper-V: Best Practices”, we decided to expand on this series and post some additional articles that are more specific to Hyper-V itself and in particular, tuning performance of Windows Server 2008 R2 Hyper-V. We’ll discuss processor, memory, disk I/O, and network I/O tuning tips, but first let’s look at the type of hardware you would need to ensure Hyper-V performs well when running multiple virtual machines. After all; all virtual machines that run on a Hyper-V system share the same hardware.
The hardware considerations for your Hyper-V servers are not all that different from non-virtualized servers, but obviously Hyper-V servers has increased CPU usage, requires more memory, and needs more I/O bandwidth because the same hardware services multiple virtual systems
The first consideration you should make is that Windows 2008 R2 requires 64-bit processors. In a non-virtual setup, performance benefits more from a processor with a higher frequency compare to adding cores to a processor. We recommend for your Hyper-V environment to select multiple processors with multiple cores and at the highest frequency available.
To obtain additional efficiency use processors that support Second Level Address Translation (SLAT) technologies (for example EPT or NPT). Other features that you want, when selecting a processor, are support for deep idle state and core parking.
Hyper-V benefits from processors with large caches, especially when the ratio of virtual CPUs to logical CPUs is high in your VM configuration. If you have to choose between a large cache or CPU frequency, go with the larger cache.
The Hyper-V server itself will need enough memory for the root and child partitions. Hyper-V will allocate memory for the child partitions first. You should provide each child partition with the enough RAM to be able to handle the load for each specific VM. The root partition needs enough additional memory so it can efficiently handle I/O for the virtual machines and other tasks such as VM snapshots. We’ll discuss more details about memory sizing in our follow-up article “Performance Tuning Microsoft Server 2008 R2 Hyper-V: Memory”.
If you expect the virtual machines in your environment to be network traffic intensive, install multiple network adapters (or multiport adapters) in your Hyper-V system(s). This way network traffic is distributed over each adapter resulting in better overall performance.
Hyper-V supports various hardware offloads such as Large Send Offload (LSOv1), TCPv4 checksum offload, Chimney, and VMQ. Selecting network adapters that support hardware offloading will reduce the CPU usage of network I/Os.
Disk Storage Selection
Disk selection is similar to choosing hard drives for a non-virtual system. Higher rotational speeds are better and a larger set of smaller capacity drives performs better than a smaller number of high capacity drives. The hardware should have sufficient I/O bandwidth and capacity to meet current and future needs of the VMs that the physical server hosts. Consider these requirements when you select storage controllers and disks and choose the RAID configuration. Placing VMs with highly disk-intensive workloads on different physical disks will likely improve overall performance. For example, if four VMs share a single disk and actively use it, each VM can yield only 25 percent of the bandwidth of that disk. We’ll discuss more details in our upcoming article “Performance Tuning Microsoft Server 2008 R2 Hyper-V: Storage”.
Microsoft recommends that you use the Server Core installation option in the root partition. This leaves additional memory available for the virtual machines, and even though the Core option only offers a command prompt, you can use WMI to manage the server remotely.
It is also recommended that the root partition is dedicated to the virtualization server role. Adding additional roles to the root partition can affect the performance of the virtualization server.
In our next article we’ll go into processor performance tuning of Windows Server 2008 R2 Hyper-V.