Sunday 20 November 2016

VNC vs RDP bandwidth usage and performance test

I have been working on a remote gaming console lately, a Super Console I'm told it's called.

The super console is in fact a HP Proliant server with 4GB of RAM running ESXi5.5, with a windows7 installed in a virtual machine and a Remote Display Server (Apache Guacamole) to allow user to connect remotely from within their web browsers. It's awesome! I'm probably writing about that once I'm done implementing authentication and payment and yadayadayada...

VNC and RDP are both supported by Guacamole, but before I chose one I needed to know which is the most CPU intensive and uses the most bandwidth. My VNC and RDP client for this test is Vinagre (not Guacamole) on Ubuntu 16.04.

The test consisted in playing a video and streaming it over the network using VNC or RDP and monitoring memory and CPU usage on the server and bandwidth usage on the client. Here are the result of the simple test I did.

RDP is said to be the most efficient in all apects to VNC as it is aware controls, fonts, and other similar graphical primitives and sends instructions instead of images over the network (What's the difference between RDP vs VNC?  , Difference between vnc and Windows Remote Desktop? [duplicate] ). So lets see the results :

RDP configuration : 
  - RemoteFX with max Frame rate and Max image quality.
  - Optimised for minimum bandwidth usage
See the link below for how to configure RDP on windows 7 : https://blog.tedd.no/2011/04/28/optimizing-rdp-for-casual-use-windows-7-sp1-remotefx/
Memory consumption on server (process rdpclip.exe) : 1056 K
CPU usage (process rdpclip.exe) : > 1%
bandwidth usage : > 10MBps ( 80Mbps )


RDP Config


Max resolution RDP consumes 10MBps / 80Mbps for a 360p full color fast paced video




VNC is said to be less effcient as it simply sends screenshots and mouse inputs without any awarness of windows primitives. Therefore you'd expect it to hog all the bandwidth. Wrong! Here are the results for VNC :

VNC Configuration :

 - Jpeg compression
 - Frame rate : 30 FPS

Memory consumption on server (process tvnserver.exe) : 8300 K
CPU usage (process tvnserver.exe) : > 10%
bandwidth usage : > 1500KBps ( 10Mbps )
Colors Depth : True Color (24 bits)





The verdict :
VNC wins hands up, at least for me, overall. Or maybe I missed something in my RDP optimization. When in come to my "Super Console" project though, the verdict is not yet final as RDP offers a simultaneous multi-user connection feature which could potentially save me bundle of resources on my server. More tests coming!



No comments:

Post a Comment