For people in the Virtual Desktop Infrastructure(VDI) space or looking at it will have heard of PC-over-IP (PCoIP). Devopled by Teradici. PCoIP enables remote access to workstations and servers, with the look and feel as if you were sitting in front of the machine. The PCoIP protocol transmits only the changing pixels across a standard IP network to software or hardware based clients. PCoIP is the key technology behind VMware’s View VDI solution.
I think the vast majority will agree that PCoIP on the LAN is superior product. On the LAN no customization is needed for this protocol. Install the View Agent onto your windows virtual machines(VM) and you are off to the races. On the WAN this protocol can be a different story. PCoIP can tell if your network link is congested and will throttle its bandwidth. Your can see this is action with a great article from http://myvirtualcloud.net/?p=751. However, the protocol is still greedy and I don’t think it throttles the bandwidth quick enough. With some work and tuning you can make this protocol work over the WAN for the vast majority of users.
Here are few steps we have done in our deployment of VMware View.
- Make sure you use SALSA20-256 and deselect AES-128. SALSA20 is faster at encrypting and decrypting the traffic.
- Load the GPO from View Connection server and adjust the following settings either in Active Directory or locally on your base VM template.
- PCoIPImageingMinimumImageQuality – The default is 50. The value can be between 30 – 100. I think the default is fine. This value is only going to kick in when the network link is stuffed.
- PCoIPImageingMaximumIntitialImageQuality – The default is 90. The value can be between 30 – 100. I have had good luck with 70. Tried lower settings but users were complaining about the “Wave”. The screen would ripple as it would build to the Maximum Image quality.
- PCoIPMaxLinkRate – The maximum session bandwidth in kilobits per second. The default is 0, for no bandwidth constraints. For desktops in rural areas I have set this to 1000 Kbps. With all the combined settings listed in this post most desktops will only use 100Kbps – 200 Kbps. I have lefted it at 1000 Kbps so they have a chance to use the available bandwidth when available. You know never when someone is going visit a flash site. For whatever reason when you set this setting at 2000 Kbps or lower it will better rate limit audio in the PCoIP stream. This was first noticed by Teradici.
- HKEY_LOCAL_MACHINE\SOFTWARE|\Policies\Teradici\PCoIP\pcoip_admin_defaults\pcoip.maximum_frame_rate – This registry settings will be the one that will help the most in saving bandwidth.
- Teradici Default = 30 fps
- HDx Protocol = 24 fps
- Good Television = 16 fps
- Office worker = 8 fps
I have tested with 16 fps and the user experience is good for office workers.
With the settings above we have had sites using PCoIP with 30+ active sessions using a 5Mbps link. I hope aids in taming the beast and keeping your users happy. Thanks to Stuart Robinson for all the help and information.