Alternative title: How to Turn Water from Blue to Red
J. Gorzas
An excellent session on the vagaries of video protocols in a virtual environments. Essentially the premise is the creation of a test environment that compares the various protocols against each other by capturing the results as a set of 4 videos playing next to each other. Fascinating stuff that reveals that the answer to the question "which technology is best for remote high power graphics" is "it depends". And it depends on many factors, not least of which is the applications you expect your users to be accessing most frequently.
Originally client side rendering was thought to perform best where all the info is sent to the client and the client needs to be able to interpret and render all possible formats, which was a problem for many Linux clients.
Sender side rendering is when the rendering happens in the server (CPU or GPU, but always CPU in the early days) and the client only needs display the pixels. This eases compatibility, but if there are many users then the CPU is quickly overwhelmed.
Historically VMware View prefers server side rendering, Citrix client side. Now there is much more a blending of the 2, dependent on the format of the graphics, as pretty much all clients have at least H264 rendering capability.
Gorzas has built a testing protocol and rig to ensure testing consistency across different approaches. This has become what the industry relies upon and there is now a concern that the vendors are tuning their solutions to exceed in the tests rather than the real World.
Test rig: Client is connected to server using an Apposite Link WAN simulator which allows the latency to be dialled up and down. The client has Epiphian recording software installed and a very fast HDD is attached to the client via DVI or HDMI to capture the playback performance on the cleint device. The outputs are then collated into a 4 image side-by-side comparison in one video capture to allow for the results to be compared. Only production releases of software are used (no beta versions!). A range of combinations of latency and packet loss are tested, up to 300ms / 1% packet loss. Example output:
The following types of GPU options are (or soon will be in the case of vDGA) be available for vSphere:
Throughout the discussion the terms VMware / PCoIP were interchanged freely, as were Microsoft / RDP and Citrix / HDX, with each solution being aligned to one vendor.
First to note is that RDP7 did not perform well under any circumstances other than a LAN.
For current formats (including RDP8), the results are VERY DEPENDENT ON THE PROTOCOLS AND CONNECTIVITY in use. It's not really possible to say "x is better than y" because it very much depends on the application protocols in use. Note that versions of protocols are important too. For example the latest version of HDX produces much better synchronisation between voice and video, but to achieve this it freezes occasionally to allow the catch up - so the video only element is now not as smooth as the previous version.
On a LAN all the protocols will take as much bandwidth as they can get access to. (e.g. up to 80Mbps for PCoIP, but RDP more efficient at 50Mbps).
As an example of the problems that can be encountered:
For a 2Mbps link with 50ms latency playing a QuickTime video:
- RDP7 is completely ineffective
- RDP8 is better
- HDX is smoother than PCoIP
For a 8Mbps WAN with 50ms latency playing Flash video:
- RDP7 fails completely
- RDP8 works reasonably
- HDX is better than PCoIP
For a 2Mbps WAN with 50ms latency playing Flash video:
- only HDX works, but only when the client has a Flash player
For a 2Mbps WAN with 50ms latency playing WPF:
- PCoIP steps in a controlled way
- HDX / RDP stutters
For a 2Mbps WAN with 50ms latency playing Fishbowl:
- PCoIP steps
- HDS is smooth
- RDP8 is very slow
- All formats change the water from blue to red:
For 2Mbps WAN with 50ms latency and running PowerPoint animation:
- PCoIP and HDX are good
- RDP8 is OK but not smooth
- RDP7 is very poor
For 2Mbps WAN with 50ms latency and delivering HD Video, best to worst peformance:
- HDX
- PCoIP
- RDP8
- RDP7
nVidia Cards:
Kepler K2 is 2 x high performance GPUs on one card - 1536 cpres per GPU
Kepler K1 is 4 x lower performance GPUs on one card
Recommendations:
- Designers and engineers need a dedicated GPU with pass through (vGDA)
- Power Users and Knowedge Users can use a shared virtualized GPU with API Intercept (vSGA)
- Task Users can use GPU emulation in CPU (sVGA)
Discussion: Lync video testing - nothing to done to date, but looking into it. Simulating users "is hard".