The present disclosure relates to a method, non-transitory computer readable recording medium, and apparatus for scheduling virtual machine monitor, and more particularly, relates to a method, non-transitory computer readable recording medium, and apparatus for scheduling virtual machine monitor for reducing an input/output (I/O) event delay of scheduling.
Virtualization technology refers to the technology of efficiently using a resource by integrating a plurality of physical resources into a logical resource, or on the contrary, dividing a single physical resource into a plurality of logical resources. The virtualization technology may operate a plurality of systems in a single machine by introducing a virtualization layer. The software of abstracting the physical resource is referred to as a virtual machine monitor or a hypervisor, and there are well-known virtual machine monitors such as Hyper-V, VirtualBox, VMware, Xen, Kernel-based Virtual Machine (KVM), etc.
The virtual machine refers a logical resource abstracted by a virtual machine monitor, that is, the virtual machine does not mean an actual machine but means a machine environment in which a physical machine is likely to exist, and in Xen, the virtual machine may be referred to as a domain. A relationship between the virtual machine monitor and the virtual machine is similar to a relationship between an operating system and a processor. The operating system provides an abstracted physical resource to a plurality of processors by abstracting the physical resource, and similarly, the virtual machine monitor provides virtualized physical resources to the virtual machine by virtualizing a central processing unit (CPU), a memory, and an input/output (I/O).
The virtualized CPU (VCPU) refers to the virtual machine monitor logically abstracting the CPU which is an actual physical resource, and a plurality of virtual machines operating in a single physical machine have not the actual CPU but the VCPU. The VCPU corresponds to the processor in the relationship between the operating system and processor, and the virtual machine monitor also selects the VCPU which is to use the CPU resource through a scheduling policy as if the operating system selects the processor which is to use the CPU resource. As such, scheduling of determining the VCPU which is to use the CPU resource is referred to as virtual machine scheduling.
A credit scheduler is one of the virtual machine scheduling methods of Xen which is a Linux open resource, and uses a boost mechanism in order to improve event responsiveness. The boost mechanism changes a state of a corresponding VCPU into an executable state when an event is delayed in the VCPU which is in a block state, and allocates BOOST which is the highest priority. The corresponding VCPU is in a block state when there is no executable task in a domain or the VCPU holds a specific value or more credit since a credit is not consumed, and is not executed until the event is generated. The VCPU having BOOST which is the highest priority is preferentially executed, and improves the responsiveness of the domain by rapidly processing the delayed event.
However, since the VCPU performing a CPU-intensive operation continuously consumes the credit and a probability in which an executable task exists in the domain is high, the VCPU cannot receive a benefit of a conventional boost mechanism. Further, when there are a plurality of virtual machines which are in an active state, a virtual machine scheduling delay time is increased, and event responsiveness is further decreased. In a virtualization environment, since an interrupt generating in the I/O operation of the virtual machine is processed using an event mechanism, I/O performance as well as the I/O responsiveness may be decreased when the event responsiveness is decreased.