Demand spikes are one of the most common problems in VDI environments, but there are steps administrators can take
to minimize the effect demand spikes have on performance.
Virtual desktops run on shared hardware, so periods of heavy user activity tax the hardware, resulting in virtual desktop infrastructure (VDI) performance problems. Ultimately, there is no way to prevent demand spikes in VDI environments. Boot storms, malware scans and memory shortages can all contribute to demand spikes, but it's possible to mitigate the effects of the spikes. Preloading desktops, putting pagefiles in virtual hard disks and using incremental scans can help, and the best way to stop the adverse effects of demand spikes is to make efficient use of the available hardware.
Preload virtual desktops
When users arrive for work in the morning, large numbers of virtual desktops are spun up in a relatively short period of time, resulting in a boot storm. The easiest way to avoid these is to run a scheduled process that automatically boots most of the virtual desktops that users will need for the day before users get to the office. Preloading desktops doesn't truly eliminate boot storms; it forces the boot storm to occur before users arrive and during a period when the network isn't busy. Because no one is in the office, no one sees the VDI performance problems caused by the demand spike.
Don't disable the Windows pagefile
One mistake that administrators sometimes make is disabling the Windows pagefile in an effort to reduce virtual desktops' I/O load. The basic idea behind this technique is that getting rid of the pagefile prevents Windows from relying on virtual memory, which is not only slower than physical RAM, but also requires storage I/O.
The problem with getting rid of the pagefile is that Windows is designed to work with a pagefile. If the virtual desktop's memory fills up and no pagefile is available, then Windows quickly becomes unstable. Rather than getting rid of the pagefile, administrators should consider placing virtual desktop pagefiles inside virtual hard disks on a dedicated LUN. That way, pagefile-related storage I/O is isolated from disks that the virtual desktop's operating system or applications use.
Perform incremental malware scans
Malware scans can also cause demand spikes because a scheduled malware scan generates a lot of read I/O. There are many different approaches to dealing with the overhead that malware scans cause, but one especially effective approach is to use a product that performs incremental malware scans.
The idea behind an incremental malware scan is that there is no need to rescan unmodified data that has already been scanned. Incremental malware scans keep track of write operations and only scan files and folders that have not previously been scanned or that have been modified since the last scan. This approach greatly reduces the overhead involved in scanning for malware.
Decrease logon storms
More on demand spikes and VDI performance problems
Boosting the user experience with benchmark testing
Virtual server tools won't work for VDI performance monitoring
Guide to monitoring VDI performance
Logon storms occur as a result of many users logging in at the same time. Unlike boot storms, administrators can't prevent logon storms through preloading. The best way to reduce the effects of logon storms is to provide the best possible authentication service.
One way of accomplishing this might be to connect the VDI host server and a domain controller to a common physical switch. Providing direct, high-speed connectivity to domain controllers can help improve login performance, as can provisioning domain controllers with solid-state drive (SSD) storage.
Don't skimp on memory
Server hardware is expensive, so administrators are under a lot of pressure to achieve the highest possible virtual desktop density. Oftentimes this density is achieved by minimizing the amount of physical memory that is assigned to the virtual desktops, but skimping on memory can be counterproductive. As previously mentioned, Windows uses the pagefile as a way of making up for shortages in physical memory, but pagefile usage results in slower performance and a greater I/O load, so it's important to have enough memory in the first place.
Another -- often overlooked -- reason that provisioning virtual desktops with plenty of memory is so important is because Windows Vista and later OSes have a SuperFetch feature (called PreFetcher in Windows XP). SuperFetch is designed to cache files to memory, which improves the system's boot time and application load times. For example, SuperFetch will cache the most commonly used application binaries so that those applications launch as quickly as possible. But if a virtual desktop is running on an SSD, then it may be better to disable prefetch at the Group Policy level. According to some benchmarks, SuperFetch offers little to no benefit when the desktop OS and application files are loaded on an SSD.