To support these management functions, we need an accurate monitoring infrastructure reporting resource usage of different VMs. The traditional monitoring system typically reports the amount of CPU allocated by the scheduler for execution of a particular VM over time. However, this method might not reveal the ``true'' usage of the CPU by different VMs. The reason is that virtualization of I/O devices results in an I/O model where the data transfer process involves additional system components, e.g. hypervisor and/or device driver domains. Hence, the CPU usage when the hypervisor or device driver domain handles the I/O data on behalf of the particular VM needs to be charged to the corresponding VM.
In this work, we present a lightweight, non-intrusive monitoring
framework for measuring the CPU overhead in VMM related layers during
I/O processing and a method for charging this overhead to VMs causing the I/O traffic.
Our performance study presents measurements of the CPU overhead in the device
driver domain during I/O processing and attempts to quantify and
analyze the nature of this overhead.