[go: up one dir, main page]

KR102846276B1 - Methdo and apparatus for operating virtual machine - Google Patents

Methdo and apparatus for operating virtual machine

Info

Publication number
KR102846276B1
KR102846276B1 KR1020220181542A KR20220181542A KR102846276B1 KR 102846276 B1 KR102846276 B1 KR 102846276B1 KR 1020220181542 A KR1020220181542 A KR 1020220181542A KR 20220181542 A KR20220181542 A KR 20220181542A KR 102846276 B1 KR102846276 B1 KR 102846276B1
Authority
KR
South Korea
Prior art keywords
virtual
cpu
virtual machine
physical
running
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
KR1020220181542A
Other languages
Korean (ko)
Other versions
KR20240099743A (en
Inventor
엄영익
이태형
Original Assignee
성균관대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 성균관대학교산학협력단 filed Critical 성균관대학교산학협력단
Priority to KR1020220181542A priority Critical patent/KR102846276B1/en
Publication of KR20240099743A publication Critical patent/KR20240099743A/en
Application granted granted Critical
Publication of KR102846276B1 publication Critical patent/KR102846276B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30094Condition code generation, e.g. Carry, Zero flag
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • G06F9/4837Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority time dependent
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

일 실시예에 따른 가상머신 운영 장치가 수행하는 가상머신 운영 방법은, 동일 물리자원을 공유하는 복수의 가상머신의 게스트 운영체계가 서비스 응답시간과 관련된 QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 정보를 하이퍼바이저에 제공하는 단계와, 상기 하이퍼바이저가 상기 가상 CPU에 대한 정보에 기초하여, 상기 복수의 가상머신별 물리 CPU의 총 할당 시간을 동일하게 유지하면서 상기 QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 물리 CPU의 할당 시간을 동적으로 조절하는 단계를 포함한다.A virtual machine operating method performed by a virtual machine operating device according to one embodiment includes a step of providing a hypervisor with information about a virtual CPU on which a process requiring QoS guarantee related to a service response time is running, by a guest operating system of a plurality of virtual machines sharing the same physical resource, and a step of the hypervisor dynamically adjusting, based on the information about the virtual CPU, the allocation time of a physical CPU for the virtual CPU on which the process requiring QoS guarantee is running while maintaining the total allocation time of the physical CPUs for each of the plurality of virtual machines the same.

Description

가상머신 운영 방법 및 장치{METHDO AND APPARATUS FOR OPERATING VIRTUAL MACHINE}Method and Apparatus for Operating Virtual Machines

본 발명은 가상머신(virtual machine)을 운영하는 방법과 이 방법을 수행할 수 있는 장치에 관한 것이다.The present invention relates to a method for operating a virtual machine and a device capable of performing the method.

가상화 시스템에서는 한정된 물리자원(예컨대, CPU, central processing unit)를 여러 가상머신이 공유를 해 사용하며, 일반적으로 하나의 물리 CPU를 일정 시간 단위로 여러 개의 가상 CPU가 공유하는 구조를 가진다. 즉, 각 가상 CPU의 컴퓨팅 파워는 가상머신의 수가 증가할수록 감소된다.In virtualized systems, limited physical resources (e.g., CPUs, central processing units) are shared among multiple virtual machines. Typically, a single physical CPU is shared by multiple virtual CPUs for a set period of time. This means that the computing power of each virtual CPU decreases as the number of virtual machines increases.

일반적으로 비가상화 시스템에서는 응답시간이 중요한 서비스들을 우선적으로 처리하기 위해 해당 프로세스의 우선순위를 높여 처리를 한다. 하지만, 가상화 시스템에서는 가상 CPU가 할당받는 실제 물리 CPU의 점유 시간이 가상머신의 수와 반비례하기 때문에, 서비스 응답시간이 지연되는 현상이 빈번히 발생한다. 이는 근본적으로 가상머신 내부의 게스트 운영체제에서는 해결할 수 없는 문제이다.Typically, non-virtualized systems prioritize response-critical services by increasing the priority of the relevant processes. However, in virtualized systems, the actual physical CPU occupancy time allocated to a virtual CPU is inversely proportional to the number of virtual machines, resulting in frequent service response time delays. This is a fundamental problem that cannot be solved within the guest operating system within the virtual machine.

특히, 단순히 게스트 운영체제 내부에서 응답시간이 중요한 서비스에 대한 우선순위를 높이는 방법은 한계가 존재한다. 게스트 운영체제 내부에서 아무리 응답시간이 중요한 프로세스의 우선순위를 높이더라도, 해당 프로세스가 점유할 수 있는 CPU 시간은 가상 CPU가 실행되는 시간에 따라 결정되기 때문이다.In particular, simply increasing the priority of response-time-critical services within the guest operating system has limitations. Even if a response-time-critical process is prioritized within the guest operating system, the CPU time it can occupy is determined by the virtual CPU's execution time.

그런데, 하이퍼바이저 역시 가상머신 내부의 동작 과정을 모르기 때문에 응답시간이 중요한 서비스를 우선적으로 처리하는데 한계가 존재한다. 하이퍼바이저에서 응답시간이 중요한 서비스를 탐지하기 위한 기법이 제안된 바 있지만, 특정 타입의 동작 방식만을 탐지할 수 있으며, 정확성이 떨어지는 문제점이 존재한다. 특히, 응답시간이 중요한 서비스의 수가 많아질수록 정확도가 현저히 떨어진다.However, because the hypervisor lacks knowledge of the internal operating processes of the virtual machine, it has limitations in prioritizing response-time-critical services. While techniques for detecting response-time-critical services in the hypervisor have been proposed, they only detect specific types of behavior and suffer from low accuracy. In particular, accuracy deteriorates significantly as the number of response-time-critical services increases.

일본등록특허 제5284809호, 등록일 2013년 06월 07일.Japanese Patent No. 5284809, registered on June 7, 2013.

일 실시예에 따르면, 서비스 응답시간과 관련된 QoS(quality of service) 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 정보에 기초하여 하이퍼바이저가 가상머신별 물리 CPU의 총 할당 시간을 동일하게 유지하면서 QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 물리 CPU의 할당 시간을 동적으로 조절하는 가상머신 운영 방법 및 장치를 제공한다.According to one embodiment, a method and device for operating a virtual machine are provided, in which a hypervisor dynamically adjusts the allocation time of a physical CPU for a virtual CPU on which a process requiring quality of service (QoS) guarantee related to a service response time is running, while maintaining the total allocation time of the physical CPU for each virtual machine the same, based on information about the virtual CPU on which the process requiring quality of service (QoS) guarantee is running.

본 발명의 해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to those mentioned above, and other problems to be solved that are not mentioned will be clearly understood by a person having ordinary skill in the art to which the present invention pertains from the description below.

제 1 관점으로서 가상머신 운영 장치가 수행하는 가상머신 운영 방법은, 동일 물리자원을 공유하는 복수의 가상머신의 게스트 운영체계가 서비스 응답시간과 관련된 QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 정보를 하이퍼바이저에 제공하는 단계와, 상기 하이퍼바이저가 상기 가상 CPU에 대한 정보에 기초하여, 상기 복수의 가상머신별 물리 CPU의 총 할당 시간을 동일하게 유지하면서 상기 QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 물리 CPU의 할당 시간을 동적으로 조절하는 단계를 포함한다.As a first aspect, a virtual machine operating method performed by a virtual machine operating device includes a step of providing a hypervisor with information about a virtual CPU on which a process requiring QoS guarantee related to a service response time is running, by a guest operating system of a plurality of virtual machines sharing the same physical resource, and a step of the hypervisor dynamically adjusting, based on the information about the virtual CPU, the allocation time of the physical CPU for the virtual CPU on which the process requiring QoS guarantee is running while maintaining the total allocation time of the physical CPUs for each of the plurality of virtual machines to be the same.

제 2 관점으로서 가상머신 운영 장치는, 적어도 하나의 명령어를 저장하는 메모리부와, 프로세서부를 포함하며, 상기 프로세서부에 의해 상기 적어도 하나의 명령어가 실행됨으로써, 동일 물리자원을 공유하는 복수의 가상머신 및 하이퍼바이저를 생성하고, 상기 복수의 가상머신의 게스트 운영체계가 서비스 응답시간과 관련된 QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 정보를 하이퍼바이저에 제공하며, 상기 하이퍼바이저는, 상기 가상 CPU에 대한 정보에 기초하여, 상기 복수의 가상머신별 물리 CPU의 총 할당 시간을 동일하게 유지하면서 상기 QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 물리 CPU의 할당 시간을 동적으로 조절한다.As a second aspect, a virtual machine operating device includes a memory unit storing at least one command, and a processor unit, and by executing the at least one command by the processor unit, a plurality of virtual machines and a hypervisor sharing the same physical resource are created, and a guest operating system of the plurality of virtual machines provides the hypervisor with information about a virtual CPU on which a process requiring QoS guarantee related to a service response time is running, and the hypervisor dynamically adjusts the allocation time of the physical CPU for the virtual CPU on which the process requiring QoS guarantee is running, based on the information about the virtual CPU, while maintaining the total allocation time of the physical CPU for each of the plurality of virtual machines to be the same.

제 3 관점으로서 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능 기록매체는, 상기 컴퓨터 프로그램이, 프로세서에 의해 실행되면, 상기 가상머신 운영 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함한다.As a third aspect, a computer-readable recording medium storing a computer program includes instructions for causing the processor to perform the virtual machine operating method when the computer program is executed by the processor.

제 4 관점으로서 컴퓨터 판독 가능한 기록매체에 저장되어 있는 컴퓨터 프로그램은, 상기 컴퓨터 프로그램이, 프로세서에 의해 실행되면, 상기 가상머신 운영 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함한다.As a fourth aspect, a computer program stored in a computer-readable recording medium includes instructions for causing the processor to perform the virtual machine operating method when the computer program is executed by the processor.

일 실시예에 따르면, 서비스 응답시간과 관련된 QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 정보에 기초하여 하이퍼바이저가 가상머신별 물리 CPU의 총 할당 시간을 동일하게 유지하면서 QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 물리 CPU의 할당 시간을 동적으로 조절한다. 이로써, 가상화 시스템이 많이 활용되고 응답시간이 중요한 마이크로서비스가 많이 사용되는 클라우드 환경에서 성능 측면의 이점을 갖는다.In one embodiment, based on information about the virtual CPUs on which processes requiring QoS guarantees related to service response times are running, the hypervisor dynamically adjusts the physical CPU allocation time for virtual CPUs on which processes requiring QoS guarantees are running, while maintaining the same total allocated physical CPU time for each virtual machine. This provides performance benefits in cloud environments where virtualization systems are heavily utilized and microservices with critical response times are frequently used.

도 1은 본 발명의 일 실시예에 따른 가상머신 운영 장치로서 기능할 수 있는 컴퓨터 장치의 구성도이다.
도 2는 도 1의 컴퓨터 장치가 가상머신 운영 장치로서 기능함으로써 가상머신 운영 방법을 수행할 때의 동작에 대한 개략도이다.
도 3은 응답시간이 중요한 서비스인 moses에서 종래 기술과 본 발명의 응답시간을 비교한 그래프이다.
도 4는 본 발명의 일 실시예에 따른 가상머신 운영 방법에서 우선순위 가중치 변화에 따른 응답시간의 CDF 결과를 나타낸 그래프이다.
도 5는 서로 다른 가상머신에서 동작하는 freqmine 벤치마크의 실행 시간을 비교한 그래프로서, VM1은 moses와 같이 실행되는 가상머신이고, VM2는 ferqmine 벤치마크만 동작하는 가상머신이다.
FIG. 1 is a configuration diagram of a computer device that can function as a virtual machine operating device according to one embodiment of the present invention.
FIG. 2 is a schematic diagram of an operation when the computer device of FIG. 1 functions as a virtual machine operating device and performs a virtual machine operating method.
Figure 3 is a graph comparing the response times of the conventional technology and the present invention in moses, a service where response time is important.
FIG. 4 is a graph showing the CDF results of response time according to changes in priority weights in a virtual machine operation method according to one embodiment of the present invention.
Figure 5 is a graph comparing the execution time of the freqmine benchmark running on different virtual machines. VM1 is a virtual machine running with moses, and VM2 is a virtual machine running only the ferqmine benchmark.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.The advantages and features of the present invention, and the methods for achieving them, will become clearer with reference to the embodiments described in detail below together with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below and may be implemented in various different forms. These embodiments are provided only to ensure that the disclosure of the present invention is complete and to fully inform those skilled in the art of the scope of the invention, and the present invention is defined only by the scope of the claims. Like reference numerals designate like elements throughout the specification.

본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.When describing embodiments of the present invention, detailed descriptions of known functions or configurations will be omitted if they are deemed to unnecessarily obscure the gist of the invention. Furthermore, the terms described below are defined in light of their functions in the embodiments of the present invention and may vary depending on the intent or custom of the user or operator. Therefore, their definitions should be based on the overall content of this specification.

도 1은 본 발명의 일 실시예에 따른 가상머신 운영 장치로서 기능할 수 있는 컴퓨터 장치(100)의 구성도이고, 도 2는 도 1의 컴퓨터 장치(100)가 가상머신 운영 장치로서 기능함으로써 가상머신 운영 방법을 수행할 때의 동작에 대한 개략도이다.FIG. 1 is a configuration diagram of a computer device (100) that can function as a virtual machine operating device according to one embodiment of the present invention, and FIG. 2 is a schematic diagram of an operation when the computer device (100) of FIG. 1 functions as a virtual machine operating device and thus performs a virtual machine operating method.

도 1 및 도 2를 참조하면, 가상머신 운영 장치로서 기능할 수 있는 컴퓨터 장치(100)는 적어도 하나의 명령어를 저장하는 메모리부(110) 및 프로세서부(120)를 포함하고, 프로세서부(120)에 의해 메모리부(110)의 적어도 하나의 명령어가 실행됨으로써, 동일 물리자원을 공유하는 복수의 가상머신(210) 및 하이퍼바이저(220)를 생성한다.Referring to FIGS. 1 and 2, a computer device (100) capable of functioning as a virtual machine operating device includes a memory unit (110) storing at least one command and a processor unit (120), and at least one command of the memory unit (110) is executed by the processor unit (120), thereby creating a plurality of virtual machines (210) and hypervisors (220) that share the same physical resources.

복수의 가상머신(210)의 게스트 운영체계(211)는 서비스 응답시간과 관련된 QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 정보를 하이퍼바이저(220)에 제공할 수 있고, 하이퍼바이저(220)는 가상 CPU에 대한 정보에 기초하여, 복수의 가상머신별 물리 CPU의 총 할당 시간을 동일하게 유지하면서 QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 물리 CPU의 할당 시간을 동적으로 조절할 수 있다.The guest operating systems (211) of the plurality of virtual machines (210) can provide the hypervisor (220) with information about the virtual CPUs on which processes requiring QoS guarantees related to service response time are running, and the hypervisor (220) can dynamically adjust the allocation time of the physical CPUs for the virtual CPUs on which processes requiring QoS guarantees are running while maintaining the total allocation time of the physical CPUs for each of the plurality of virtual machines the same based on the information about the virtual CPUs.

복수의 가상머신(210)에서 동작하는 어플리케이션(212)이 서비스 응답시간에 대한 힌트를 시스템 콜을 통해 게스트 운영체계(211)에 제공할 수 있고, 게스트 운영체계(211)의 게스트 프로세스 스케쥴러(213)가 시스템 콜에 기초하여, QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 정보를 하이퍼 콜을 통해 하이퍼바이저(220)에 전달할 수 있으며, 하이퍼바이저(220)의 가상 CPU 스케쥴러(221)가 하이퍼 콜에 대응하는 하이퍼 콜 핸들러에 따라 가상 CPU에 대한 물리 CPU의 할당 시간을 동적으로 조절할 수 있다.An application (212) running on multiple virtual machines (210) can provide a hint about a service response time to a guest operating system (211) through a system call, and a guest process scheduler (213) of the guest operating system (211) can transmit information about a virtual CPU on which a process requiring QoS guarantee runs to a hypervisor (220) through a hyper call based on the system call, and a virtual CPU scheduler (221) of the hypervisor (220) can dynamically adjust the allocation time of a physical CPU to a virtual CPU according to a hyper call handler corresponding to the hyper call.

게스트 운영체계(211)는 QoS 보장이 필요한 프로세스에 별도의 플래그를 설정할 수 있고, 게스트 프로세스 스케쥴러(213)는 별도의 플래그가 설정된 프로세스가 스케줄 인 되면 하이퍼 콜을 통해 우선순위 상승 요청과 해당 가상 CPU 정보를 전달할 수 있다.The guest operating system (211) can set a separate flag for a process requiring QoS guarantee, and the guest process scheduler (213) can transmit a priority increase request and corresponding virtual CPU information through a hyper call when a process with a separate flag set is scheduled.

게스트 프로세스 스케쥴러(213)는 서비스 응답시간과 관련된 QoS 보장이 필요한 프로세스가 가상 CPU에 스케줄 인 및 스케줄 아웃 될 때마다 해당 정보를 하이퍼 콜을 통해 전달할 수 있다.The guest process scheduler (213) can transmit the information via a hyper call whenever a process requiring QoS guarantee related to service response time is scheduled in and out of a virtual CPU.

도 3은 응답시간이 중요한 서비스인 moses에서 종래 기술과 본 발명의 응답시간을 비교한 그래프이고, 도 4는 본 발명의 일 실시예에 따른 가상머신 운영 방법에서 우선순위 가중치 변화에 따른 응답시간의 CDF 결과를 나타낸 그래프이며, 도 5는 서로 다른 가상머신에서 동작하는 freqmine 벤치마크의 실행 시간을 비교한 그래프로서, VM1은 moses와 같이 실행되는 가상머신이고, VM2는 ferqmine 벤치마크만 동작하는 가상머신이다.FIG. 3 is a graph comparing the response times of the prior art and the present invention in moses, a service where response time is important; FIG. 4 is a graph showing the CDF results of the response time according to changes in priority weights in a virtual machine operating method according to an embodiment of the present invention; and FIG. 5 is a graph comparing the execution times of freqmine benchmarks running on different virtual machines, where VM1 is a virtual machine running together with moses, and VM2 is a virtual machine running only the ferqmine benchmark.

이하, 도 1 및 도 5를 참조하여 본 발명의 일 실시예에 따른 가상머신 운영 장치가 수행하는 가상머신 운영 방법에 대해 자세히 살펴보기로 한다.Hereinafter, with reference to FIGS. 1 and 5, a virtual machine operation method performed by a virtual machine operation device according to one embodiment of the present invention will be examined in detail.

가상머신 운영 장치(100)의 메모리부(110)에는 프로세서부(120)에 의해 실행될 수 있는 적어도 하나의 명령어가 저장되고, 프로세서부(120)에 의해 메모리부(110)의 적어도 하나의 명령어가 실행됨으로써, 프로세서부(120)가 동일 물리자원을 공유하는 복수의 가상머신(210) 및 하이퍼바이저(220)를 생성한다.At least one command that can be executed by the processor unit (120) is stored in the memory unit (110) of the virtual machine operating device (100), and at least one command of the memory unit (110) is executed by the processor unit (120), thereby creating a plurality of virtual machines (210) and hypervisors (220) that share the same physical resources.

이렇게 생성된 복수의 가상머신(210)의 게스트 운영체계(211)는 서비스 응답시간과 관련된 QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 정보를 하이퍼바이저(220)에 제공할 수 있다.The guest operating system (211) of the multiple virtual machines (210) created in this way can provide the hypervisor (220) with information about the virtual CPU on which the process requiring QoS guarantee related to service response time is running.

예를 들어, 복수의 가상머신(210)에서 동작하는 어플리케이션(212)이 서비스 응답시간에 대한 힌트를 시스템 콜을 통해 게스트 운영체계(211)에 제공할 수 있다. 예컨대, 프로세서 식별정보가 시스템 콜을 통해 게이트 운영체계(211)에 제공될 수 있다. 그리고, 게스트 운영체계(211)의 게스트 프로세스 스케쥴러(213)가 시스템 콜에 기초하여, QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 정보를 하이퍼 콜을 통해 하이퍼바이저(220)에 전달할 수 있다. 예컨대, 게스트 프로세스 스케쥴러(213)에서 주기적으로 호출하며 가상 CPU에 대한 정보로서 가상 CPU 번호를 하이퍼바이저(220)에 전달할 수 있다.For example, an application (212) running on multiple virtual machines (210) can provide a hint about a service response time to a guest operating system (211) through a system call. For example, processor identification information can be provided to the gate operating system (211) through a system call. In addition, a guest process scheduler (213) of the guest operating system (211) can transmit information about a virtual CPU on which a process requiring QoS guarantee is running to a hypervisor (220) through a hyper call based on the system call. For example, the guest process scheduler (213) can periodically call and transmit a virtual CPU number as information about the virtual CPU to the hypervisor (220).

여기서, 게스트 운영체계(211)는 QoS 보장이 필요한 프로세스에 별도의 플래그를 설정할 수 있고, 게스트 프로세스 스케쥴러(213)는 별도의 플래그가 설정된 프로세스가 스케줄 인 되면 하이퍼 콜을 통해 우선순위 상승 요청과 해당 가상 CPU 정보를 전달할 수 있다. 예컨대, 게스트 프로세스 스케쥴러(213)는 서비스 응답시간과 관련된 QoS 보장이 필요한 프로세스가 가상 CPU에 스케줄 인 및 스케줄 아웃 될 때마다 해당 정보를 하이퍼 콜을 통해 전달할 수 있다. 여기서, 스케줄 아웃된 경우는 해당 CPU 정보와 함께 우선순위 하락 요청을 전달할 수 있다(S310).Here, the guest operating system (211) can set a separate flag for a process requiring QoS guarantee, and the guest process scheduler (213) can transmit a priority increase request and corresponding virtual CPU information through a hyper call when a process with a separate flag set is scheduled in. For example, the guest process scheduler (213) can transmit the corresponding information through a hyper call whenever a process requiring QoS guarantee related to service response time is scheduled in and out of a virtual CPU. Here, in the case of being scheduled out, a priority decrease request can be transmitted together with the corresponding CPU information (S310).

그러면, 하이퍼바이저(220)는 가상 CPU에 대한 정보에 기초하여, 복수의 가상머신별 물리 CPU의 총 할당 시간을 동일하게 유지하면서 QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 물리 CPU의 할당 시간을 동적으로 조절한다. 예를 들어, 하이퍼바이저(220)의 가상 CPU 스케쥴러(221)가 하이퍼 콜에 대응하는 하이퍼 콜 핸들러에 따라 가상 CPU에 대한 물리 CPU의 할당 시간을 동적으로 조절할 수 있다. 예를 들어, 하이퍼바이저(220)의 하이퍼 콜 핸들어에서는 단계 S310을 통해 전달받은 가상 CPU 번호와 우선순위 상승/하락 요청에 따라 가상 CPU의 우선순위를 나타내는 nice 값을 조절할 수 있다. 여기서, 복수의 가상머신별 물리 CPU의 총 할당 시간을 동일하게 유지하기 위하여, 즉 가상머신 간 자원 공평성을 고려하여, 가상머신별 CPU 할당 시간을 컨트롤 그룹(control group) 개념을 활용하여 보장할 수 있다. 즉, 가상머신의 가상 CPU 중 하나의 우선순위가 증가할 경우, 다른 가상 CPU의 물리 CPU 점유시간을 줄이는 방식으로 가상머신의 총 CPU 사용량을 동일하게 유지할 수 있다(S320).Then, based on the information about the virtual CPU, the hypervisor (220) dynamically adjusts the allocation time of the physical CPU for the virtual CPU on which the process requiring QoS guarantee is running, while maintaining the total allocation time of the physical CPU for each of the multiple virtual machines to be the same. For example, the virtual CPU scheduler (221) of the hypervisor (220) can dynamically adjust the allocation time of the physical CPU for the virtual CPU according to the hyper call handler corresponding to the hyper call. For example, the hyper call handler of the hypervisor (220) can adjust the nice value indicating the priority of the virtual CPU according to the virtual CPU number and priority increase/decrease request received through step S310. Here, in order to maintain the total allocation time of the physical CPU for each of the multiple virtual machines to be the same, that is, in consideration of resource fairness between virtual machines, the CPU allocation time for each virtual machine can be guaranteed by utilizing the concept of a control group. That is, when the priority of one of the virtual CPUs of the virtual machine increases, the total CPU usage of the virtual machine can be kept the same by reducing the physical CPU occupancy time of other virtual CPUs (S320).

도 3은 응답시간이 중요한 서비스인 moses에서 종래 기술과 본 발명의 응답시간을 비교한 그래프이고, 도 4는 본 발명의 일 실시예에 따른 가상머신 운영 방법에서 우선순위 가중치 변화에 따른 응답시간의 CDF 결과를 나타낸 그래프이며, 도 5는 서로 다른 가상머신에서 동작하는 freqmine 벤치마크의 실행 시간을 비교한 그래프로서, VM1은 moses와 같이 실행되는 가상머신이고, VM2는 ferqmine 벤치마크만 동작하는 가상머신이다.FIG. 3 is a graph comparing the response times of the prior art and the present invention in moses, a service where response time is important; FIG. 4 is a graph showing the CDF results of the response time according to changes in priority weights in a virtual machine operating method according to an embodiment of the present invention; and FIG. 5 is a graph comparing the execution times of freqmine benchmarks running on different virtual machines, where VM1 is a virtual machine running together with moses, and VM2 is a virtual machine running only the ferqmine benchmark.

도 3 내지 조 5를 참조하여 본 발명의 일 실시예에 따른 가상머신 운영 방법에 대한 성능 평가에 대해 설명하기로 한다.A performance evaluation of a virtual machine operation method according to one embodiment of the present invention will be described with reference to FIGS. 3 to 5.

성능 평가를 위해 두 개의 소켓으로 구성된 서버에서 실험을 진행하였다. 각 소켓에는 12개의 코어가 있는 Intel Xeon Silver 4116 CPU 및 64GB의 DDR4 DRAM이 탑제되어 있다. 실험에는 KVM 기반 가상머신을 사용하였으며, 각 가상머신은 12 개의 가상 CPU와 10GB 메모리가 할당되었다.To evaluate performance, experiments were conducted on a two-socket server. Each socket was equipped with a 12-core Intel Xeon Silver 4116 CPU and 64GB of DDR4 DRAM. KVM-based virtual machines were used for the experiments, each allocated 12 virtual CPUs and 10GB of memory.

실험에는 두 개의 벤치마크를 활용하였다. 하나는 moses라는 벤치마크로 온라인 번역 시스템 등에 사용되는 마이크로서비스이며 응답시간이 매우 중요한 특징을 가진다. 다른 하나는 PARSEC 벤치마크 슈트에 있는 freqmine이라는 벤치마크이며, 해당 벤치마크는 CPU의 사용량이 많고 응답시간이 중요하지 않은 특징을 가진다.Two benchmarks were used in the experiment. One is moses, a microservice used in online translation systems and characterized by a high response time. The other is freqmine, a benchmark within the PARSEC benchmark suite, which is characterized by high CPU usage and a low response time priority.

본 실험은 두 개의 가상머신이 동작하며, 실제 클라우드 환경을 구성하기 위해 CPU 자원에 대한 경쟁이 존재하도록 구성하였다. 각 가상머신의 가상 CPU는 물리 CPU에 하나씩 매핑되며, 물리 CPU 하나를 서로 다른 가상머신에 속하는 가상 CPU 2개가 공유한다.This experiment involved two virtual machines running, configuring them to compete for CPU resources to simulate a real-world cloud environment. Each virtual CPU maps to a physical CPU, and each physical CPU is shared between two virtual CPUs belonging to different virtual machines.

실제 클라우드 환경에서는 자원 활용률을 극대화하기 위해 응답시간이 중요한 서비스와 중요하지 않은 서비스를 동시에 실행시키는데, 이런 환경 구성을 위해 한 가상머신에서는 moses 와 freqmine이 동시에 동작하며, 다른 가상머신에서는 freqmine만 동작하도록 설정하였다.In an actual cloud environment, response time-critical and non-critical services are run simultaneously to maximize resource utilization. To configure this environment, moses and freqmine are set to run simultaneously on one virtual machine, while only freqmine is set to run on another virtual machine.

<실험 결과><Experimental Results>

도 3은 moses의 쓰레드 수에 따른 표준화된 응답시간을 나타낸다. 일반적으로 본 발명의 실시예에 따른 가상머신 운영 방법은 응답시간이 중요한 서비스의 프로세스가 많은 로드(load)를 가질수록 효과가 커지기 때문에, 쓰레드의 수가 작을수록 더 큰 성능 향상이 있었다. 평균 응답시간의 경우 최대 66.6% 향상되었으며, QoS에 중요한 꼬리 응답시간(tail latency)의 경우 95%에서는 최대 60.7%만큼, 99%에서는 최대 60.6%만큼의 성능 향상이 있었다.Figure 3 shows the standardized response time according to the number of moses threads. In general, the virtual machine operation method according to the embodiment of the present invention is more effective when the process of a service where response time is important has a high load. Therefore, the smaller the number of threads, the greater the performance improvement. The average response time was improved by up to 66.6%, and the tail response time, which is important for QoS, was improved by up to 60.7% at 95% and up to 60.6% at 99%.

본 발명의 실시예에 따른 가상머신 운영 방법은 가상 CPU의 우선순위를 얼마나 크게 조절하는지에 따라 실제 성능 향상의 정도가 다르다. 이를 확인하기 위해 가상 CPU의 우선순위 가중치를 2배, 5배, 10배 향상시키면서 성능 평가를 수행하였다. 도 4는 moses의 응답시간에 대한 CDF 결과를 나타낸다. 예상대로, 가중치가 증가할수록 응답시간의 감소폭이 증가하였으며, 가중치 10배의 경우에는 99% 꼬리 응답시간이 가중치 5배인 경우에 비해 7.3%만큼, 가중치 2배인 경우에 비해 37.7%만큼, 그리고 기존 시스템 대비 51.3%만큼 감소하였다.The virtual machine operation method according to an embodiment of the present invention shows that the degree of actual performance improvement varies depending on how much the priority of the virtual CPU is adjusted. To verify this, a performance evaluation was performed while increasing the priority weight of the virtual CPU by 2x, 5x, and 10x. Figure 4 shows the CDF results for the response time of moses. As expected, as the weight increases, the reduction in response time increases, and in the case of a 10x weight, the 99% tail response time was reduced by 7.3% compared to a 5x weight, by 37.7% compared to a 2x weight, and by 51.3% compared to the existing system.

본 발명의 실시예에 따른 가상머신 운영 방법은 실제 클라우드 시스템에 적용 가능한데, 이는 가상머신 간 성능 간섭을 발생시키지 않기 때문이다. 도 5는 각 가상머신에서의 freqmine 벤치마크의 성능을 나타낸다. VM1은 freqmine과 moses가 같이 동작하는 가상머신이며, 이 경우에는 freqmine의 성능이 감소한다. 이는 응답시간이 중요한 서비스를 우선적으로 처리하는 일반적인 클라우드 시스템의 가정과 동일하다. VM2는 freqmine만 동작하는 가상머신이며, 본 발명의 실시예에 따른 가상머신 운영 방법에서 VM1의 moses를 우선적으로 처리하는 것과 별개로 동일한 성능을 보인다. 즉, 가상머신 간 성능 간섭이 없음을 뜻한다.The virtual machine operation method according to an embodiment of the present invention can be applied to an actual cloud system because it does not cause performance interference between virtual machines. Figure 5 shows the performance of the freqmine benchmark in each virtual machine. VM1 is a virtual machine in which freqmine and moses run simultaneously, and in this case, the performance of freqmine decreases. This is identical to the assumption of a typical cloud system that prioritizes response-time-critical services. VM2 is a virtual machine in which only freqmine runs, and it shows the same performance regardless of the fact that VM1's moses is prioritized in the virtual machine operation method according to an embodiment of the present invention. This means that there is no performance interference between virtual machines.

한편, 전술한 실시예에 따른 가상머신 운영 장치(100)가 수행하는 가상머신 운영 방법에 포함된 각각의 단계를 프로세서가 수행하도록 하기 위한 명령어를 포함하도록 컴퓨터 프로그램이 구현될 수 있다.Meanwhile, a computer program may be implemented to include instructions for causing a processor to perform each step included in the virtual machine operation method performed by the virtual machine operation device (100) according to the above-described embodiment.

또한, 전술한 실시예에 따른 가상머신 운영 장치(100)가 수행하는 가상머신 운영 방법에 포함된 각각의 단계를 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 프로그램은 컴퓨터 판독 가능한 기록매체에 기록될 수 있다.In addition, a computer program including commands for causing a processor to perform each step included in a virtual machine operation method performed by a virtual machine operation device (100) according to the above-described embodiment may be recorded on a computer-readable recording medium.

지금까지 설명한 바와 같이, 본 발명의 일 실시예에 따르면, 서비스 응답시간과 관련된 QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 정보에 기초하여 하이퍼바이저가 가상머신별 물리 CPU의 총 할당 시간을 동일하게 유지하면서 QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 물리 CPU의 할당 시간을 동적으로 조절한다. 이로써, 가상화 시스템이 많이 활용되고 응답시간이 중요한 마이크로서비스가 많이 사용되는 클라우드 환경에서 성능 측면의 이점을 갖는다.As described above, according to one embodiment of the present invention, based on information about the virtual CPUs on which processes requiring QoS guarantees related to service response times are running, the hypervisor dynamically adjusts the physical CPU allocation time for the virtual CPUs on which processes requiring QoS guarantees are running, while maintaining the same total physical CPU allocation time for each virtual machine. This provides performance advantages in cloud environments where virtualization systems are heavily utilized and microservices with critical response times are frequently used.

첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다. The combination of each block of the attached block diagram and each step of the flowchart may be performed by computer program instructions. These computer program instructions may be installed in a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing equipment, so that the instructions, when executed by the processor of the computer or other programmable data processing equipment, create a means for performing the functions described in each block of the block diagram or each step of the flowchart. These computer program instructions may also be stored in a computer-available or computer-readable memory that can direct a computer or other programmable data processing equipment to implement functions in a specific manner, so that the instructions stored in the computer-available or computer-readable memory can produce an article of manufacture that includes an instruction means for performing the functions described in each block of the block diagram or each step of the flowchart. Since the computer program instructions can also be installed on a computer or other programmable data processing device, a series of operational steps are performed on the computer or other programmable data processing device to create a computer-executable process, and the instructions that cause the computer or other programmable data processing device to perform the steps for executing the functions described in each block of the block diagram and each step of the flowchart can also provide steps for executing the functions described in each block of the block diagram and each step of the flowchart.

또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.Additionally, each block or step may represent a module, segment, or portion of code that includes one or more executable instructions for performing a specific logical function(s). It should also be noted that in some alternative embodiments, the functions mentioned in the blocks or steps may occur out of order. For example, two blocks or steps depicted in succession may actually be performed substantially concurrently, or the blocks or steps may sometimes be performed in reverse order, depending on the functionality they perform.

이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely an illustrative illustration of the technical idea of the present invention, and those skilled in the art will appreciate that various modifications and variations can be made without departing from the essential characteristics of the present invention. Therefore, the embodiments disclosed in the present invention are intended to illustrate, rather than limit, the technical idea of the present invention, and the scope of the technical idea of the present invention is not limited by these embodiments. The scope of protection of the present invention should be interpreted by the following claims, and all technical ideas within a scope equivalent thereto should be interpreted as being included in the scope of the rights of the present invention.

100: 가상머신 운영 장치
110: 메모리부
120: 프로세서부
100: Virtual machine operating device
110: Memory section
120: Processor section

Claims (10)

가상머신 운영 장치가 수행하는 가상머신 운영 방법으로서,
동일 물리자원을 공유하는 복수의 가상머신의 게스트 운영체계가 서비스 응답시간과 관련된 QoS(quality of service) 보장이 필요한 프로세스가 동작하는 가상 CPU(central processing unit)에 대한 정보를 하이퍼바이저에 제공하는 단계와,
상기 하이퍼바이저가 상기 가상 CPU에 대한 정보에 기초하여, 상기 복수의 가상머신별 물리 CPU의 총 할당 시간을 동일하게 유지하면서 상기 QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 물리 CPU의 할당 시간을 동적으로 조절하는 단계를 포함하고,
상기 가상머신별 물리 CPU의 총 할당 시간을 동일하게 유지하기 위하여, 상기 QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 물리 CPU의 할당 시간이 증가할 경우, 동일 가상머신 내 다른 가상 CPU의 물리 CPU 점유시간을 줄이는
가상머신 운영 방법.
A virtual machine operation method performed by a virtual machine operation device,
A step in which the guest operating systems of multiple virtual machines sharing the same physical resources provide the hypervisor with information about the virtual CPU (central processing unit) on which a process requiring quality of service (QoS) guarantee related to service response time is running,
The hypervisor dynamically adjusts the allocation time of the physical CPU for the virtual CPU on which the process requiring QoS guarantee is running while maintaining the total allocation time of the physical CPU for each of the plurality of virtual machines to be the same based on information about the virtual CPU,
In order to keep the total allocation time of the physical CPU for each virtual machine the same, if the allocation time of the physical CPU for the virtual CPU on which the process requiring the QoS guarantee is running increases, the physical CPU occupancy time of other virtual CPUs in the same virtual machine is reduced.
How to operate a virtual machine.
제 1 항에 있어서,
상기 복수의 가상머신에서 동작하는 어플리케이션이 상기 서비스 응답시간에 대한 힌트를 시스템 콜을 통해 상기 게스트 운영체계에 제공하고,
상기 게스트 운영체계의 게스트 프로세스 스케쥴러가 상기 시스템 콜에 기초하여, 상기 QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 정보를 하이퍼 콜을 통해 상기 하이퍼바이저에 전달하며,
상기 하이퍼바이저의 가상 CPU 스케쥴러가 상기 하이퍼 콜에 대응하는 하이퍼 콜 핸들러에 따라 상기 가상 CPU에 대한 물리 CPU의 할당 시간을 동적으로 조절하는
가상머신 운영 방법.
In the first paragraph,
An application running on the above multiple virtual machines provides a hint about the service response time to the guest operating system through a system call,
The guest process scheduler of the guest operating system transmits information about the virtual CPU on which the process requiring QoS guarantee is running to the hypervisor through a hyper call based on the system call.
The virtual CPU scheduler of the hypervisor dynamically adjusts the allocation time of the physical CPU to the virtual CPU according to the hyper call handler corresponding to the hyper call.
How to operate a virtual machine.
제 2 항에 있어서,
상기 게스트 운영체계는 상기 QoS 보장이 필요한 프로세스에 별도의 플래그를 설정하고, 상기 게스트 프로세스 스케쥴러는 상기 별도의 플래그가 설정된 프로세스가 스케줄 인 되면 상기 하이퍼 콜을 통해 우선순위 상승 요청과 해당 가상 CPU 정보를 전달하는
가상머신 운영 방법.
In the second paragraph,
The guest operating system sets a separate flag for a process requiring QoS guarantee, and the guest process scheduler transmits a priority increase request and corresponding virtual CPU information through the hyper call when the process with the separate flag set is scheduled.
How to operate a virtual machine.
제 3 항에 있어서,
상기 게스트 프로세스 스케쥴러는 상기 서비스 응답시간과 관련된 QoS 보장이 필요한 프로세스가 상기 가상 CPU에 스케줄 인 및 스케줄 아웃 될 때마다 해당 정보를 상기 하이퍼 콜을 통해 전달하는
가상머신 운영 방법.
In the third paragraph,
The guest process scheduler transmits the information through the hyper call whenever a process requiring QoS guarantee related to the service response time is scheduled in and out of the virtual CPU.
How to operate a virtual machine.
적어도 하나의 명령어를 저장하는 메모리부와,
프로세서부를 포함하며,
상기 프로세서부에 의해 상기 적어도 하나의 명령어가 실행됨으로써, 동일 물리자원을 공유하는 복수의 가상머신 및 하이퍼바이저를 생성하고,
상기 복수의 가상머신의 게스트 운영체계가 서비스 응답시간과 관련된 QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 정보를 하이퍼바이저에 제공하며,
상기 하이퍼바이저는, 상기 가상 CPU에 대한 정보에 기초하여, 상기 복수의 가상머신별 물리 CPU의 총 할당 시간을 동일하게 유지하면서 상기 QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 물리 CPU의 할당 시간을 동적으로 조절하고,
상기 가상머신별 물리 CPU의 총 할당 시간을 동일하게 유지하기 위하여, 상기 QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 물리 CPU의 할당 시간이 증가할 경우, 동일 가상머신 내 다른 가상 CPU의 물리 CPU 점유시간을 줄이는
가상머신 운영 장치.
A memory section that stores at least one instruction, and
Includes a processor unit,
By executing at least one instruction by the processor unit, a plurality of virtual machines and hypervisors sharing the same physical resources are created,
The guest operating systems of the above multiple virtual machines provide the hypervisor with information about the virtual CPUs on which processes requiring QoS guarantees related to service response time are running.
The hypervisor dynamically adjusts the allocation time of the physical CPU for the virtual CPU on which the process requiring QoS guarantee is running, based on information about the virtual CPU, while maintaining the total allocation time of the physical CPU for each of the plurality of virtual machines to be the same.
In order to keep the total allocation time of the physical CPU for each virtual machine the same, if the allocation time of the physical CPU for the virtual CPU on which the process requiring the QoS guarantee is running increases, the physical CPU occupancy time of other virtual CPUs in the same virtual machine is reduced.
Virtual machine operating device.
제 5 항에 있어서,
상기 복수의 가상머신에서 동작하는 어플리케이션이 상기 서비스 응답시간에 대한 힌트를 시스템 콜을 통해 상기 게스트 운영체계에 제공하고, 상기 게스트 운영체계의 게스트 프로세스 스케쥴러가 상기 시스템 콜에 기초하여, 상기 QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 정보를 하이퍼 콜을 통해 상기 하이퍼바이저에 전달하며, 상기 하이퍼바이저의 가상 CPU 스케쥴러가 상기 하이퍼 콜에 대응하는 하이퍼 콜 핸들러에 따라 상기 가상 CPU에 대한 물리 CPU의 할당 시간을 동적으로 조절하는
가상머신 운영 장치.
In paragraph 5,
An application running on the plurality of virtual machines provides a hint about the service response time to the guest operating system through a system call, a guest process scheduler of the guest operating system transmits information about a virtual CPU on which a process requiring QoS guarantee runs to the hypervisor through a hyper call based on the system call, and a virtual CPU scheduler of the hypervisor dynamically adjusts the allocation time of a physical CPU to the virtual CPU according to a hyper call handler corresponding to the hyper call.
Virtual machine operating device.
제 6 항에 있어서,
상기 게스트 운영체계는 상기 QoS 보장이 필요한 프로세스에 별도의 플래그를 설정하고, 상기 게스트 프로세스 스케쥴러는 상기 별도의 플래그가 설정된 프로세스가 스케줄 인 되면 상기 하이퍼 콜을 통해 우선순위 상승 요청과 해당 가상 CPU 정보를 전달하는
가상머신 운영 장치.
In paragraph 6,
The guest operating system sets a separate flag for a process requiring QoS guarantee, and the guest process scheduler transmits a priority increase request and corresponding virtual CPU information through the hyper call when the process with the separate flag set is scheduled.
Virtual machine operating device.
제 7 항에 있어서,
상기 게스트 프로세스 스케쥴러는 상기 서비스 응답시간과 관련된 QoS 보장이 필요한 프로세스가 상기 가상 CPU에 스케줄 인 및 스케줄 아웃 될 때마다 해당 정보를 상기 하이퍼 콜을 통해 전달하는
가상머신 운영 장치.
In paragraph 7,
The guest process scheduler transmits the information through the hyper call whenever a process requiring QoS guarantee related to the service response time is scheduled in and out of the virtual CPU.
Virtual machine operating device.
컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능 기록매체로서,
상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면,
동일 물리자원을 공유하는 복수의 가상머신의 게스트 운영체계가 서비스 응답시간과 관련된 QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 정보를 하이퍼바이저에 제공하는 단계와, 상기 하이퍼바이저가 상기 가상 CPU에 대한 정보에 기초하여, 상기 복수의 가상머신별 물리 CPU의 총 할당 시간을 동일하게 유지하면서 상기 QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 물리 CPU의 할당 시간을 동적으로 조절하는 단계를 포함하고,
상기 가상머신별 물리 CPU의 총 할당 시간을 동일하게 유지하기 위하여, 상기 QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 물리 CPU의 할당 시간이 증가할 경우, 동일 가상머신 내 다른 가상 CPU의 물리 CPU 점유시간을 줄이는
가상머신 운영 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함하는
컴퓨터 판독 가능한 기록매체.
A computer-readable recording medium storing a computer program,
The above computer program, when executed by a processor,
A step of providing a hypervisor with information about a virtual CPU on which a process requiring QoS guarantee related to a service response time is running by a guest operating system of a plurality of virtual machines sharing the same physical resource, and a step of dynamically adjusting the allocation time of a physical CPU for a virtual CPU on which a process requiring QoS guarantee is running based on the information about the virtual CPU while maintaining the total allocation time of the physical CPU for each of the plurality of virtual machines to be the same,
In order to keep the total allocation time of the physical CPU for each virtual machine the same, if the allocation time of the physical CPU for the virtual CPU on which the process requiring the QoS guarantee is running increases, the physical CPU occupancy time of other virtual CPUs in the same virtual machine is reduced.
Contains instructions for causing the processor to perform a virtual machine operation method.
Computer-readable recording medium.
컴퓨터 판독 가능한 기록매체에 저장되어 있는 컴퓨터 프로그램으로서,
상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면,
동일 물리자원을 공유하는 복수의 가상머신의 게스트 운영체계가 서비스 응답시간과 관련된 QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 정보를 하이퍼바이저에 제공하는 단계와, 상기 하이퍼바이저가 상기 가상 CPU에 대한 정보에 기초하여, 상기 복수의 가상머신별 물리 CPU의 총 할당 시간을 동일하게 유지하면서 상기 QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 물리 CPU의 할당 시간을 동적으로 조절하는 단계를 포함하고,
상기 가상머신별 물리 CPU의 총 할당 시간을 동일하게 유지하기 위하여, 상기 QoS 보장이 필요한 프로세스가 동작하는 가상 CPU에 대한 물리 CPU의 할당 시간이 증가할 경우, 동일 가상머신 내 다른 가상 CPU의 물리 CPU 점유시간을 줄이는
가상머신 운영 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함하는
컴퓨터 프로그램.
A computer program stored in a computer-readable recording medium,
The above computer program, when executed by a processor,
A step of providing a hypervisor with information about a virtual CPU on which a process requiring QoS guarantee related to a service response time is running by a guest operating system of a plurality of virtual machines sharing the same physical resource, and a step of dynamically adjusting the allocation time of a physical CPU for a virtual CPU on which a process requiring QoS guarantee is running based on the information about the virtual CPU while maintaining the total allocation time of the physical CPU for each of the plurality of virtual machines to be the same,
In order to keep the total allocation time of the physical CPU for each virtual machine the same, if the allocation time of the physical CPU for the virtual CPU on which the process requiring the QoS guarantee is running increases, the physical CPU occupancy time of other virtual CPUs in the same virtual machine is reduced.
Contains instructions for causing the processor to perform a virtual machine operation method.
Computer program.
KR1020220181542A 2022-12-22 2022-12-22 Methdo and apparatus for operating virtual machine Active KR102846276B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220181542A KR102846276B1 (en) 2022-12-22 2022-12-22 Methdo and apparatus for operating virtual machine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220181542A KR102846276B1 (en) 2022-12-22 2022-12-22 Methdo and apparatus for operating virtual machine

Publications (2)

Publication Number Publication Date
KR20240099743A KR20240099743A (en) 2024-07-01
KR102846276B1 true KR102846276B1 (en) 2025-08-14

Family

ID=91944838

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220181542A Active KR102846276B1 (en) 2022-12-22 2022-12-22 Methdo and apparatus for operating virtual machine

Country Status (1)

Country Link
KR (1) KR102846276B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102788298B1 (en) 2024-07-19 2025-04-01 아이티정보기술 주식회사 Server and method for optimizing virtual machine based on workload analysis

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130080641A1 (en) * 2011-09-26 2013-03-28 Knoa Software, Inc. Method, system and program product for allocation and/or prioritization of electronic resources
KR101686658B1 (en) * 2014-12-17 2016-12-14 (주)에임투지 Cloud auto scaling apparatus based service quality of user and method therof
JP2017199044A (en) * 2014-07-31 2017-11-02 日本電気株式会社 Virtual computer system, scheduling method, and program
JP2018112837A (en) 2017-01-10 2018-07-19 株式会社東芝 Virtual machine management device, virtual machine management method and computer program

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101499021A (en) 2008-01-31 2009-08-05 国际商业机器公司 Method and apparatus for dynamically distributing resources on a plurality of virtual machines
KR20170017183A (en) * 2015-08-05 2017-02-15 주식회사 케이티 Apparatus, method and computer program for controlling virtual cpu
KR20210127427A (en) * 2020-04-14 2021-10-22 한국전자통신연구원 Method and apparatus for cpu virtualization in multicore embedded system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130080641A1 (en) * 2011-09-26 2013-03-28 Knoa Software, Inc. Method, system and program product for allocation and/or prioritization of electronic resources
JP2017199044A (en) * 2014-07-31 2017-11-02 日本電気株式会社 Virtual computer system, scheduling method, and program
KR101686658B1 (en) * 2014-12-17 2016-12-14 (주)에임투지 Cloud auto scaling apparatus based service quality of user and method therof
JP2018112837A (en) 2017-01-10 2018-07-19 株式会社東芝 Virtual machine management device, virtual machine management method and computer program

Also Published As

Publication number Publication date
KR20240099743A (en) 2024-07-01

Similar Documents

Publication Publication Date Title
CN113835895B (en) Thread and/or virtual machine scheduling for cores with different capabilities
US11681544B2 (en) Interference-aware scheduling service for virtual GPU enabled systems
US20190213033A1 (en) Optimizing Host CPU Usage Based on Virtual Machine Guest OS Power and Performance Management
US20150046620A1 (en) Pessimistic interrupt affinity for devices
US20130054860A1 (en) Optimistic interrupt affinity for devices
US20190377612A1 (en) VCPU Thread Scheduling Method and Apparatus
US11429424B2 (en) Fine-grained application-aware latency optimization for virtual machines at runtime
KR20210127427A (en) Method and apparatus for cpu virtualization in multicore embedded system
US20150100964A1 (en) Apparatus and method for managing migration of tasks between cores based on scheduling policy
KR102846276B1 (en) Methdo and apparatus for operating virtual machine
KR101330609B1 (en) Method For Scheduling of Mobile Multi-Core Virtualization System To Guarantee Real Time Process
US12250159B2 (en) Rate proportional scheduling to reduce packet loss in virtualized network function chains
CN109960567B (en) Semiconductor Equipment
US11237860B2 (en) Command-based processing of real-time virtualized jobs
US11182183B2 (en) Workload placement using conflict cost
JP5945617B2 (en) Multicore processor control program, electronic device, and control method
CN113032154B (en) Scheduling method and device for virtual CPU, electronic equipment and storage medium
Joe et al. Effects of dynamic isolation for full virtualized RTOS and GPOS guests
KR101952221B1 (en) Efficient Multitasking GPU with Latency Minimization and Cache boosting
Bacou et al. Your Containers should be WYSIWYG
Li et al. vINT: Hardware-assisted virtual interrupt remapping for SMP VM with scheduling awareness
US20240272927A1 (en) Method for resource allocation for applications and/or application containers in a distributed system of heterogeneous compute nodes
JP2019179418A (en) Scheduling method and scheduling device
CN119690671A (en) A task scheduling method for a virtual machine and a host machine
HoseinyFarahabady et al. I/O Latency Management in Private Cloud Infrastructures

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

PN2301 Change of applicant

St.27 status event code: A-3-3-R10-R13-asn-PN2301

St.27 status event code: A-3-3-R10-R11-asn-PN2301

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

D22 Grant of ip right intended

Free format text: ST27 STATUS EVENT CODE: A-1-2-D10-D22-EXM-PE0701 (AS PROVIDED BY THE NATIONAL OFFICE)

PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

F11 Ip right granted following substantive examination

Free format text: ST27 STATUS EVENT CODE: A-2-4-F10-F11-EXM-PR0701 (AS PROVIDED BY THE NATIONAL OFFICE)

PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

U11 Full renewal or maintenance fee paid

Free format text: ST27 STATUS EVENT CODE: A-2-2-U10-U11-OTH-PR1002 (AS PROVIDED BY THE NATIONAL OFFICE)

Year of fee payment: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

Q13 Ip right document published

Free format text: ST27 STATUS EVENT CODE: A-4-4-Q10-Q13-NAP-PG1601 (AS PROVIDED BY THE NATIONAL OFFICE)