|M.Sc Student||Moscovici Eyal|
|Subject||Towards Sidecore Management for Virtualized Environments|
|Department||Department of Computer Science||Supervisor||Professor Dan Tsafrir|
|Full Thesis text|
Virtualization is the ability of modern computer systems to run guest Vir-
tual Machines (VMs). The VM host exposes various I/O devices to its
guests such as the Network Interface Controller (NIC) and the hard disk.
Paravirtual 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, able to handle high through-
put I/O workloads, and not consume system resources during periods of low
There are two leading approaches in use today: 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 resources, 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 approaches.
Our system, SidecoreM , uses an I/O manager to dynamically determine 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. While searching for the optimum configuration, we degrade performance by at most 6% compared to a statically tuned system. SidecoreM shows up to a 2.2x performance gain over the traditional approach.
SidecoreM incurs 2800μs of overhead per second during normal operation, and a few milliseconds when changing the configuration of the system. The results show that SidecoreM improved performance by at most x2 with a dynamic workload and by x1.8 in static workloads compared to traditional
paravirtual I/O. For most workloads, SidecoreM ’s overhead - how far it was from state-of-the-art statically tuned configuration - was less than 5%, and in most cases, there was no noticeable overhead.