Over 20 different performance optimizations have been added to PCoIP display protocol in VMware View 5.1. Some of those optimizations you will find in VMware View 5.1 Continues to Improve User Experience by Tony Huynh, and some more in View 5.1 Performance from the VMware Performance Team.
VMware has been actively improving PCoIP, and has introduced the following components in it’s latest release: cache compression, dynamic audio jitter buffers, packet loss tolerance, decoder rate estimation algorithms, Q-level definition amongst others.
How those new and improved components affect end user experience?
- Client memory footprint reduced by 2X
- Performance over lossy networks improved by up to 8X
- PCoIP server overheads reduced by over 1.3X
- Thin client video playback performance improved up to 3X
- Audio-video sync improved by 1.5X
- Enhanced desktop responsiveness with interactive operations
PCoIP is smoother than ever and require less bandwidth. Simple interactive operations have their responsiveness boosted with a special mouse prioritization that makes Windows dragging significantly more fluid. During rapid windows drag operations the frame rate has increased by a factor of 2x.
A 1vCPU desktop can deliver 720p@25fps without any hardware acceleration. In this scenario it is recommended a maximum of 2 desktops per core for concurrent playbacks at 720p@25fps. Most VDI deployments don’t cater for this kind playback conditions, but if this is the case of your deployment you should follow these guidelines to ensure the best user experience. Following the above recommended settings PCoIP can deliver good quality SRV with comparable bandwidth to MMR, and sometimes even less bandwidth than MMR while maintaining the image encoding at the datacenter.
The PCoIP Client Performance also received key optimizations. Now, a single-core 1GHz ARM+WMMX client running View Client 5.1 delivers almost identical performance to a 1.7GHz Atom Client running View 5. These improvements not only benefit PCoIP, but also spare CPU cycles that can now be utilized by other applications running in the background.
PCoIP has been designed to provide excellent display protocol over lossy networks. PCoIP is a UDP based protocol and maintain packet transmission without having to acknowledge (ACK) reception of the UDP packet for every datagram received at the endpoint device. However, every couple milliseconds the endpoint device sends acknowledgements and provides statistics back to the PCoIP server (aka virtual desktop).
The example below demonstrate the bandwidth being dynamically decreased (throttled) in a PCoIP session. In this case it was required to decrease the bandwidth several times because of packet loss.
Based on these statistics PCoIP dynamically decide if bandwidth must be throttled; however it will always attempt to increase it again if the conditions allow for, and if needed.
However, as in any software there is always margin for new features and performance improvements. VMware View 5.1 is more robust in lossy network environment and tolerates even more low loss rates. The graph below demonstrate how View 5.1 will work trough loss rate compared to View 5.
Another very important performance improvement is the reduction on the PCoIP encoder overheads. The PCoIP encoder lives in each virtual desktop and is installed during the VMware View agent installation. View 5.1 implements a reduction of 1.3x on server-side PCoIP overhead for both video and office-type workloads. Ultimately this reduction allows for increased desktop consolidation ratios and improved video streaming.
The graph below clearly demonstrate those overhead reductions between View 5 and View 5.1.
Improvements and refinements have been added not only to PCoIP but also to all View Clients being shipped today. If you are planning to implement or enlarge your VDI environment I recommend you to visit my article PCoIP Recommended Practices for Networking Devices that explains how to configure and size your network and also points you to key articles on how to change and adapt the protocol for your needs and environment.
I also would like to acknowledge the fantastic work from Dr. Lawrence Spracklen, a senior software engineer in the VMware Performance Team who tested PCoIP performance in View 5.1 and created the graphs above.