Jeff Eberhard, Senior Sales Engineer, GreenBytes, says:

On a daily basis, I am asked by customers, “How do we make our users happy with VDI? They complain constantly about the time to login and application performance speed.” 

My response is that it is most important to have a properly architected environment to ensure happy users.  There are three major things that can impact end user performance with VDI: server configuration (RAM, CPU), network bandwidth, and storage IO.  The architecture decisions for each also depend on the profile of the user. VDI users are generally divided into:

Task Workers – a user who generally uses one application all day – like perhaps a checkout clerk at a store.

Knowledge Workers – your typical office worker – using Microsoft Office apps, web browsing, some server side applications, and occasionally things like YouTube.

Power Users – developers, engineers, software architects, and bosses.

Let’s talk about best practices for all three user types.

Task Workers

Task workers generally are the easiest group to virtualize.  They use an application that can easily be benchmarked, don’t switch around what they’re doing a whole lot, and are not likely to cause any unexpected strains on the environment. 

Needed Resources:

8-10 Users/Core

2GB RAM, 2GB SWAP per user

125Kbps network bandwidth

20-30 IOPS Storage

30GB Storage Space

Knowledge Workers
This group is the typical office worker.  Throughout the day, they may use 10-20 different applications to get their job done – from Word to Acrobat to Chrome.  They occasionally also access things like WebEx conferences, watch streaming video, and use VoIP applications.  Because of their varied use of resources, it is a bit harder to size a VDI environment for this type of user – below I provide a guideline, but the best way is to pilot with 10-30 users to see how your environment really works.

Needed Resources: 
5-10 Users/Core
4GB RAM, 4GB SWAP per user
125Kbps-1Mbps network bandwidth
30-60 IOPS Storage
30-60GB Storage Space

Power Users
A power user is the hardest desktop user to virtualize.  Their use of specialized, graphically-, CPU-, or memory-intensive applications makes them the last to be moved to the VDI environment – if they’re moved at all.  The best bet with a power user is to have your partner do an assessment on the user (Lakeside or VMware Capacity Planner, for example) to see what each user will individually need to get the best performance out of their virtual desktop.

Needed Resources: 
1-2 Cores/User
4-8GB RAM, 4-8GB SWAP per user
125Kbps-10Mbps network bandwidth
90+ IOPS Storage
30-100+GB Storage Space

So, now that you have an idea of what the resources needed are for each user type, the question becomes: how do I get my users the performance they need?  The easiest things to do are add additional servers and network bandwidth – once you have enough CPU, RAM, and Network, the only thing left affecting performance is the storage IO. 

I’ve found that a SSD (Flash)-based system is the best way to give users the IOPS they need without having to buy tens to hundreds of spinning SAS disks.  Each SSD can provide up to 30x the random IO of a 15K SAS disk – keeping your datacenter space, power, and cooling costs down.   Think about it – with 1000 Knowledge Workers, you would need 30,000 IOPS – or about 200 15K SAS disks.  With a properly configured SSD-based SAN, you could support the same number of users with only 8-12 SSDs.  Your only issue now is space – 8 SSDs can only store 1.6TB of data – so what do you do?

Well, you can use Linked Clones, but even VMware says that’s not the fastest: “Because a full clone does not share virtual disks with the parent virtual machine, full clones generally perform better than linked clones.”[i]So instead, I recommend using a SSD storage system with deduplication built in, like the GreenBytes IO Offload Engine[ii], so you can get the performance and full-featured virtual desktop user experience of SSD-stored Full Clones, with the space utilization of Linked Clones!

So net-net – to make your users happy about the speed of their Virtual Desktops, do three things:
  • Size the servers correctly for each user type.
  • Make sure each local and remote user has the requisite amount of bandwidth necessary.
  • Get a SSD-based SAN with deduplication built in so you can provide the IOPS without having to over-spend on capacity.