This blog forms part of the http://performanceGuru.com website which focuses on performance tuning UNIX-like Operating Systems (including Linux).
Am working hard to deploy an automated VMWare ESX build. Once this is done will install RHEL AS 3.0 and use oprofile to benchmark the performance of some common benchmarks inside and outside of the Virtual Machines to see the impact of the Virtual Machines on particular workloads.
It is difficult to predict the effect on the workload as when in user mode the code executes using direct execution (i.e. directly on the chip as it would running under a normal O/S instance) but when it flips to kernel mode it executes the parts of the kernel that do not mess with page tables directly but it maintains a copy of the VM kernel in ring 1 with the pages marked read-only, when the kernel tries to write to these pages it causes a SYSSEGV which is caught in the Virtual Machine Monitor which then single steps through the kernel updating the real page tables and syncing back to the copy as it goes. Obviously this has a non-deterministic effect on performance.
Anyway will write this up and post the result when I complete the work. If time allows I will also repeat the exercise for UML (with Skas) and for XEN.