Abstract
Virtualization improves physical hardware utilization of cloud computing by over-committing hardware in the virtual machine. However, applications running in virtual machines suffer significant performance degradation as they do not take advantage of the features of physical hardware, which cannot be overcome by optimization of the virtual hardware. In order to reduce this performance overhead, an application virtualization mechanism is proposed to expose application instances running in the host OS to the virtual machine, so the virtual machine can achieve optimal performance by using host instances on the real hardware. A virtio-based implementation named virtiovapp is also proposed to show the needed adaptions. The virtio-vapp is evaluated against other communication components in Qemu to show the high load capacity and low latency of virtio-vapp. In the evaluation, virtio-vapp has a bandwidth of 36.4 Gbit/s in experiments, which is almost the same performance as the host. In addition to high load capacity and low latency, virtio-vapp supports limited migration to allow virtual machines to run applications with the same data. These results show that application virtualization can significantly reduce the performance overhead and improves flexibility and usability compared to running applications directly in the virtual machine.