Eyal Moscovici, M.Sc. Thesis Seminar
Wednesday, 22.6.2016, 10:00
Virtualization is the ability of modern computer systems to run guest Virtual
Machines (VMs). The VM host exposes various I/O devices to its guests
such as the Network Interface Controller (NIC), hard disk, etc. Para-virtual
I/O is a common technique for presenting the guest VM with an interface
similar, but not identical, to the underlying hardware. Such interfaces are
called virtual I/O devices, and their behavior is emulated by the VM host.
This emulation must be scalable, must be able to handle high throughput
I/O workloads, and must not consume system resources during periods of
Today there are two leading approaches: traditional paravirtual I/O and
sidecores. In the traditional approach VM guests experience performance
degradation while handling high-throughput I/O workloads. On the other
hand, the sidecore approach always consumes a set amount of system re-
sources which are wasted during low-throughput I/O workloads. This work
explores a dynamic virtual I/O device management design that improves
system utilization by combining the two.
We present SidecoreM which uses an I/O manager to dynamically deter-
mine the preferred approach based on the current I/O load. To this end we
first modeled the system under varying I/O workloads, then implemented
the I/O manager based on the model.
Evaluation of our design under Linux shows that SidecoreM is able to
find the optimum configuration in all cases tested but one. While searching
for the optimum configuration we degrade performance by at most 6% com-
pared to a statically tuned system. SidecoreM shows up to 2.2x performance
gain over the traditional approach. SidecoreM incurs 280us of overhead per
second during normal operation, and a few milliseconds when changing the
configuration of the system.