A friend once offered me a valuable piece of wisdom: End users don't care about the underlying technology, they...
just want it to work. That's especially fitting when it comes to the virtual desktop user experience.
End users expect their virtual desktops to perform at least as well as their physical desktops did, but virtual desktop infrastructure (VDI) performance often degrades as more and more users get virtual desktops. Users also tend to see dips in performance at certain times when hardware demand spikes. For example, VDI performance may suffer early in the morning when users are first logging on.
So, what can you do to ensure a good virtual desktop user experience? One of the most important things is to perform VDI benchmark testing during the pilot deployment phase.
Do your own VDI benchmark testing
With benchmarking, the goal is to determine the maximum number of virtual desktops the environment can comfortably sustain. Often, vendors will tell you that a specific VDI configuration can handle more virtual desktops than would be realistic. These estimates may be based on virtual machines that are completely idle or run very light workloads. In reality, user activity places a burden on virtual desktops and directly affects the total number that you can deploy without degrading VDI performance.
More on VDI performance:
Selecting a VDI performance measurement and management tool
How to choose the right VDI performance monitoring tools
VDI performance monitoring capabilities
It's best to do your own VDI benchmark testing rather than deploy virtual desktops based solely on vendor recommendations. Consider the ways your users currently use their PCs, and try to emulate those activities during testing. That way, you'll get a feel for the resources a typical user will consume.
It's also a good idea to design your infrastructure with a few small virtualization hosts rather than one large one (or one big cluster). If you group all your virtual desktops onto a single hypervisor cluster, for instance, it becomes way too easy to keep adding virtual machines every time the need arises.
Instead, invest in low-cost server hardware with a modest capacity so you can dictate the total number of virtual desktops hosted on one server. Once one server meets its capacity, you can easily deploy another to accommodate newly created virtual desktops. This approach ensures that host servers will never be overloaded to the point that end user VDI performance suffers.
What resources you need to test
So, how do you go about VDI benchmark testing?
You want to calculate the average resource consumption for a virtual desktop and then determine the appropriate number of virtual desktops to place on one server while still leaving resources free to absorb performance spikes. As you begin VDI performance testing, make sure to monitor four primary hardware resources: memory, CPU, disk I/O and network bandwidth. All these will affect the virtual desktop user experience.
Of these resources, memory is by far the easiest to deal with. Once you determine the virtual desktops' memory requirements, memory can be allocated to them on a static basis. This avoids the sometimes-unpleasant surprises that can come with dynamic memory allocation.
Determining a virtual desktop's CPU requirements is much more difficult because CPU utilization fluctuates with user activity. To give your users the best possible experience, the best way is to monitor CPU utilization when a VM is executing a CPU-intensive task such as performing a mathematically or graphically intensive operation. Then base your resource allocation on the worst-case scenario.
Disk I/O and network bandwidth consumption often go hand in hand. That's because VDI environments typically use a storage area network (SAN) or network storage appliance. When disk I/O is generated, storage traffic is also generated. Typically, either the disks or the storage fabric are the limiting factor. To provide the best virtual desktop user experience, try to match the storage fabric and disk capabilities to each other so neither becomes a major bottleneck.
Of course, network traffic is also created when users interact with their virtual desktops. Generally, the more graphically intensive the user's application, the more network bandwidth is required. To benchmark the network load, try playing a video or running a graphically intensive application.
VDI has a reputation for providing a sub-par end user experience because VDI performance degrades as you add more and more desktops. The trick is to perform VDI benchmark testing and host a reasonable number of virtual desktops so you don't over-exert the underlying hardware.
ABOUT THE AUTHOR:
Brien M. Posey, MCSE, is a Microsoft Most Valuable Professional for his work with Windows 2000 Server and IIS. He has served as CIO for a nationwide chain of hospitals and was once in charge of IT security for Fort Knox. As a freelance technical writer, he has written for Microsoft, TechTarget, CNET, ZDNet, MSD2D, Relevant Technologies and other technology companies.