Performance Analyses of Duplicated I/O Stack in Virtualization Environment

Recently, many studies have focused on eliminating duplicated I/O stack of virtualization because I/O requests of a guest machine have to pass through the I/O stack of both the guest and host machine. In this paper, we analyze the effect of duplicated I/O stack (e.g., page cache, file system, I/O scheduler, and device driver) between the guest and host machine. Especially, we study an I/O scheduler of the guest machine and the virtio of QEMU to understand how the I/O scheduler affects the overall I/O performance. Our experimental results show that Noop scheduler can lead to better performance than other schedulers, such as CFQ and Deadline. As expected, virtio shows the best performance in sequential write pattern since it eliminates the overhead caused by I/O scheduler of the guest machine by bypassing its I/O scheduler. However, in this paper, we report that the virtio reveals performance limitation in random write pattern. Our experimental results clearly show that the duplicated I/O stack significantly impacts on the overall performance of the guest machine. Especially, using virtio to eliminate the I/O scheduler of the guest also has negative impacts on I/O performance according to the write pattern.