
Originally Posted by
drag
I use KVM heavily and have spent a lot of time learning how to get the best performance.
Well SPICE is virtio, more or less. In the way that virtio is paravirtualized drivers. That's just the linux kernel brand name for it. It depends on paravirtualized graphics drivers so it's certainly along the same vein.
From the point of view of the Guest OS the Spice video stuff happens in the 'hardware' of the VM. It's one of the things that makes it special.
For my personal use I just use RDesktop for Windows, and X over SSH for Linux. With newer versions of GDM you can have 'secure log in' which you launch your session remotely over SSH.
You have to configure SSH to use arcfour encryption (low overhead, high performance) and disable compression (reduces latency and overhead) to get the best performance.
But with things like AIGLX and whatnot you can easily get 2D and 3D acceleration that way for Linux VM session. Use the 'switch user' function to have multiple GDM logins.
Virtio is critical to performance for networks. Other Virtio drivers like balloon driver is important for things like memory management.
Blk driver _can_ help some with I/O.
But with disk I/O your will see much improved performance with different cache settings.
For example if you are using Windows on file-back storage you will get best results with 'cache=writeback' option for your disk drives.
If your using Linux with Virtio drivers and are using LVM logical volumes, dedicated driver, or other raw dedicated block device for your virtual drive then you will want to use 'cache=none'.
The default for KVM is 'cache=writethrough' which is a decent all around compromise between performance and data security.
Also new Linux features like KSM will merge memory between multiple VM instances of hte same OS so you can run more VMs then your system's memory can otherwise support. However KSM does add CPU overhead so unless you have multiple OSes of the same type running you'll want to disable it.
For Linux users there really is no comparison.
Virtualbox is friendlier (and this matters) for the desktop and will offer better graphical performance. However KVM is worlds and away more sophisticated, better performance, and much more complete VM solution. It requires more expertise to use properly though.
For regular users on the desktop VirtualBox is probably the way to go, but if your using something for serious work then KVM is the answer.
Your going to see it start to displace Vmware ESX more and more for enterprise solutions for companies that are heavily invested in Linux.