Throughout its history, virtual desktop infrastructure has had a reputation for being suitable primarily for lightweight environments. Modern implementations, however, are capable of hosting more demanding workloads.
Regardless of demand, one of the keys to making virtual desktop infrastructure (VDI) function properly is to ensure that your hardware is adequate and that you are allocating sufficient virtual desktop hardware resources.
In a VDI environment, virtual desktops share a finite pool of server resources. Because these resources must be shared, administrators naturally try to use the available resources as efficiently as possible. However, skimping on server resources (or resource allocation) can cause performance and stability problems for virtual machines.
Rule No.1 of virtual desktop hardware requirements is that they do not change simply because a workload has been virtualized. If an application requires 1 gigabyte of memory to function on a physical desktop, then it will also require 1 gigabyte of memory to function on a virtual desktop. This same concept also applies to other system resources such as storage IOPS.
Account for demand spikes is crucial
One of the biggest mistakes made with regard to resource allocation in a VDI environment is not accounting for demand spikes. As a best practice, administrators should carefully benchmark physical desktop performance prior to moving those desktops to a virtual environment. As important as these benchmarks are, however, they can be inadequate.
The reason for this is that benchmarks are typically taken while the physical desktop is in use. Consequently, the benchmark shows the average demand that is placed on the desktop as a user does their job. The benchmarks may not account for certain processes that place an increased demand on the back-end infrastructure.
Probably the best-known example of this is the boot process. When a virtual machine is booted, it tends to place an abnormally heavy load on the CPU, memory and storage resources that have been allocated to it. Similarly, malware scans can increase a virtual desktop’s I/O load.
These types of events are not necessarily problematic in and of themselves. Unless the VDI infrastructure is running at absolute capacity, it should have no trouble absorbing the extra workload produced by a malware scan or a virtual machine being rebooted. However, these types of processes can be problematic when they occur across multiple virtual machines all at once. For example, users who are coming into the office in the morning might all boot their virtual desktop simultaneously, resulting in a boot storm. Similarly, users returning from lunch might all launch applications simultaneously, thereby placing a heavy load on storage I/O.
Three ways to ensure sufficient virtual desktop hardware resources
The best way to avoid these types of problems is to plan for them. Make sure your virtualization infrastructure has adequate hardware capacity to handle demand spikes that occur throughout the day. There are several things that can be done to accomplish this.
1. Use a VDI pilot program. This should be the first step. Doing so gives you the opportunity to benchmark storage I/O and other forms of virtual desktop resource consumption prior to rolling out VDI to the entire organization. You can use the Windows Performance Monitor or any one of a number of third-party tools to accomplish this.
2. Stress test. Another thing that you can do is to stress test your VDI deployment by running simulated workloads. There are a number of different tools available for generating storage I/O traffic. In doing so, you will likely discover that you can use SSD-based caching to absorb some of the I/O load.
3. Pre-boot desktops. One last recommendation is to use a scheduled process to boot at least some virtual desktops early in the morning, before users begin to arrive for work. Doing so will lessen the impact of boot storms because fewer virtual desktops will need to be booted at the start of the work day.
Four ways you're killing VM performance
How to achieve effective VDI performance