This is a question that was posed to me recently, it’s an unusual but valid scenario which I feel is worthy of sharing.
This is a Horizon View virtual desktop use case where the virtual desktop is hosted in Singapore, and the users are located overseas. In this situation they were in China and Korea, but this would also apply to anywhere in the world with similar 100ms latency.
The primary requirement is that customer had to deliver LAN like picture quality to the remote users. In fact the users have already tried and were complaining of fuzziness in the screen, particularly when they scroll quickly through their emails in Microsoft Outlook.
Now, most common concern about virtual desktop usage over the WAN is the bandwidth required. All technologies in the world are constrained by the laws of maths and physics, with a given resource, there is a limited about of data that can be sent across the wire. The more constraint the bandwidth, the lower the picture quality. As a result, the most common tuning for PCoIP is to optimise bandwidth usage without giving up too much quality, it is a trade off and the balance must be sought for each deployment scenario.
PCoIP on its own is a self adjusting protocol. It aim to deliver the best realtime quality picture given the end to end network condition. Throughout the session, PCoIP will be constantly adjusting quality based on the full network condition it observes between the virtual desktop and the client. In a situation where latency goes up, the time it takes for PCoIP to adjust itself also increases.
Now, one key consideration given to us in this case is that the customer’s top priority is to deliver the best picture quality; assume that bandwidth is not a concern and can be provisioned as needed.
Given the higher (but tolerable) latency, we can help guide PCoIP to desired state sooner. This is achieved by applying some tuning to the PCoIP parameters via the AD Group Policy template.
Be Warned – the following settings can result in higher bandwidth usage, and should only be applied when you fully understand the implications.
If you are ready, below are the parameters we applied – if you need, take this as an example, some tweaking should always be done to find your sweet spot between picture quality and resource consumption. Also, I would consider the users here to have the highest expectations and demands than I have encountered.
- Minimum Image Quality – 70
This tells PCoIP the lowest quality of the image to attempt to send across the wire. As we were witnessing fuzziness in the image, this means the default image quality value was too low and should be raised for this scenario.
- Maximum Initial Image Quality – 90
- Maximum Frame Rate – 50
This particularly important for fast moving screen changes. It was tested from 30 FPS, 40 FPS and finally it was settled at 50 FPS. It was at this setting where the end user was satisfied.
- PCoIP session bandwidth floor – 2000
This tells PCoIP that the environment is ready to handle 2000 Kbps for the session. It doesn’t mean that PCoIP will consume that much regardless. If the screen is idle, you would see only a few Kbps moving across the wire. This is one of the parameters that helps PCoIP achieve a steady state stream with less “guess work”