Tips and tricks to get the most out of VDI

Colin Smith has put together his list of tips for a virtual desktop infrastructure (VDI) that gets the best balance of user density, performance, and cost.

So you've done your use case scenario analysis and there are some use cases that just don't fit the session hosting model (see my previous post VDI vs. Terminal services). The typical VDI (virtual desktop infrastructure) delivery project balances density, performance, and cost. Density refers to the number of users that can be serviced by a particular architecture (hardware, software, network, etc.). Performance refers the end user experience from a usability perspective. Of course, cost is the project budget.

Here are some tips to help you get the most out of your VDI environment.

#1 Managing hardware bottlenecks

Typically, the server hardware will have three major bottlenecks, Disk, Memory, and Processor. As with most bottleneck management scenarios, the most constrained resource needs to be dealt with first. It is critical to manage these bottlenecks. In fact, most of the tips that follow will help to address them.

As a general rule, server side bottlenecks will manifest themselves in the following order with the noted impacts

Bottleneck Impact
1. Disk I/O User Density and Performance
2. Memory Performance
3. Processor User Density and Performance

#2 Choose the right guest and host combination

Most VDI deployments that I see are focused on Windows 7 or Windows XP. Windows 7 requires significantly less disk I/o than Windows XP once booted. If you have the option, select Windows 7 where possible. Additionally, Windows 7 is hypervisor aware and with SP1 and Hyper-V as the host, Windows 7 is supported with an initial memory allocation of only 512MB rather than 1GB normally required. This combination can significantly increase user density. In fact Microsoft claims 40% greater density than the competition with this combination. This is such a huge leap forward that I expect other vendors to provide similar density improvements in short order.

#3 Dynamic memory

If your hypervisor supports dynamic memory, use it. It can significantly decrease the memory bottleneck and boost performance and density.

#4 The SAN is your friend

Unlike session hosting, any VDI deployment that needs to support a significant number of users will require a SAN. Higher IOPs are available with SAN technology than is currently available with DAS.

#5 Don't fight a Clone War

If you are managing a Pooled VDI solution, linked clones or differencing disks seem like a good fit since they minimize storage requirements. My feeling is that the management overhead of linked clones is not worth the storage savings. Consider that every time the parent image is patched, all clones need to be recreated. Additionally, if you are following the advice in tip #4, you will be using a SAN. Most modern SANs have deduplication technology built-in that can provide similar (if not better) storage savings and offload the processing from the host.

#6 User state management

User state (roaming profiles, etc.) is disk i/o heavy. If you can get away without maintaining user state, all the better. If you must maintain user state, consider some of the tools available from vendors like Citrix, Quest, RES, Appsense, Liquid Labs, etc. that virtualize user state. They claim 50% disk i/o reductions

#7 Don't forget the network

The network infrastructure used to deliver the VDI service can also have an impact on performance and indirectly on density. Depending on the protocol that is in use, anywhere from 20k to 60k per session may be required with minimal latency. Currently the Citrix HDX protocol (successor to ICA) is the most efficient low bandwidth protocol.

#8 GPU virtualization

If you need to deliver a rich media experience (video, 3D graphics, etc.), consider solutions that let you virtualize the GPU on the host so that the data stream to the client can be minimized. I am only aware of RemoteFX that provides this option currently, but I expect others to deliver similar technology as well. Another option that might make sense is to consider bladed workstations hosted in the datacenter if graphics intensive applications need to be delivered remotely.

#9 Management tools

If you are already using tools for your desktop and server management, consider solutions that let you continue to use them in your VDI environment to maximize the ROI on those tools. If you are in the market for new tools, ensure that they cover as many of the delivery scenarios that you need to manage as possible or at least have integration options. Since there are interactions across the infrastructure (network, directory services, security, etc.) visibility is lost when management tools are used in silos.

#10 Licensing

Licensing is one of the areas that is often overlooked by technical professionals. Remember that not all license versions of Windows are allowed to be virtualized (e.g., OEM). There may be additional costs associated with license upgrades or replacement. Additionally, revisiting licensing models that allow for named user or concurrent use may be in order as your desktop infrastructure moves to a new model.

This is my list.  Do you have anything to add?


Colin Smith is a Microsoft SCCM MVP who has been working with SMS since version 1.0. He has over 20 years of experience deploying Microsoft-based solutions for the private and public sector with a focus on desktop and data center management.


Microsoft keeps grabbing the nose ring and pulls its users toward some esoteric licensing scenario, or worse yet, wants to leverage SA as a way to get OS licensing. The time for MS to get real is YESTERDAY. IMHO, there is no reason that MS cannot license Windows 7 in a VDI like they do OEM or imbedded. Seriously, what is the difference? Obviously, this matters very little for Enterprise, but what about the Fortune 5,000,000? They may have 5 or 50 or 500 users virtualized. Perhaps the best compromise between full bore licensing and OEM is to allow a VDICal within an operating system or domain. Much the same as User or Device CALs, when you upgrade the OS, you buy new CALs (unless you have SA). So, with Server 2008R2 you can purchase a VDICal that provides Windows 7 (or earlier) and is usable throughout the domain for, say, $75. That gives you the right to marry a User CAL with a virtual machine in a one-to-one relationship. When Server 2012 comes out with VDICals for Windows 8, you upgrade the server license and the CALs. (I have not addressed the issue of using Windows desktop licenses in a non-MS environment, but the same principal would apply. Maybe buy a base VDI host license for a nominal fee and attach the VDICals to that host licensing service to keep things real.) This idea is actually already in use in the SBS world. You can use SBS 2011 Premium (which includes SQL) and have 50 Standard User CALs but only 10 Premium User CALs if there are only 10 of the 50 that need access to SQL functionality. So, whaddya think? Am I crazy?

Editor's Picks