I have a VPN to my work which is quite fast... I Remote Desktop to my work PC, which is running a Microsoft Virtual PC. Working with the PC while I'm actually at work isn't too bad, but when I try to interact with it over the remote desktop, it is VERY slow to respond. Even simple typing can be slow, but screen painting and response time is painfully obvious.

Any suggestions to help speed it up?


(this would have been a comment expanding on TechTimmy's answer, but it grew too long)

It is often the case the virtualised applications response slowly when the remote connection is looking at the host directly rather than remoting to the VM directly.

If you remote to the VM directly RDC can use all its options to reduce bandwidth use as it knows what updates have been made and to a certain extent what they are (just text, a chunk of graphic, a window moved, etc...) so it can easily apply very specific optimisations in order to send the minimum amount of data back to update the client screen.

On the host machine the remote desktop server does not have this knowledge. The virtualised machine looks to it like a large regularly updating bitmap, it can not hook into the graphics layer of the OS as remote desktop's server component does when running directly in the VM. While it could theoretically analyse the changes very thoroughly to determine the exact minimum needed to transfer this would be so excessively CPU intensive as to be impractical (it would save bandwidth but add significant latency and slow down other processes on the host too) so a compromise has to be made. The response will never feel as fast as remoting to the VM directly as there will be more bandwidth used and more latency due to the server having to think more when trying to optimise what it sent and in some cases has to guess when an updaet might have been made and scan for updates.

To cut a long story short: you should always remote directly to the VM where possible when using Remote Desktop or any protocols like it. This is not specific to either VirtualPC or Remote Desktop, though you might find some combinations of remoting protocol and VM display management are more responsive than others.

  • +1 for the explaination of why the direct RDP should be done – Knox Jul 3 '09 at 8:53
  • + 1 this is EXACTLY what I do with a VM I run. RDP direct into it, otherwise it would be too slow. Great answer David, love the info of just now how to do it, but why. – Matt Jul 3 '09 at 17:33
  • Wonderful answer... unfortunately it won't work for me since I use the VM specifically as a machine to VPN (not the VPN I use to GET to my work machine hosting the VM) to a client's network, and it loses all local network connectivity (I should have mentioned this - sorry!). @Timmy: the host machine runs just fine, both when I'm there in person and when I'm RDC'd in over the home->work VPN. And it seems more than just the screen updates are slow - sometimes I have to click in the window multiple imes to get it to respond (like clicking in the password box for logging in). – Michael Bray Jul 4 '09 at 13:51
  • In that case the only things I can suggest are to try put up with a smaller screen-size on the VM and the RDC session overall and try tweaking the colour depth options to see if that helps. Also you could try other remoting options like TightVNC (you might find its "poll active window" option useful, though relatively demanding in terms of host CPU use) to see if they interact with the VM any better. – David Spillett Jul 4 '09 at 14:16
  • Can't you set up a "local only" connect for the VM? That way you can RDP into the host, then use the local network to RDP into the guest. RDP over RDP might still be faster than VM redraw over RDP. – user8282 Jul 6 '09 at 5:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.