Last week a Unidesk customer emailed us asking about poor performance in an Auto-CAD application on a PCoIP thin client. Everything else in the desktop seemed fine except this application. I then received an email from a customer asking how to improve video (like Youtube) in their View/Unidesk environment (when it rains it pours right?).
We knew there were adjustments that could be made to PCoIP to turn down the bandwidth used in low bandwidth situations (turning down the frame rate, limiting the bandwidth, changing default image quality, etc) and assumed that these same settings could probably be “turned up” from the defaults to allow for better video performance… Turns out we were correct.
After finding Andre Leibovici’s (twitter @andreleibovici) article on these settings we began playing with them and doing further research. We then found the View 5 documents on the bandwidth variables and session variables available in the View ADM templates.
But, what we wanted to see was what these settings could improve in something like a full screen video playing back from Youtube. I mean if you just set the settings and see no difference in the video, whats the use?
To test this I recorded my PCoIP session watching the Armageddon trailer on Youtube with the default PCoIP settings. I then re-rerecorded the same desktop with some additional PCoIP “tuning” to see if the video playback got any better.
If you watch the video as it starts (the scene where Ben Affleck is twirling Liv Tyler in the air with a sunset in the background) you can see the default settings make this video look like three of four still frames pieced together. If you then watch that same spot in the modified session you can see it looks ALMOST smooth and is significantly better. (Beware, the sound is the same and without choppiness in both videos. this can throw you off. I was watching without sound and noticed the differences even more)
After recording this I created the following registry keys (which would normally be applied/created via the GPO) and restarted the VM:
REG_DWORD: pcoip.max_link_rate 900000
REG_DWORD: pcoip.maximum_frame_rate 120
The Max Link Rate entry tells PCoIP how much bandwidth can be consumed. Based on the View 5 guide the default (when nothing is set) is 90,000 Kb or just short of a 100Mb connection. I set this to 900,000 Kb or just shy of my 1Gb connection I had on the LAN.
The Frame Rate (which is defaulted at 30) I adjusted to its maximum of 120.
Modified PCoIP Video
Ok, Ron the video seems better, but will these settings eat more bandwidth?
Yes. So I wouldn’t set this in your gold image unless everyone needed it. Instead I would leverage the ADM template from VMware and apply a policy to only the desktops that A: need higher end/better quality video response, and B: are on a LAN with the available bandwidth.
Are these all the settings or the best settings?
No. I just grabbed the two that seemed to me to have the best changes at impacting video and I tried them. There are more options for tuning PCoIP to increase or decrease bandwidth and video performance. You can check out Andre’s article I mentioned before and I would suggest the View 5 doc also noted above. The View doc will give a detailed description of each available setting and what it does. You can then tune the protocol to your needs.