In 2011, I coordinated the implementation of VMware View 4.6 for one of our clients. What started out as a solution for remote workers using bad performing apps, quickly evolved into a hardcore production platform for temporary employees, consultants, third parties, remote system administrators and developers.
They upgraded to View 5 and everybody was fairly happy. All user groups, except for one. Remote workers in India complained about long waiting times in their apps. Screen freezes and, eventually desktop freezes, ruled their workday.
Investigation of the problem lead to the common believe the line between NL and India was not properly sized, leading to a discussion involving bandwidth, latency and even a second line (with additional costs).
Close, but no cigar.
While latency played a part in the equation, the true culprit was a Java Web Application: its screen refreshes with almost every single user action strained the connection leading to the performance problems.
The display protocol they used was standard RDP on their given View pool. Need I say more? After a little investigation and some alterations to the site2site VPN, we configured the pool to use PCoIP as display protocol. Of course, we tweaked, amongst others, the refresh rate setting. This hugely boosted the performance and user experience, leaving the “line discussion” superfluous.
So, realising what a display protocol can yield, you can imagine my interest for the VMworld session EUC1476 – What’s New with View and PCoIP in Horizon 6. Here’s a summary.
First up, VMware introduced something they call “Roaming IP profile” which basically means you can switch from network (Wired/Wireless) to network (thus changing your IP address), but your View session will be kept alive. I know: it’s just a little nuisance, but remember every time you opened your laptop having to login again to your session? Well, those days are over with the introduction of VMware View 6.
Furthermore, the default PCoIP settings that come with View 6 give you a 25%/30% better frame rate than View 5 did (even 80% when packetloss occurs). Basically, the new settings are more bandwidth-friendly; here are a few:
|View 5||View 6|
|Max. initial image quality||90||80|
|Min. image quality||50||40|
All settings can be applied through group policies (PCoIP.adm comes standard with View) and, when upgrading to View 6, you can preserve the View 5 settings (the users in India will be glad with this ;-)) If you combine these settings and configure settings for reducing the frame rate, reducing the audio bandwidth and (when possible) increase the client side cache, you will have a better user experience altogether.
After all, this is your main goal: provide VDI-users with the best user experience given the bandwidth available. Be careful here: you can’t rely on the virtual machine specs, because it’s all about screen activity. A “tab-jumper” will generate far more screen refreshes than a “Word-warrior” although they both can be on totally different sized virtual workstations.
So. You really need to examine your use-cases. Interview your key users. Ask them about the volume of screen changes. Take a look at the used apps (esp. 3D graphics apps) and talk to developers (if apps are build inhouse). Ask them if they really need “picture perfect images”; they will say they do, but often it’s really not necessary. Do they need audio/video? And, if so, does the quality have to be at its best? Of course, there are “no-brainers” like configuring your webbrowsers not to use the alleged to be present GPU on your virtual workstation. Finally, let users test with different settings
In the end it’s a fine balance between user experience, bandwidth and costs. And this is where VMware will focus on in the future: users may vary their type of screen activity during a VDI-session and they can switch between networks with different bandwidths, thus leaving your carefully planned settings useless, resulting in a degraded user experience.
VMware aims for “visual realtime tuning” where a View Administrator creates different profiles containing different settings (see above) and rules when to apply them. Depending on the users screen activity and available bandwidth a different profile will be applied on the fly, delivering the best user experience given the circumstances. For now, this is the future, but it will be a cool feature, preventing a lot of useless discussions about performance.
I’m now facing the challenge of implementing View 6 with the same client; I will strongly recommend the use of PCoIP on all pools and I will encourage them to examine their use cases, thus giving each user the best VDI-experience.