Operating systems running over Xen execute in x86 privilege ring 1 instead of ring 0, which we reserve for Xen. This prevents guest OSes from using the normal privileged instructions to turn on/off interrupts, change page table bases etc. Instead, they must make a 'hypercall' down into Xen to ask the operation to be performed on their behalf. This sounds expensive, but with a properly designed asynchronous interface the hypercalls are relatively infrequent.
Rather than attempting to emulate some existing hardware device, Xen exports specially designed block device and network interface abstractions to guest operating systems, requiring a specially written driver. The advantage of this approach is that guest I/O performance is excellent: we typically get the same performance on Gigabit Ethernet links running over Xen as we do with the native operating system.
As part of evaluation for our SOSP paper, we subjected Linux 2.4.22 to a number of system intensive workloads, then repeated the experiments with the same version of Linux running over Xen, and a number of other virtualization techniques: VMware workstation 3.2 (the latest version of any VMware product which allows the publication of comparative benchmarks), and User Mode Linux (UML) with the skas host patch. The results below show the performance overhead under a number of different scenarios:

No comments:
Post a Comment