KR20200129397A - Method for controlling performance in virtualized environment and information processing device for the same - Google Patents

Method for controlling performance in virtualized environment and information processing device for the same Download PDF

Info

Publication number
KR20200129397A
KR20200129397A KR1020190053729A KR20190053729A KR20200129397A KR 20200129397 A KR20200129397 A KR 20200129397A KR 1020190053729 A KR1020190053729 A KR 1020190053729A KR 20190053729 A KR20190053729 A KR 20190053729A KR 20200129397 A KR20200129397 A KR 20200129397A
Authority
KR
South Korea
Prior art keywords
performance
target
input
virtual machine
adjustment value
Prior art date
Application number
KR1020190053729A
Other languages
Korean (ko)
Other versions
KR102203204B1 (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 KR1020190053729A priority Critical patent/KR102203204B1/en
Priority to US16/599,376 priority patent/US11429420B2/en
Publication of KR20200129397A publication Critical patent/KR20200129397A/en
Application granted granted Critical
Publication of KR102203204B1 publication Critical patent/KR102203204B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Disclosed is an information processing device for performing performance control in virtualization environment. The information processing device comprises: an input/output thread that transmits signals between a virtual machine and at least one physical resource; and a performance management part that compares the target performance of the virtual machine and the actual performance of the virtual machine, and manages physical resources allocated to the input/output thread based on the comparison result, wherein the performance management part obtains information on the actual performance of the virtual machine, determines a performance adjustment value by using a difference between the actual performance of the virtual machine and the target performance of the virtual machine, and manages resources allocated to the input/output thread based on the performance adjustment value. According to the present invention, performance degradation due to resource contention between virtual machines can be prevented by controlling and managing input/output performance between a virtual machine and a physical device.

Description

가상화 환경에서의 성능 제어 방법 및 이를 위한 정보 처리 장치{METHOD FOR CONTROLLING PERFORMANCE IN VIRTUALIZED ENVIRONMENT AND INFORMATION PROCESSING DEVICE FOR THE SAME}Performance control method in a virtualized environment, and information processing device for the same {METHOD FOR CONTROLLING PERFORMANCE IN VIRTUALIZED ENVIRONMENT AND INFORMATION PROCESSING DEVICE FOR THE SAME}

본 발명은 가상화 환경에서 성능 제어 방법 및 이를 위한 정보 처리 장치에 관한 것이다.The present invention relates to a performance control method in a virtualized environment and an information processing apparatus therefor.

가상 머신(VM, Virtual Machine, 버추얼 머신 등으로도 표기될 수 있다)은 물리적 컴퓨팅 환경(예를 들어, 중앙 처리 장치나 메모리 장치 등)을 소프트웨어적으로 구현하여 통상의 컴퓨팅 장치와 유사하게 동작할 수 있도록 구현한 것이다. 즉, 가상 머신은 물리 머신의 자원을 이용하여 구동된다. 가상 머신에는, 가상 머신의 자원이나 소프트웨어 등을 효율적으로 관리하기 위한 운영 체제(OS, operating system, 이하 게스트 운영 체제)가 설치될 수 있다. 게스트 운영 체제는 물리 머신에 직접 설치된 운영 체제(이하 호스트 운영 체제)와 유사하게 소정의 자원에 대한 인터페이스의 제공, 입력된 데이터 등의 연산 처리 또는 필요한 동작에 대한 제어 명령 생성 등과 같은 다양한 동작을 수행할 수 있다.A virtual machine (which can also be referred to as a VM, a virtual machine, a virtual machine, etc.) implements a physical computing environment (eg, a central processing unit or a memory device) in software to operate similarly to a general computing device. It is implemented so that it can be done. That is, the virtual machine is driven by using the resources of the physical machine. In the virtual machine, an operating system (OS, operating system, hereinafter referred to as guest operating system) for efficiently managing resources or software of the virtual machine may be installed. The guest operating system performs various operations, such as providing an interface to a predetermined resource, processing input data, or generating control commands for required operations, similar to an operating system directly installed on a physical machine (hereinafter referred to as a host operating system). can do.

하나의 물리 머신에는 복수의 가상 머신이 설치 및 구축될 수 있다. 하나의 물리 머신 내에 설치된 복수의 가상 머신은 물리 머신의 자원을 서로 공유하면서 구동된다. 가상화(virtualization)는 물리 머신의 자원 활용률 저하를 방지하면서 다수의 가상 머신이 물리 머신의 자원을 공유할 수 있는 환경을 구축 및 제공하는 기술이다. 가상화 기술에 의해 사용자는 다양한 컴퓨팅 플랫폼 및 이러한 플랫폼을 기반으로 하는 서비스를 제공받을 수 있게 된다.A plurality of virtual machines may be installed and built in one physical machine. A plurality of virtual machines installed in one physical machine are driven while sharing resources of the physical machine. Virtualization is a technology that builds and provides an environment in which a number of virtual machines can share the resources of a physical machine while preventing a decrease in the resource utilization rate of a physical machine. The virtualization technology enables users to receive various computing platforms and services based on these platforms.

근자에는 이와 같은 가상화 기술을 이용하면 클라우드 컴퓨팅을 구현하기도 한다. 특히, 클라우드 컴퓨팅은 서버 통합(server consolidation) 기술을 이용하여 물리적 자원을 가상화하여 통합함으로써 구현될 수도 있다. 서버 통합 기술은 상대적으로 낮은 사용률의 물리적 서버 장치들에 설치된 가상 머신들을 다른 소수의 물리적 서버 장치에 집중 설치하여 여러 가상 머신들이 하나의 물리 머신에서 동작하게 한다. 이에 따라 특정 물리적 서버 장치의 사용률을 높일 수 있게 되고, 또한 사용되지 않은 다른 물리적 서버 장치에 인가되는 전력의 차단에 따라 클라우드 데이터 센터 전체의 유지 비용을 절감할 수 있게 된다. 한편, 사용자가 이와 같이 구축된 가상 머신을 이용하는 경우, 사용 목적 등에 따라 가상 머신에 대해 어느 정도의 수준을 요구할 수 있다. 클라우드 컴퓨팅의 서비스 제공자는 서비스 수준 계약(SLA, service level agreement)을 통해 사용자의 요구 수준을 제시 및 보장하려고 하고 있다. 그러나, 여전히 성능에 대한 보장은 제대로 이뤄지지 않고 있으며, 제한적인 수준에 머물고 있다.In recent years, cloud computing is also implemented by using such a virtualization technology. In particular, cloud computing may be implemented by virtualizing and consolidating physical resources using server consolidation technology. In the server integration technology, virtual machines installed on physical server devices with a relatively low utilization rate are centrally installed on a small number of different physical server devices, so that several virtual machines operate on one physical machine. Accordingly, it is possible to increase the utilization rate of a specific physical server device, and also reduce the maintenance cost of the entire cloud data center by cutting off power applied to other physical server devices that are not used. On the other hand, when a user uses a virtual machine constructed in this way, a certain level may be requested for the virtual machine according to the purpose of use. Cloud computing service providers are attempting to present and guarantee the level of user demand through a service level agreement (SLA). However, performance is still not properly guaranteed, and it remains at a limited level.

대한민국 등록특허 제1613513호 (2016.04.12.)Republic of Korea Patent Registration No. 1613513 (2016.04.12.) 일본국 공개특허 제2018-036724호 (2018.03.08.)Japanese Patent Publication No. 2018-036724 (2018.03.08.)

본 발명은 가상 머신 및 물리적 장치 사이의 입출력 성능을 제어 및 관리하여 가상 머신 간의 자원 경쟁으로 인한 성능 저하를 방지할 수 있는 가상화 환경에서의 성능 제어 방법 및 이를 위한 정보 처리 장치를 제공하는 것을 해결하고자 하는 과제로 한다.The present invention is to solve the provision of a performance control method in a virtualization environment and an information processing device for the same, which can prevent performance degradation due to resource contention between virtual machines by controlling and managing input/output performance between virtual machines and physical devices. It is a task to do.

상술한 과제를 해결하기 위하여 가상 환경에서 성능 제어 방법 및 이를 위한 정보 처리 장치가 제공된다.In order to solve the above problems, a performance control method in a virtual environment and an information processing apparatus therefor are provided.

정보 처리 장치는 가상 머신, 상기 가상 머신과 적어도 하나의 물리 자원 간의 신호의 전달을 수행하는 입출력 스레드 및 상기 가상 머신에 대한 목표 성능 및 상기 가상 머신의 실제 성능을 비교하고, 비교 결과를 기반으로 상기 입출력 스레드에 할당되는 자원을 관리하는 성능 관리부를 포함할 수 있다.The information processing apparatus compares a virtual machine, an input/output thread for transmitting signals between the virtual machine and at least one physical resource, and a target performance of the virtual machine and the actual performance of the virtual machine, and the comparison result It may include a performance management unit for managing resources allocated to the input/output threads.

상기 성능 관리부는, 상기 가상 머신의 실제 성능에 대한 정보를 획득하고, 상기 가상 머신의 실제 성능 및 상기 가상 머신에 대한 목표 성능 사이의 차이를 이용하여 성능 조절 값을 결정하고, 상기 성능 조절 값을 기반으로 상기 입출력 스레드에 할당되는 자원을 관리할 수 있다.The performance management unit obtains information on the actual performance of the virtual machine, determines a performance adjustment value by using a difference between the actual performance of the virtual machine and the target performance of the virtual machine, and determines the performance adjustment value. Based on this, resources allocated to the input/output thread can be managed.

상기 성능 관리부는, 상기 성능 조절 값에 대응하여 상기 입출력 스레드의 프로세서에 대한 목표 사용량을 결정하고 상기 프로세서에 대한 목표 사용량을 기반으로 상기 입출력 스레드에 할당되는 상기 프로세서의 자원을 관리할 수 있다.The performance management unit may determine a target usage of the input/output thread for the processor in response to the performance adjustment value, and manage resources of the processor allocated to the input/output thread based on the target usage for the processor.

상기 성능 관리부는, 상기 목표 사용량을 기반으로 상기 입출력 스레드 및 상기 프로세서 중 적어도 하나에 대한 제어 신호를 생성할 수 있다.The performance management unit may generate a control signal for at least one of the input/output thread and the processor based on the target usage.

상기 성능 관리부는, 상기 실제 성능 및 상기 목표 성능 사이의 차이에 대한 상기 목표 성능의 비율을 기반으로 상기 성능 조절 값을 연산하고, 상기 성능 조절 값을 상기 프로세서에 대한 현재의 사용량에 부가하거나 차감하여 상기 목표 사용량을 결정할 수 있다.The performance management unit calculates the performance adjustment value based on a ratio of the target performance to the difference between the actual performance and the target performance, and adds or subtracts the performance adjustment value to the current usage for the processor. The target usage can be determined.

상기 성능 관리부는, 조절 상수를 더 이용하여 상기 성능 조절 값을 연산할 수 있다.The performance management unit may further use an adjustment constant to calculate the performance adjustment value.

상기 적어도 하나의 물리 자원은, 네트워크 장치 및 메모리 장치 중 적어도 하나를 포함할 수 있다.The at least one physical resource may include at least one of a network device and a memory device.

상기 성능 관리부는, 사용자 또는 다른 프로세서로부터 상기 가상 머신에 대한 목표 성능을 입력 받을 수 있다.The performance management unit may receive a target performance for the virtual machine from a user or another processor.

가상 환경에서 성능 제어 방법은, 가상 머신에 대한 목표 성능 및 상기 가상 머신에 대한 실제 성능을 획득하는 단계 및 상기 목표 성능 및 상기 실제 성능을 기반으로 입출력 스레드에 할당되는 자원을 관리하되, 상기 입출력 스레드는 가상 머신과 적어도 하나의 물리 자원 간의 신호의 전달을 수행하는 단계를 포함할 수 있다.A performance control method in a virtual environment includes the steps of acquiring a target performance for a virtual machine and an actual performance for the virtual machine, and managing resources allocated to an input/output thread based on the target performance and the actual performance, the input/output thread May include transmitting a signal between the virtual machine and at least one physical resource.

상기 목표 성능 및 상기 실제 성능을 기반으로 입출력 스레드에 할당되는 자원을 관리하는 단계는, 상기 가상 머신의 실제 성능에 대한 정보를 획득하는 단계, 상기 가상 머신의 실제 성능 및 상기 가상 머신에 대한 목표 성능 사이의 차이를 이용하여 성능 조절 값을 결정하는 단계 및 상기 성능 조절 값을 기반으로 상기 입출력 스레드에 할당되는 자원을 관리하는 단계를 포함할 수 있다.The managing of the resources allocated to the input/output threads based on the target performance and the actual performance includes: obtaining information on the actual performance of the virtual machine, the actual performance of the virtual machine, and the target performance of the virtual machine. It may include determining a performance adjustment value using the difference between the values and managing resources allocated to the input/output thread based on the performance adjustment value.

상기 성능 조절 값을 기반으로 상기 입출력 스레드에 할당되는 자원을 관리하는 단계는, 상기 성능 조절 값에 대응하여 상기 입출력 스레드의 프로세서에 대한 목표 사용량을 결정하는 단계 및 상기 프로세서에 대한 목표 사용량을 기반으로 상기 입출력 스레드에 할당되는 상기 프로세서의 자원을 관리하는 단계를 포함할 수 있다.The managing of the resources allocated to the input/output thread based on the performance adjustment value may include determining a target usage amount for the processor of the input/output thread in response to the performance adjustment value and the target usage for the processor. And managing resources of the processor allocated to the input/output thread.

상기 성능 조절 값을 기반으로 상기 입출력 스레드에 할당되는 자원을 관리하는 단계는, 상기 목표 사용량을 기반으로 상기 입출력 스레드 및 상기 프로세서 중 적어도 하나에 대한 제어 신호를 생성하는 단계를 더 포함할 수 있다.Managing the resources allocated to the input/output thread based on the performance adjustment value may further include generating a control signal for at least one of the input/output thread and the processor based on the target usage.

상기 가상 머신의 실제 성능 및 상기 가상 머신에 대한 목표 성능 사이의 차이를 이용하여 성능 조절 값을 결정하는 단계는, 상기 실제 성능 및 상기 목표 성능 사이의 차이에 대한 상기 목표 성능의 비율을 기반으로 상기 성능 조절 값을 연산하는 단계를 포함하고, 상기 성능 조절 값에 대응하여 상기 입출력 스레드의 프로세서에 대한 목표 사용량을 결정하는 단계는, 상기 성능 조절 값을 상기 프로세서에 대한 현재의 사용량에 부가 또는 차감하여 상기 목표 사용량을 결정하는 단계를 포함할 수 있다.Determining a performance adjustment value using the difference between the actual performance of the virtual machine and the target performance of the virtual machine, based on the ratio of the target performance to the difference between the actual performance and the target performance, the Comprising the step of calculating a performance adjustment value, and determining the target usage for the processor of the input/output thread in response to the performance adjustment value comprises: adding or subtracting the performance adjustment value from the current usage for the processor It may include the step of determining the target usage.

상기 성능 조절 값을 연산하는 단계는, 조절 상수를 더 이용하여 상기 성능 조절 값을 연산하는 단계를 더 포함할 수 있다.The calculating of the performance adjustment value may further include calculating the performance adjustment value by further using an adjustment constant.

상기 적어도 하나의 물리 자원은, 네트워크 장치 및 메모리 장치 중 적어도 하나를 포함할 수 있다.The at least one physical resource may include at least one of a network device and a memory device.

정보 처리 장치는, 복수의 가상 머신, 상기 복수의 가상 머신 각각에 대응하고, 상기 복수의 가상 머신과 적어도 하나의 물리 자원 간의 신호의 전달을 수행하는 복수의 입출력 스레드 및 상기 복수의 가상 머신의 요구 성능에 따라서 상기 복수의 입출력 스레드 각각에 대해 자원을 할당하는 성능 관리부를 포함할 수 있다.The information processing device includes a plurality of virtual machines, a plurality of input/output threads corresponding to each of the plurality of virtual machines, and transmitting signals between the plurality of virtual machines and at least one physical resource, and a request of the plurality of virtual machines. A performance management unit that allocates resources to each of the plurality of input/output threads according to performance may be included.

상술한 가상화 환경에서 성능 제어 방법 및 이를 위한 정보 처리 장치에 의하면, 가상 머신 및 물리적 장치, 예컨대 네트워크 장치나 메모리 장치 사이의 입출력 성능을 제어 및 관리하여 가상 머신 간의 자원 경쟁으로 인한 성능 저하를 방지할 수 있는 효과를 얻을 수 있다.According to the performance control method and the information processing device therefor in the above-described virtualization environment, it is possible to prevent performance degradation due to resource contention between virtual machines by controlling and managing input/output performance between virtual machines and physical devices, such as network devices or memory devices. You can get the effect that you can.

또한, 중앙 처리 장치 등과 같은 프로세서의 자원을 효율적으로 사용할 수 있게 되고, 이에 따라 프로세서의 가용 자원의 추가적인 확보가 가능해지는 효과도 얻을 수 있다.In addition, it is possible to efficiently use resources of a processor such as a central processing unit, and thus, it is possible to obtain an effect of additionally securing available resources of the processor.

또한, 클라우드 컴퓨팅의 서비스 제공자가 사용자의 요구 수준에 부합하는 성능을 적절하게 보장할 수 있게 되는 효과도 얻을 수 있다.In addition, it is possible to obtain an effect that a service provider of cloud computing can properly guarantee performance that meets the user's demand level.

또한, 별도의 추가적인 하드웨어 장비의 설치나 교체 없이 가상 머신의 동작의 효율화 및 성능의 안정화를 이룰 수 있어 서비스 품질의 향상의 효과와 더불어 비용 절감의 효과도 얻을 수 있다.In addition, it is possible to achieve the efficiency of operation and stabilization of the performance of the virtual machine without the installation or replacement of additional hardware equipment, thereby improving service quality and reducing costs.

본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 정보 처리 장치의 일 실시예를 설명하기 위한 도면이다.
도 2는 도 1에 도시된 성능 관리부의 일 실시예를 설명하기 위한 블록도이다.
도 3은 도 2에 도시된 성능 감시부 및 성능 제어부의 일 실시예를 설명하기 위한 블록도이다.
도 4는 도 1에 도시된 성능 관리부의 적용 전 및 적용 후의 동작을 설명하기 위한 제1 도이다.
도 5는 도 1에 도시된 성능 관리부의 적용 전 및 적용 후의 동작을 설명하기 위한 제2 도이다.
도 6은 가상화 환경에서 도 1에 도시된 정보 처리 장치에 의해 수행되는 성능 제어 방법을 설명하기 위한 흐름도이다.
A detailed description of each drawing is provided in order to more fully understand the drawings cited in the detailed description of the present invention.
1 is a diagram illustrating an embodiment of an information processing apparatus.
2 is a block diagram illustrating an embodiment of a performance management unit shown in FIG. 1.
FIG. 3 is a block diagram illustrating an embodiment of a performance monitoring unit and a performance control unit shown in FIG. 2.
FIG. 4 is a first diagram illustrating an operation before and after application of the performance management unit shown in FIG. 1.
FIG. 5 is a second diagram illustrating operations before and after application of the performance management unit shown in FIG. 1.
FIG. 6 is a flowchart illustrating a performance control method performed by the information processing device shown in FIG. 1 in a virtualization environment.

이하 전반적으로 동일 참조 부호는 특별한 사정이 없는 한 동일 구성요소를 지칭한다. 또한, '부'가 부가된 용어는, 소프트웨어적 및/또는 하드웨어적 부품으로 구현될 수 있으며, 실시예에 따라 '부'가 하나의 소프트웨어적 및/또는 하드웨어적 부품으로 구현되거나, 하나의 '부'가 복수의 소프트웨어적 및/또는 하드웨어적 부품들로 구현되는 것도 가능하다.Hereinafter, the same reference numerals generally refer to the same components unless there is a special situation. In addition, a term to which'part' is added may be implemented as a software and/or hardware component, and according to an embodiment, a'part' may be implemented as a software and/or hardware component, or a'part' It is also possible for the part' to be implemented with a plurality of software and/or hardware components.

어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 어떤 부분과 다른 부분에 따라서 물리적 연결을 의미할 수도 있고, 또는 전기적으로 연결된 것을 의미할 수도 있다. 또한, 어떤 부분이 다른 부분을 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 부분 이외의 또 다른 부분을 제외하는 것이 아니며, 설계자의 선택에 따라서 또 다른 부분을 더 포함할 수 있음을 의미한다.When a part is said to be connected to another part, it may mean a physical connection depending on a part and another part, or it may mean electrically connected. In addition, when a part includes another part, this does not exclude another part other than the other part unless otherwise stated, and it means that another part may be included further according to the designer's choice. do.

'제1' 이나 '제2' 등의 용어는 하나의 부분을 다른 부분으로부터 구별하기 위해 사용되는 것으로, 특별한 기재가 없는 이상 이들이 순차적인 표현을 의미하는 것은 아니다. 또한, 단수의 표현은 문맥상 명백하게 예외가 있지 않는 한, 복수의 표현을 포함할 수 있다.Terms such as'first' or'second' are used to distinguish one part from another, and unless otherwise specified, they do not mean sequential expressions. In addition, expressions in the singular may include plural expressions unless there is a clear exception in context.

이하, 도 1 내지 도 6을 참조하여 가상화 환경에서의 성능 제어를 수행할 수 있는 정보 처리 장치의 일 실시예에 대해서 설명하도록 한다.Hereinafter, an embodiment of an information processing device capable of performing performance control in a virtualization environment will be described with reference to FIGS. 1 to 6.

도 1은 정보 처리 장치의 일 실시예를 설명하기 위한 도면이다. 도 1을 참조하면, 정보 처리 장치(1)는 하드웨어(50) 및 하드웨어(50)를 기반으로 구동하는 소프트웨어(40)를 포함할 수 있다.1 is a diagram illustrating an embodiment of an information processing apparatus. Referring to FIG. 1, the information processing apparatus 1 may include hardware 50 and software 40 driven based on the hardware 50.

하드웨어(50)는 정보 처리 장치(1)에 장착되어 정보 처리 장치(1)의 동작을 수행하거나 동작을 지원하는 물리적 장치를 의미하며, 소프트웨어(40, 예컨대 호스트 운영 체제(41) 등)에 필요한 자원을 제공하여 소프트웨어(40)가 소정의 동작을 수행하도록 한다. 하드웨어(50)는 프로세서(51), 메모리 장치(53), 및 네트워크 장치(55) 등을 포함할 수 있다.The hardware 50 refers to a physical device that is mounted on the information processing device 1 to perform an operation or supports the operation of the information processing device 1, and is required for software 40, for example, the host operating system 41, etc. Resources are provided so that the software 40 performs a predetermined operation. The hardware 50 may include a processor 51, a memory device 53, and a network device 55.

프로세서(51)는 정보 처리 장치(1)를 전반적으로 또는 부분적으로 관리 및 제어하고 정보 처리 장치(1) 또는 이에 설치된 소프트웨어(프로그램 등)의 동작에 필요한 연산 처리 등을 수행할 수 있다. 프로세서(51)는 호스트 운영 체제(41) 및/또는 호스트 운영 체제(41)에 설치된 적어도 하나의 가상 머신(90: 90-1, 90-2)의 구동에 필요한 자원을 할당하여 제공할 수 있다. 또한, 프로세서(51)는 호스트 운영 체제(41)의 커널 영역(42)에서 동작하는 적어도 하나의 입출력 스레드(91: 91-1, 91-2)에 필요한 자원을 할당하여 제공할 수도 있다.The processor 51 may generally or partially manage and control the information processing device 1 and perform arithmetic processing required for the operation of the information processing device 1 or software (programs, etc.) installed therein. The processor 51 may allocate and provide resources necessary for driving the host operating system 41 and/or at least one virtual machine 90 (90-1, 90-2) installed in the host operating system 41. . In addition, the processor 51 may allocate and provide necessary resources to at least one input/output thread 91 (91-1, 91-2) operating in the kernel region 42 of the host operating system 41.

프로세서(51)는 중앙 처리 장치(CPU, Central Processing Unit), 마이크로 컨트롤러 유닛(MCU, Micro Controller Unit), 마이컴(Micom, Micro Processor), 애플리케이션 프로세서(AP, Application Processor), 전자 제어 유닛(ECU, Electronic Controlling Unit) 및/또는 각종 연산 처리 및 제어 신호의 생성이 가능한 다른 전자 장치 등을 포함할 수 있다. 이들 장치는 하나 또는 둘 이상의 반도체 칩 및 관련 부품을 이용하여 구현 가능하다.The processor 51 is a central processing unit (CPU), a microcontroller unit (MCU), a microprocessor (Micom), an application processor (AP), an electronic control unit (ECU), Electronic Controlling Unit) and/or other electronic devices capable of processing various operations and generating control signals. These devices can be implemented using one or more semiconductor chips and related components.

메모리 장치(53)는 데이터를 기록 및 저장할 수 있도록 마련된다. 메모리 장치(53)는 프로세서(51), 운영 체제(41) 및/또는 운영 체제(41) 내에서 동작하는 여러 프로그램이나 가상 머신(90: 90-1, 90-2)으로부터 데이터를 수신하여 기록하고, 기록된 데이터를 이들 장치(41, 90, 51 등)에 제공할 수도 있다.The memory device 53 is provided to record and store data. The memory device 53 receives and writes data from the processor 51, the operating system 41, and/or various programs or virtual machines 90: 90-1, 90-2 operating within the operating system 41 It is also possible to provide the recorded data to these devices (41, 90, 51, etc.).

메모리 장치(53)와 가상 머신(90: 90-1, 90-2)이 요청, 명령(예를 들어, 입출력 처리 요청 등) 또는 데이터를 상호 송수신하는 경우, 가상 머신(90: 90-1, 90-2) 각각에 대응하는 입출력 스레드(91: 91-1, 91-2)가 이용될 수 있다. 즉, 각 가상 머신(90: 90-1, 90-2)의 데이터는 입출력 스레드(91: 91-1, 91-2)를 통하여 메모리 장치(53)로 전달될 수 있다. 따라서, 입출력 스레드(91: 91-1, 91-2)에 충분한 자원(예를 들어, 중앙 처리 장치 자원)이 할당되지 않은 경우, 가상 머신(90: 90-1, 90-2)에 충분한 자원이 할당되어 있다고 하더라도, 가상 머신(90: 90-1, 90-2)과 메모리 장치(53) 사이의 데이터 송수신은 지연되기 쉽다.When the memory device 53 and the virtual machine (90: 90-1, 90-2) mutually transmit and receive requests, commands (eg, I/O processing requests, etc.), or data, the virtual machines 90: 90-1, 90-2) Input/output threads 91 (91-1, 91-2) corresponding to each may be used. That is, data of each virtual machine 90: 90-1, 90-2 may be transmitted to the memory device 53 through the input/output threads 91: 91-1, 91-2. Therefore, if sufficient resources (eg, central processing unit resources) are not allocated to the I/O threads 91: 91-1, 91-2, sufficient resources are provided for the virtual machines 90: 90-1, 90-2. Even if is allocated, data transmission/reception between the virtual machines 90 (90-1, 90-2) and the memory device 53 is liable to be delayed.

메모리 장치(53)는 주기억장치 및 보조기억장치 중 적어도 하나를 포함할 수 있다. 주기억장치는 롬(ROM) 및/또는 램(RAM)을 이용하여 구현될 수 있으며, 롬은 피롬(PROM), 이프롬(EPROM), 이이프롬(EEPROM) 및/또는 마스크롬(MASK-ROM) 등을 포함하고, 램은 디램(DRAM) 및/또는 에스램(SRAM) 등을 포함한다. 보조기억장치는 플래시 메모리 장치, SD(Secure Digital) 카드, 솔리드 스테이트 드라이브(SSD, Solid State Drive), 하드 디스크 드라이브(HDD, Hard Disc Drive), 자기 드럼, 컴팩트 디스크(CD), 디브이디(DVD) 또는 레이저 디스크 등과 같은 광 기록 매체(optical media), 자기 테이프, 광자기 디스크 및/또는 플로피 디스크 등과 같이 데이터를 영구적 또는 반영구적으로 저장 가능한 적어도 하나의 저장 매체를 이용하여 구현될 수 있다.The memory device 53 may include at least one of a main memory device and an auxiliary memory device. Main memory may be implemented using ROM and/or RAM, and ROM is PROM, EPROM, EEPROM, and/or MASK-ROM. And the like, and the RAM includes DRAM and/or SRAM. Auxiliary memory devices include flash memory devices, SD (Secure Digital) cards, solid state drives (SSDs, Solid State Drives), hard disk drives (HDDs, Hard Disc Drives), magnetic drums, compact disks (CD), DVDs. Alternatively, it may be implemented using at least one storage medium capable of permanently or semi-permanently storing data, such as an optical media such as a laser disk, a magnetic tape, a magneto optical disk, and/or a floppy disk.

네트워크 장치(55)는 다른 정보 처리 장치, 외장 메모리 장치 및/또는 이외 정보 처리 장치(1)와 직간접적으로 연결 가능한 다양한 장치와 통신을 수행할 수 있도록 마련된다. 네트워크 장치(55)는 통신 칩, 통신 안테나, 통신 단자 및/또는 이외 통신 부품(예를 들어, 증폭기 등) 등과 같이 소정의 부품들의 집합하여 구현될 수 있다. The network device 55 is provided to communicate with other information processing devices, external memory devices, and/or various devices that can be directly or indirectly connected to the other information processing device 1. The network device 55 may be implemented by assembling predetermined parts such as a communication chip, a communication antenna, a communication terminal, and/or other communication parts (eg, an amplifier, etc.).

일 실시예에 의하면, 네트워크 장치(55)는 입출력 스레드(91: 91-1, 91-2)를 이용하여 각각의 입출력 스레드(91: 91-1, 91-2)에 대응하는 가상 머신(90: 90-1, 90-2)과 요청이나 명령(예를 들어, 입출력 처리 요청 등)이나 데이터를 송수신할 수 있다. 따라서, 상술한 바와 같이 각각의 입출력 스레드(91: 91-1, 91-2)에 적절한 자원이 할당되지 않았다면, 네트워크 장치(55) 및 가상 머신(90: 90-1, 90-2) 사이의 작업 처리 역시 지연되기 쉽다.According to an embodiment, the network device 55 uses the input/output threads 91: 91-1, 91-2 to correspond to the respective input/output threads 91: 91-1, 91-2. : 90-1, 90-2) and requests or commands (eg, I/O processing request, etc.) or data can be transmitted and received. Therefore, as described above, if appropriate resources are not allocated to each of the input/output threads 91: 91-1, 91-2, the network device 55 and the virtual machine 90: 90-1, 90-2 Task processing is also prone to delays.

네트워크 장치(55)는, 예를 들어, 유선 통신 네트워크, 무선 통신 네트워크 또는 이들의 조합에 접속할 수 있다. 여기서, 유선 통신 네트워크는, 케이블을 이용하여 구축된 네트워크를 의미하며, 케이블은, 예를 들어, 페어 케이블, 동축 케이블, 광섬유 케이블 또는 이더넷 케이블 등을 포함할 수 있다. 무선 통신 네트워크는 근거리 통신 네트워크 및 원거리 통신 네트워크 중 적어도 하나를 이용하여 구축된 네트워크를 의미한다. 근거리 통신 네트워크는, 예를 들어, 와이 파이(Wi-Fi), 와이파이 다이렉트(Wi-Fi Direct), 블루투스(Bluetooth), 저전력 블루투스(Bluetooth Low Energy), 지그비(zigbee), 엔에프씨(NFC, Near Field Communication) 및/또는 캔(CAN) 통신 등을 포함할 수 있다. 원거리 통신 네트워크는, 유선 통신 네트워크, 예를 들어, 3GPP, 3GPP2 또는 와이맥스 계열 등의 이동 통신 표준을 기반으로 구현된 것일 수 있다.The network device 55 can connect to a wired communication network, a wireless communication network, or a combination thereof, for example. Here, the wired communication network refers to a network built using a cable, and the cable may include, for example, a pair cable, a coaxial cable, an optical fiber cable or an Ethernet cable. The wireless communication network refers to a network established using at least one of a short-range communication network and a long-distance communication network. Short-distance communication networks include, for example, Wi-Fi, Wi-Fi Direct, Bluetooth, Bluetooth Low Energy, zigbee, and NFC (NFC, Near Field Communication) and/or CAN communication. The telecommunication network may be implemented based on a mobile communication standard such as a wired communication network, for example, 3GPP, 3GPP2, or WiMAX series.

이외에도 정보 처리 장치(1)는, 예를 들어, 키보드 장치나 마우스 장치 등과 같은 입력 인터페이스 장치나, 모니터 장치나 스피커 장치 등과 같은 출력 인터페이스 장치 등을 더 포함할 수도 있다.In addition, the information processing device 1 may further include, for example, an input interface device such as a keyboard device or a mouse device, or an output interface device such as a monitor device or a speaker device.

상술한 정보 처리 장치(1)는 가상 머신(90-1, 90-2)을 설치 가능한 적어도 하나의 장치로 구현될 수 있다. 예를 들어, 정보 처리 장치(1)는 데스크톱 컴퓨터, 랩톱 컴퓨터, 서버용 하드웨어 장치, 네트워크 결합 스토리지 장치(NAS), 스마트 폰, 태블릿 피씨, 두부 장착형 디스플레이(HMD, Head Mounted Display) 장치, 스마트 시계, 디지털 텔레비전, 셋톱 박스, 내비게이션 장치, 개인용 디지털 보조기(PDA, Personal Digital Assistant), 가전 기기, 기계 장치, 로봇, 차량 제어 장치, 휴대용 게임기, 전자 칠판, 전자 광고판, 음향 재생 장치 및/또는 이외 가상 머신을 설치 가능한 다양한 정보 처리 장치 중 적어도 하나 등을 포함할 수 있다.The information processing device 1 described above may be implemented as at least one device capable of installing the virtual machines 90-1 and 90-2. For example, the information processing device 1 is a desktop computer, a laptop computer, a hardware device for a server, a network-attached storage device (NAS), a smart phone, a tablet PC, a head mounted display (HMD) device, a smart watch, Digital televisions, set-top boxes, navigation devices, personal digital assistants (PDAs), household appliances, mechanical devices, robots, vehicle control devices, portable game consoles, electronic boards, electronic billboards, sound reproduction devices and/or other virtual machines It may include at least one of various information processing devices that can be installed.

소프트웨어(40)는 정보 처리 장치(1)에 의해 수행되는 대부분의 프로세스의 관리, 처리 및/또는 제어 등을 수행하기 위한 운영 체제(41)를 포함할 수 있다. 운영 체제(41)는, 예를 들어, 마이크로소프트 윈도우즈, 맥 오에스(Mac OS), 리눅스, 유닉스 또는 유닉스에서 파생된 각종 운영 체제를 포함할 수 있다. 운영 체제(41)에는 적어도 하나의 가상 머신(90: 90-1, 90-2)이 설치될 수 있으며, 운영 체제(41)는, 적어도 하나의 가상 머신(90: 90-1, 90-2)에 대응하여, 호스트 운영 체제라고 표현될 수도 있다.The software 40 may include an operating system 41 for managing, processing and/or controlling most processes performed by the information processing device 1. The operating system 41 may include, for example, Microsoft Windows, Mac OS, Linux, Unix, or various operating systems derived from Unix. At least one virtual machine (90: 90-1, 90-2) may be installed in the operating system 41, and the operating system 41 includes at least one virtual machine (90: 90-1, 90-2). ), it may be expressed as a host operating system.

호스트 운영 체제(41)는 사용자 영역(43) 및 커널 영역(42)을 포함할 수 있다. 사용자 영역(43)에서는 정보 처리 장치(1)가 구동 가능한 다양한 응용 프로그램(애플리케이션이나 앱 등으로 표현 가능함)이 실행될 수 있다. 예를 들어, 각각의 가상 머신(90: 90-1, 90-2)은 사용자 영역(43)에서 구동하여 사용자에게 여러 서비스를 제공할 수 있다.The host operating system 41 may include a user area 43 and a kernel area 42. In the user area 43, various application programs (which can be expressed as applications or apps) that can be driven by the information processing device 1 may be executed. For example, each of the virtual machines 90: 90-1 and 90-2 may be driven in the user area 43 to provide various services to users.

가상 머신(90: 90-1, 90-2)은 물리적 장치(일례로, 정보 처리 장치(1) 자체 또는 정보 처리 장치(1)의 물리적 부품(51, 53, 55 등) 등을 가상으로 구현한 소프트웨어를 의미한다. 가상 머신(90: 90-1, 90-2)에는 사용자 또는 설계자의 선택에 따라 소정의 운영 체제(이하 게스트 운영 체제)가 설치될 수 있다. 이 경우, 게스트 운영 체제는 호스트 운영 체제(41)와 동일한 운영 체제일 수도 있고, 또는 상이한 운영 체제일 수도 있다. 예를 들어, 호스트 운영 체제(41)는 리눅스 운영 체제이고, 게스트 운영 체제는 마이크로소프트 윈도우즈 운영 체제일 수도 있다. 하나의 호스트 운영 체제(41)에는 하나 또는 복수의 가상 머신(90: 90-1, 90-2)이 설치될 수 있다. 복수의 가상 머신(90: 90-1, 90-2)이 설치된 경우, 각각의 가상 머신(90: 90-1, 90-2)은 상호 물리적으로 분리된 장치나 운영 체제처럼 동작할 수 있다. 이 경우, 복수의 가상 머신(90: 90-1, 90-2) 중 적어도 둘에는 서로 동일한 운영 체제가 설치될 수도 있고 또는 서로 상이한 운영 체제가 설치될 수도 있다.The virtual machine (90: 90-1, 90-2) virtually implements a physical device (for example, the information processing device 1 itself or the physical parts 51, 53, 55, etc.) of the information processing device 1 In this case, a predetermined operating system (hereinafter referred to as a guest operating system) may be installed in the virtual machines 90: 90-1, 90-2 according to the user's or designer's selection. The operating system may be the same as or different from the host operating system 41. For example, the host operating system 41 may be a Linux operating system, and the guest operating system may be a Microsoft Windows operating system. One or a plurality of virtual machines 90: 90-1 and 90-2 may be installed in one host operating system 41. A plurality of virtual machines 90: 90-1 and 90-2 may be installed. In this case, each of the virtual machines 90: 90-1, 90-2 may operate like devices or operating systems that are physically separated from each other, in this case, a plurality of virtual machines 90: 90-1, 90-2 ) The same operating system may be installed on at least two of each other, or different operating systems may be installed.

일 실시예에 의하면, 가상 머신(90: 90-1, 90-2)은 커널 기반 가상 머신(KVM, Kernel based Virtual Machine)을 포함할 수 있다. 커널 기반 가상 머신은 리눅스 기반의 가상화 플랫폼으로, 리눅스를 호스트 운영 체제(41)로 이용하여 커널 모듈 형태로 가상화 환경을 제공할 수 있다. According to an embodiment, the virtual machines 90: 90-1 and 90-2 may include a kernel-based virtual machine (KVM). The kernel-based virtual machine is a Linux-based virtualization platform, and can provide a virtualization environment in the form of a kernel module using Linux as the host operating system 41.

커널(kernel)은 정보 처리 장치(1)의 시스템을 전반적으로 관리 및 통제하는 소프트웨어를 의미한다. 예를 들어, 커널은 프로세스 관리, 자원 관리 또는 보안 등 다양한 동작을 수행할 수 있게 설계된다. 이와 같은 커널은, 예를 들어, 단일형 커널, 마이크로 커널, 하이브리드 커널, 엑소커널(exokernel) 또는 나노커널 등을 포함할 수 있다. 커널에 의해 구현되는 커널 영역(42)에서는 적어도 하나의 커널 스레드(kernel thread)가 구동될 수 있다. 커널 스레드는 적어도 하나의 입출력 스레드(91: 91-1, 91-2, I/O thread)를 포함할 수 있다. The kernel refers to software that manages and controls the system of the information processing device 1 as a whole. For example, the kernel is designed to perform various operations such as process management, resource management, or security. Such a kernel may include, for example, a single kernel, a micro kernel, a hybrid kernel, an exokernel, or a nanokernel. At least one kernel thread may be driven in the kernel region 42 implemented by the kernel. The kernel thread may include at least one input/output thread 91: 91-1, 91-2, and I/O thread.

입출력 스레드(91: 91-1, 91-2)는 가상 머신(90: 90-1, 90-2)이 생성한 요청이나 데이터 등을 물리적 장치(51, 53, 55 등)로 전달하거나 또는 물리적 장치(51, 53, 55 등)의 요청이나 데이터 등을 가상 머신(90: 90-1, 90-2)으로 전달할 수 있다. 입출력 스레드(91: 91-1, 91-2)는 가상 머신(90: 90-1, 90-2)마다 각각의 가상 머신(90: 90-1, 90-2)에 대응하여 마련될 수 있다. 예를 들어, 제1 가상 머신(90-1)에는 제1 입출력 스레드(91-1)가 대응하여 마련되고, 제2 가상 머신(90-2)에는 제2 입출력 스레드(91-2)가 대응하여 마련될 수 있다. 실시예에 따라서, 다수의 가상 머신(90)에 하나의 입출력 스레드(91)가 마련될 수도 있고, 하나의 가상 머신(90)에 다수의 입출력 스레드(91)가 마련되는 것도 가능하다. 입출력 스레드(91: 91-1, 91-2)는 상술한 커널 기반 가상 머신 환경 하에서 동작할 수도 있으나, 이에 한정되는 것은 아니다.I/O threads (91: 91-1, 91-2) transfer requests or data generated by virtual machines (90: 90-1, 90-2) to physical devices (51, 53, 55, etc.) or Requests or data from the devices 51, 53, 55, etc. may be transmitted to the virtual machines 90: 90-1, 90-2. The input/output threads 91: 91-1, 91-2 may be provided for each virtual machine 90: 90-1, 90-2 corresponding to each virtual machine 90: 90-1, 90-2. . For example, a first input/output thread 91-1 is provided to correspond to the first virtual machine 90-1, and a second input/output thread 91-2 corresponds to the second virtual machine 90-2. It can be prepared. Depending on the embodiment, one input/output thread 91 may be provided in a plurality of virtual machines 90, or a plurality of input/output threads 91 may be provided in one virtual machine 90. The input/output threads 91: 91-1 and 91-2 may operate in the above-described kernel-based virtual machine environment, but are not limited thereto.

일 실시예에 의하면, 정보 처리 장치(1)는 성능 관리부(100)를 포함할 수 있다. 또한, 필요에 따라 정보 처리 장치(1)는 자원 관리부(도 2의 60 참조)를 더 포함하는 것도 가능하다.According to an embodiment, the information processing apparatus 1 may include a performance management unit 100. Further, if necessary, the information processing apparatus 1 may further include a resource management unit (see 60 in Fig. 2).

성능 관리부(100)는 하나 또는 둘 이상의 가상 머신(90: 90-1, 90-2)의 성능을 관리하거나 및/또는 이에 필요한 여러 제어 동작을 수행할 수 있도록 설계된 것일 수 있다. 만약 복수의 가상 머신(90: 90-1, 90-2)이 호스트 운영 체제(41)에 설치된 경우, 성능 관리부(100)는 복수의 가상 머신(90: 90-1, 90-2)을 각각 관리 및 제어할 수도 있다. 성능 관리부(100)는 도 1에 도시된 바와 같이, 커널 영역(42)에서 동작할 수 있으며, 예를 들어, 가상화 환경에서 동작하는 커널 모듈일 수 있다. 커널 모듈이란, 필요 시 커널 영역(42)에 로드되거나 또는 언로드 되어 커널 영역(42)에서 실행되고 종료되는 코드(프로그램)를 의미할 수 있다. 실시예에 따라서, 성능 관리부(100)는 커널 영역(42) 이외의 영역에서 동작하도록 설계되는 것도 가능하다. 예를 들어, 성능 관리부(100)는 사용자 영역(41) 내에서 소정의 동작을 수행하도록 설계될 수도 있고 또는 소정의 프로세서(51)에 미리 임베디드 되어 소정의 동작을 수행하도록 설계될 수도 있다.The performance management unit 100 may be designed to manage the performance of one or more virtual machines 90 (90-1, 90-2) and/or perform various control operations necessary therefor. If a plurality of virtual machines (90: 90-1, 90-2) are installed in the host operating system (41), the performance management unit 100 is a plurality of virtual machines (90: 90-1, 90-2), respectively It can also be managed and controlled. As illustrated in FIG. 1, the performance management unit 100 may operate in the kernel region 42, and may be, for example, a kernel module operating in a virtualization environment. The kernel module may mean a code (program) that is loaded or unloaded in the kernel region 42 when necessary, and executed and terminated in the kernel region 42. Depending on the embodiment, the performance management unit 100 may be designed to operate in an area other than the kernel area 42. For example, the performance management unit 100 may be designed to perform a predetermined operation within the user area 41 or may be pre-embedded in a predetermined processor 51 to perform a predetermined operation.

일 실시예에 의하면, 성능 관리부(100)는 입출력 스레드(91: 91-1, 91-2)가 자원을 점유하는 정도나 비중(사용량, 점유량 또는 점유율 등으로 표현 가능함)을 관리할 수 있다. 예를 들어, 성능 관리부(100)는 입출력 스레드(91: 91-1, 91-2) 각각에 제공되는 프로세서(51, 일례로 중앙 처리 장치)의 자원을 분배하여 할당함으로써, 프로세서(51)의 자원에 대한 적어도 하나의 입출력 스레드(91: 91-1, 91-2) 각각의 사용량을 관리, 조절 또는 제어할 수 있다. 이에 따라 입출력 스레드(91: 91-1, 91-2)의 자원에 대한 사용량을 관리하기 위한 스케줄링 처리가 가능해진다. 프로세서(51)의 자원에 대한 사용량은 중앙 처리 장치의 대역폭 등으로 표현될 수도 있다. 여기서, 중앙 처리 장치의 대역폭은 중앙 처리 장치가 제공하는 자원의 사용량을 나타내는 값으로 퍼센티지로 표현될 수 있으며, 만약 하나의 물리 코어를 완전히 사용하고 있는 경우에는 중앙 처리 장치의 대역폭은 100%로 표현될 수 있다.According to an embodiment, the performance management unit 100 may manage the degree or weight (which can be expressed in terms of usage, occupancy, or occupancy) of the input/output threads 91: 91-1, 91-2. For example, the performance management unit 100 distributes and allocates resources of the processor 51 (for example, a central processing unit) provided to each of the input/output threads 91: 91-1 and 91-2. It is possible to manage, adjust, or control the usage of each of the at least one input/output thread 91: 91-1, 91-2 for resources. Accordingly, scheduling processing for managing the usage of resources of the input/output threads 91: 91-1, 91-2 becomes possible. The usage of the resources of the processor 51 may be expressed as a bandwidth of the central processing unit. Here, the bandwidth of the central processing unit is a value representing the usage of resources provided by the central processing unit and can be expressed as a percentage, and if one physical core is fully used, the bandwidth of the central processing unit is expressed as 100%. Can be.

성능 관리부(100)는 커널 기반 가상 머신 환경에서 동작하도록 마련된 것일 수도 있다. 이 경우, 만약 성능 관리부(100)가 동작하지 않는 경우, 정보 처리 장치(1)는 통상적인 커널 기반 가상 머신 환경과 동일하게 동작하게 되고, 반대로 만약 성능 관리부(100)가 동작하는 경우에는 커널 기반 가상 머신 환경 하에서 입출력 스레드(91: 91-1, 91-2)의 성능을 제어 가능하게 되고, 이에 따라 물리적 장치, 일례로 메모리 장치(53)나 네트워크 장치(55) 등에 대한 입출력 성능의 관리 및 제어가 가능해 진다.The performance management unit 100 may be provided to operate in a kernel-based virtual machine environment. In this case, if the performance management unit 100 does not operate, the information processing device 1 operates in the same manner as a typical kernel-based virtual machine environment. Conversely, if the performance management unit 100 operates, the kernel-based In a virtual machine environment, it is possible to control the performance of the input/output threads 91: 91-1, 91-2, and accordingly, management of input/output performance for a physical device, for example, the memory device 53 or the network device 55, and Control becomes possible.

성능 관리부(100)는 애플리케이션의 형태로 구현될 수도 있다. 이 경우 성능 관리부(100)는 설계자 등에 의해 커널 영역(42)에 직접 설치된 애플리케이션일 수도 있고, 또한 유선 또는 무선 통신 네트워크를 통해 접속 가능한 전자 소프트웨어 유통망을 통하여 획득된 애플리케이션일 수도 있다.The performance management unit 100 may be implemented in the form of an application. In this case, the performance management unit 100 may be an application directly installed in the kernel area 42 by a designer or the like, or may be an application acquired through an electronic software distribution network accessible through a wired or wireless communication network.

도 2는 도 1에 도시된 성능 관리부의 일 실시예를 설명하기 위한 블록도이고, 도 3은 도 2에 도시된 성능 감시부 및 성능 제어부의 일 실시예를 설명하기 위한 블록도이다.FIG. 2 is a block diagram illustrating an embodiment of the performance management unit shown in FIG. 1, and FIG. 3 is a block diagram illustrating an embodiment of the performance monitoring unit and the performance control unit shown in FIG. 2.

도 2에 도시된 일 실시예에 의하면, 성능 관리부(100)는 목표 성능 수신부(110), 성능 감시부(130) 및 성능 제어부(150)를 포함할 수 있다. According to the embodiment illustrated in FIG. 2, the performance management unit 100 may include a target performance receiver 110, a performance monitoring unit 130, and a performance control unit 150.

목표 성능 수신부(110)는 각각의 가상 머신(90-1 내지 90-N, 여기서 N은 1 이상의 자연수)에 대해 요구되는 성능, 각각의 가상 머신(90-1 내지 90-N)의 특정한 자원에 대해 요구되는 성능 및/또는 각각의 가상 머신(90-1 내지 90-N)이 요구하는 성능(이하 목표 성능)을 수신하여 설정할 수 있다. 여기서, 가상 머신(90-1 내지 90-N)의 특정한 자원에 대해 요구되는 성능은, 예를 들어, 메모리 장치(53)에 대한 입출력 성능을 포함할 수도 있고 및/또는 네트워크 장치(55)에 대한 입출력 성능을 포함할 수도 있다. 이 경우, 메모리 장치(53)의 입출력에 대한 목표 성능은 대역폭(MB/s)을 이용하여 입력될 수 있으며, 네트워크 장치(55)의 입출력에 대한 목표 성능은 초당 처리되는 패킷의 수나 대역폭(Mbps) 등을 이용하여 입력될 수 있다.The target performance receiving unit 110 provides the performance required for each virtual machine (90-1 to 90-N, where N is a natural number greater than or equal to 1), and specific resources of each virtual machine (90-1 to 90-N). It is possible to receive and set the performance required for and/or the performance (hereinafter, target performance) required by each of the virtual machines 90-1 to 90-N. Here, the performance required for a specific resource of the virtual machines 90-1 to 90-N may include, for example, input/output performance for the memory device 53 and/or the network device 55 It may also include input/output capabilities for. In this case, the target performance for input/output of the memory device 53 can be input using a bandwidth (MB/s), and the target performance for input/output of the network device 55 is the number of packets processed per second or the bandwidth (Mbps). ) Can be used.

목표 성능 수신부(110)는 입력 인터페이스(미도시) 또는 프로세서(51) 등으로부터 목표 성능을 입력받을 수 있다. 예를 들어, 사용자의 조작에 따라서 입력 인터페이스는 전기적 신호를 출력하고, 목표 성능 수신부(110)는 입력 인터페이스가 출력한 전기적 신호 또는 이에 대응하는 데이터를 수신함으로써 목표 성능을 수신할 수 있다. 목표 성능 수신부(110)는 수신한 목표 성능을 성능 제어부(150)로 전달할 수 있다.The target performance receiver 110 may receive a target performance from an input interface (not shown) or a processor 51. For example, the input interface may output an electrical signal according to a user's manipulation, and the target performance receiver 110 may receive the target performance by receiving the electrical signal output from the input interface or data corresponding thereto. The target performance receiver 110 may transmit the received target performance to the performance control unit 150.

성능 감시부(130)는 가상 머신(90-1 내지 90-N) 또는 가상 머신(90-1 내지 90-N) 각각에 대응하는 입출력 스레드(91-1 내지 91-N)에 대한 정보를 수집할 수도 있다. 예를 들어, 성능 감시부(130)는 가상 머신(90-1 내지 90-N) 또는 입출력 스레드(91-1 내지 91-N)가 실제로 사용하고 있는 자원의 사용량(실제 자원 사용량)에 대한 정보를 수집 및 획득하여 이들(90-1 내지 90-N, 91-1 내지 91-N)의 동작을 감시할 수 있다. The performance monitoring unit 130 collects information on the input/output threads 91-1 to 91-N corresponding to the virtual machines 90-1 to 90-N or the virtual machines 90-1 to 90-N, respectively. You may. For example, the performance monitoring unit 130 provides information on the amount of resources actually used by the virtual machines 90-1 to 90-N or the I/O threads 91-1 to 91-N (actual resource usage). It is possible to collect and acquire to monitor the operation of these (90-1 to 90-N, 91-1 to 91-N).

또한, 성능 감시부(130)는 가상 머신(90-1 내지 90-N) 또는 입출력 스레드(91-1 내지 91-N)의 실제 성능(즉, 현재의 성능)을 판단하고, 판단된 실제 성능을 기반으로 성능 제어가 필요한지 여부 등을 판단할 수도 있다. 이를 위해서 성능 감시부(130)는 수집한 정보를 기반으로 가상 머신(90-1 내지 90-N) 또는 입출력 스레드(91-1 내지 91-N)에 대한 성능 정보를 획득할 수도 있다. In addition, the performance monitoring unit 130 determines the actual performance (that is, the current performance) of the virtual machines 90-1 to 90-N or the input/output threads 91-1 to 91-N, and the determined actual performance It is also possible to determine whether or not performance control is necessary based on. To this end, the performance monitoring unit 130 may acquire performance information for the virtual machines 90-1 to 90-N or the input/output threads 91-1 to 91-N based on the collected information.

일 실시예에 의하면, 도 3에 도시된 바와 같이 성능 감시부(130)는, 실제 성능 결정 및 제어 필요 여부 판단을 위해서, 제어 목표 선택부(131), 성능 정보 획득부(133) 및 목표 달성 판단부(135)를 포함할 수 있다. According to an embodiment, as shown in FIG. 3, the performance monitoring unit 130, in order to determine the actual performance and determine whether control is necessary, the control target selection unit 131, the performance information acquisition unit 133, and the target achievement It may include a determination unit 135.

제어 목표 선택부(131)는 복수의 가상 머신(90-1 내지 90-N) 각각에 대응하는 복수의 입출력 스레드(91-1 내지 91-N) 중에서 제어 대상이 될 적어도 하나의 입출력 스레드, 예를 들어 제1 입출력 스레드(91-1)를 선택할 수 있다. 실시예에 따라 복수의 입출력 스레드(91-1 내지 91-N)가 존재하는 경우, 제어 목표 선택부(131)는 복수의 입출력 스레드(91-1 내지 91-N) 모두를 각각 제어 목표로 선택할 수도 있고 또는 복수의 입출력 스레드(91-1 내지 91-N) 중 일부의 입출력 스레드(91-1 내지 91-N 중 일부)만을 제어 목표로 선택할 수도 있다. 또한, 제어 목표 선택부(131)는 복수의 입출력 스레드(91-1 내지 91-N)의 전부 또는 일부를 순차적으로 또는 임의적으로 제어 목표로 선택할 수도 있다.The control target selection unit 131 includes at least one input/output thread to be controlled from among a plurality of input/output threads 91-1 to 91-N corresponding to each of the plurality of virtual machines 90-1 to 90-N, eg For example, the first input/output thread 91-1 may be selected. According to the embodiment, when a plurality of input/output threads 91-1 to 91-N exist, the control target selection unit 131 selects all of the plurality of input/output threads 91-1 to 91-N as control targets, respectively. Alternatively, only some of the input/output threads 91-1 to 91-N among the plurality of input/output threads 91-1 to 91-N may be selected as a control target. In addition, the control target selection unit 131 may sequentially or arbitrarily select all or part of the plurality of input/output threads 91-1 to 91 -N as a control target.

성능 정보 획득부(133)는 가상 머신(90-1 내지 90-N) 또는 입출력 스레드(91-1 내지 91-N)의 성능 연산을 위해 필요한 정보를 획득하고 이를 기반으로 이들 가상 머신(90-1 내지 90-N) 또는 입출력 스레드(91-1 내지 91-N)의 실제 성능을 결정할 수도 있다. 이 경우, 성능 정보 획득부(133)는 상술한 제어 목표 선택부(131)에 의해 선택된 제1 입출력 스레드(91-1) 또는 제1 입출력 스레드(91-1)에 대응되는 가상 머신, 즉 제1 가상 머신(90-1)에 대한 필요한 정보를 수집하거나 또는 이들의 실제 성능을 결정할 수 있다. 여기서, 성능 연산을 위해 필요한 정보는, 예를 들어, 실제 네트워크 장치(55)의 입출력 동작 시의 초당 패킷 수나 대역폭 또는 메모리 장치(53)의 입출력 동작 시의 대역폭 등을 포함할 수 있다. 성능 정보 획득부(133)는 성능 정보의 획득을 위해서 별도로 마련된 자원 관리부(60) 및/또는 장치(1)에 대한 소정의 통계 정보를 이용하여 실시간 자원 사용량 및 실제 성능을 계산할 수도 있다.The performance information acquisition unit 133 acquires information necessary for the performance calculation of the virtual machines 90-1 to 90-N or the input/output threads 91-1 to 91-N, and based on this, the virtual machines 90- 1 to 90-N) or the actual performance of the input/output threads 91-1 to 91-N. In this case, the performance information acquisition unit 133 is a virtual machine corresponding to the first input/output thread 91-1 or the first input/output thread 91-1 selected by the control target selection unit 131 described above, that is, the first 1 It is possible to collect necessary information about the virtual machine 90-1 or to determine their actual performance. Here, the information required for the performance calculation may include, for example, the number of packets per second or bandwidth during the input/output operation of the network device 55 or the bandwidth during the input/output operation of the memory device 53. The performance information acquisition unit 133 may calculate real-time resource usage and actual performance by using predetermined statistical information about the resource management unit 60 and/or the device 1 separately provided to acquire the performance information.

목표 달성 판단부(135)는 목표 성능 수신부(110)로부터 목표 성능을 수신하고, 성능 정보 획득부(133)가 획득한 실제 성능을 목표 성능과 비교하여 목표 달성 여부를 판단할 수 있다. 구체적으로 예를 들면, 목표 달성 판단부(135)는 실제 성능과 목표 성능 사이의 차이를 연산하고 실제 성능과 목표 성능의 차이가 미리 정의된 값과 동일하거나 또는 일정한 범위(예를 들어, 오차 범위) 내의 값인 경우에는 목표가 달성되었다고 판단할 수 있다. 여기서 미리 정의된 값은 0을 포함할 수 있다. 다시 말해서, 목표 달성 판단부(135)는 목표 성능과 실제 성능의 차이가 0이거나(또는 목표 성능과 실제 성능이 동일하거나) 또는 0을 기준으로 미리 정의된 범위 이내의 값인 경우(목표 성능-실제 성능=0 or 0+a, a는 임의의 실수), 가상 머신(90-1 내지 90-N) 또는 입출력 스레드(91-1 내지 91-N)가 목표 성능에 도달했다고 판단할 수 있다. 여기서 미리 정의된 범위 이내의 값은, 예를 들어, 0에 근사한 값을 포함할 수 있다. 반대로 실제 성능과 목표 성능 사이가 0이 아니거나 또는 미리 정의된 범위 외의 값을 갖는 경우(즉, 목표 성능-실제 성능 ≠ 0 or 0+a), 목표 달성 판단부(135)는 목표가 달성되지 않았다고 판단할 수 있다. The goal achievement determination unit 135 may receive a target performance from the target performance receiver 110 and compare the actual performance obtained by the performance information acquisition unit 133 with the target performance to determine whether the goal is achieved. Specifically, for example, the target achievement determination unit 135 calculates a difference between the actual performance and the target performance, and the difference between the actual performance and the target performance is equal to or within a predetermined range (for example, an error range). ), it can be determined that the goal has been achieved. Here, the predefined value may include 0. In other words, when the difference between the target performance and the actual performance is 0 (or the target performance and the actual performance are the same) or a value within a predefined range based on 0 (target performance-actual performance) Performance=0 or 0+a, where a is an arbitrary real number), virtual machines 90-1 to 90-N, or input/output threads 91-1 to 91-N may determine that the target performance has been reached. Here, a value within a predefined range may include, for example, a value approximating 0. Conversely, if the actual performance and the target performance are not 0 or have a value outside the predefined range (i.e., target performance-actual performance ≠ 0 or 0+a), the goal achievement determination unit 135 indicates that the goal has not been achieved. I can judge.

성능 감시부(130)의 판단 결과는 성능 제어부(150)로 전달될 수 있으며, 필요에 따라서 성능 감시부(130)에 의해 획득된 정보도 성능 제어부(150)로 전달될 수 있다. 예를 들어, 목표가 달성되지 않았다고 판단되면, 목표 달성 판단부(135)는 목표가 달성되지 않았다는 판단 결과를 성능 제어부(150)로 전달할 수 있으며, 판단 결과와 더불어 목표 성능, 실제 성능 및 실제 자원 사용량에 대한 정보도 성능 제어부(150)로 전달할 수 있다. 필요에 따라서, 목표 달성 판단부(135)에 의해 연산된 목표 성능 및 실제 성능의 차이 역시 성능 제어부(150)로 전달될 수도 있다. 반대로 만약 목표가 달성되었다고 판단되면, 목표 달성 판단부(135)는 성능 제어부(150)로 어떠한 판단 결과도 전달하지 않을 수도 있고, 실시예에 따라서, 목표 달성에 대한 정보를 성능 제어부(150)로 전송할 수도 있다.The result of determination of the performance monitoring unit 130 may be transmitted to the performance control unit 150, and information obtained by the performance monitoring unit 130 may be transmitted to the performance control unit 150 as necessary. For example, if it is determined that the target has not been achieved, the target achievement determination unit 135 may transmit the determination result that the target has not been achieved to the performance control unit 150, and in addition to the determination result, target performance, actual performance, and actual resource usage Information about the information may also be transmitted to the performance control unit 150. If necessary, the difference between the target performance calculated by the target achievement determination unit 135 and the actual performance may also be transmitted to the performance control unit 150. Conversely, if it is determined that the goal has been achieved, the goal achievement determination unit 135 may not transmit any determination result to the performance control unit 150, or, depending on the embodiment, transmit information on the goal achievement to the performance control unit 150. May be.

성능 감시부(130)에 의한 실제 자원 사용량의 수집 또는 실제 성능의 획득은 주기적으로 수행될 수도 있고 또는 비주기적으로 수행될 수도 있다. 예를 들어, 성능 감시부(130)는 미리 정의된 주기(예를 들어, 1초)마다 적어도 하나의 입출력 스레드(91-1 내지 91-N), 예를 들어 선택된 제1 입출력 스레드(91-1)의 자원 사용량을 수집할 수도 있다. 여기서, 제1 입출력 스레드(91-1)의 자원 사용량은 메모리 장치(53)와의 통신을 수행하기 위한 프로세서(51)에 대한 제1 입출력 스레드(91-1)의 사용량 및 네트워크 장치(55)와의 통신을 수행하기 위한 프로세서(51)에 대한 제1 입출력 스레드(91-1)의 자원 사용량 중 적어도 하나를 포함할 수도 있다.Collection of actual resource usage or acquisition of actual performance by the performance monitoring unit 130 may be performed periodically or aperiodically. For example, the performance monitoring unit 130 includes at least one input/output thread 91-1 to 91-N, for example, a selected first input/output thread 91- every predefined period (eg, 1 second). 1) resource usage can also be collected. Here, the resource usage of the first input/output thread 91-1 is the usage of the first input/output thread 91-1 for the processor 51 for performing communication with the memory device 53 and the usage of the network device 55 It may also include at least one of resource usage of the first input/output thread 91-1 for the processor 51 for performing communication.

성능 제어부(150)는 성능 감시부(130)가 도출한 실제 성능 및 목표 달성 판단 결과를 기반으로, 가상 머신(90-1 내지 90-N) 또는 입출력 스레드(91-1 내지 91-N) 각각에 대한 성능 조절 값을 결정하고, 성능 조절 값을 기반으로 입출력 스레드(91-1 내지 91-N)의 실제 사용량이 목표 사용량과 동일 또는 근사해질 수 있도록 제어할 수 있다.The performance control unit 150 is based on the actual performance and goal achievement determination result derived by the performance monitoring unit 130, each of the virtual machines (90-1 to 90-N) or input/output threads (91-1 to 91-N) A performance adjustment value for is determined, and the actual usage of the input/output threads 91-1 to 91 -N may be controlled to be equal to or close to the target usage based on the performance adjustment value.

일 실시예에 의하면, 성능 제어부(150)는 목표 사용량 결정부(151) 및 제어 신호 생성부(153)를 포함할 수 있다. According to an embodiment, the performance control unit 150 may include a target usage determination unit 151 and a control signal generation unit 153.

목표 사용량 결정부(151)는 성능 감시부(130)로부터 신호의 수신에 응하여 목표 사용량을 결정함으로써 자원 스케줄링 조절을 수행할 수 있다. 다시 말해서, 목표 사용량 결정부(151)는, 제어 목표로 선택된 제1 입출력 스레드(91-1)의 실제 성능이나 이에 대응하는 제1 가상 머신(90-1)의 실제 성능이 사용자 등이 요구하는 목표 성능에 미치지 못하는 경우에, 제1 입출력 스레드(91-1) 또는 제1 가상 머신(90-1)이 목표 성능을 달성할 수 있도록 소정의 자원에 대한 제1 스레드(91-1)의 목표 사용량을 결정할 수 있다. 이 경우, 목표 사용량 결정부(151)는 실제 성능, 목표 성능 및 실제 사용량을 기반으로 제1 스레드(91-1)의 목표 사용량을 결정할 수 있다. The target usage determination unit 151 may perform resource scheduling adjustment by determining a target usage amount in response to reception of a signal from the performance monitoring unit 130. In other words, the target usage determination unit 151 determines that the actual performance of the first input/output thread 91-1 selected as the control target or the actual performance of the first virtual machine 90-1 corresponding thereto is required by the user or the like. When the target performance is not reached, the target of the first thread 91-1 for a predetermined resource so that the first input/output thread 91-1 or the first virtual machine 90-1 can achieve the target performance. You can decide how much to use. In this case, the target usage determination unit 151 may determine the target usage amount of the first thread 91-1 based on the actual performance, the target performance, and the actual usage.

구체적으로 예를 들어, 목표 사용량 결정부(151)는 하기의 수학식 1 및 수학식 2를 기반으로 목표 사용량(즉, 자원의 사용량)을 결정할 수 있다.Specifically, for example, the target usage determination unit 151 may determine the target usage (ie, resource usage) based on Equations 1 and 2 below.

Figure pat00001
Figure pat00001

여기서 Ci는 특정한 시점(i)에서의 자원(예를 들어, 중앙 처리 장치)의 실제 사용량을 의미하고, Ci+1은 다음 시점(i+1)에서의 자원에 대한 목표 사용량을 의미할 수 있다. 또한, k는 목표 사용량의 변화 정도를 조절하기 위한 값(이하 조절 상수)로 0 및 1 사이의 값 중 어느 하나의 실수 값을 갖는다. 만약 조절 상수(k)가 상대적으로 0에 근사하다면 목표 사용량은 보다 세밀하게 조절되며, 반대로 조절 상수(k)가 상대적으로 1에 근사하다면 목표 사용량은 보다 큰 폭으로 조절되게 된다. 조절 상수(k)는 0.1로 주어질 수 있으나, 이는 예시적인 것이며 설계자나 사용자의 선택에 따라 조절 상수(k)는 다양하게 정의 가능하다. Pg는 수치화된 목표 성능을 의미하고, Pr은 수치화된 실제 성능을 의미한다. 목표 성능(Pg)은 목표 성능 수신부(110)에 의해 획득되고 실제 성능(Pr)은 성능 정보 획득부(133)에 의해 획득된 것일 수 있다. 수학식 1의 우변의

Figure pat00002
은 성능 조절 값을 의미할 수 있다.Here, Ci denotes the actual usage of the resource (for example, the central processing unit) at a specific point in time (i), and Ci+1 may denote the target usage of the resource at the next point in time (i+1). . In addition, k is a value for adjusting the degree of change in the target usage amount (hereinafter, an adjustment constant) and has a real value of any one of a value between 0 and 1. If the adjustment constant (k) is relatively close to 0, the target usage is adjusted more precisely, and if the adjustment constant (k) is relatively close to 1, the target usage is adjusted to a larger width. The adjustment constant (k) may be given as 0.1, but this is exemplary, and the adjustment constant (k) can be variously defined according to a designer or user's selection. Pg means the quantified target performance, and Pr means the quantified actual performance. The target performance Pg may be obtained by the target performance receiver 110 and the actual performance Pr may be obtained by the performance information acquisition unit 133. On the right side of Equation 1
Figure pat00002
May mean a performance adjustment value.

상술한 수학식 1은 하기의 수학식 2와 같이 다시 쓰일 수 있다.Equation 1 described above may be rewritten as Equation 2 below.

Figure pat00003
Figure pat00003

수학식 2는 목표 성능 달성을 위한 성능 조절 값을 CPU 대역폭 파라미터로 변환하기 위한 것이다. 여기서 Qi는 특정한 시점(i)에서의 자원(예를 들어, 중앙 처리 장치)의 가용 시간을 의미하고, Qi+1은 다음 시점(i+1)에서의 자원의 가용 시간을 의미하며, F는 주기(us)를 의미한다. 예를 들어, 자원의 가용 시간(Qi)이 10,000μs이고, 주기(F)가 100,000μs인 경우, 선택된 소정의 입출력 스레드(91-1)에 할당되는 자원의 대역폭은 10%(=10,000/100,000 * 100)로 결정된다.Equation 2 is for converting a performance adjustment value for achieving a target performance into a CPU bandwidth parameter. Here, Qi means the available time of the resource (eg, the central processing unit) at a specific point in time (i), Qi+1 means the available time of the resource at the next point (i+1), and F is It means the period (us). For example, when the available time (Qi) of the resource is 10,000 μs and the period (F) is 100,000 μs, the bandwidth of the resource allocated to the selected predetermined input/output thread 91-1 is 10% (=10,000/100,000 * 100).

목표 사용량 결정부(151)는, 수학식 1 및 수학식 2에 기재된 바와 같이, 특정한 시점(i)에서의 목표 성능(Pg) 및 실제 성능(Pr)의 차이를 목표 성능으로 나누어 연산하여 성능 조절 값을 획득하고, 성능 조절 값을 특정한 시점(i)의 실제 사용량(Ci)에 부가함으로써 선택된 대상(즉, 제1 입출력 스레드(91-1))에 대한 목표 사용량(Ci+1)을 결정할 수 있다. 이 경우, 목표 사용량 결정부(151)는 목표 성능 및 실제 성능의 차이를 목표 성능으로 나눈 값에 조절 상수(k)를 더 부가하여 성능 조절 값을 획득하고, 획득한 성능 조절 값을 실제 사용량(Ci)에 부가하여 가중한 후 다음 시점(i+1)에서의 목표 사용량(Ci+1)을 연산할 수도 있다.As described in Equations 1 and 2, the target usage determination unit 151 divides the difference between the target performance (Pg) and the actual performance (Pr) at a specific time point (i) by the target performance to adjust the performance. By acquiring the value and adding the performance adjustment value to the actual usage (Ci) at a specific point in time (i), it is possible to determine the target usage (Ci+1) for the selected target (i.e., the first I/O thread 91-1). have. In this case, the target usage determination unit 151 obtains a performance adjustment value by adding an adjustment constant k to a value obtained by dividing the difference between the target performance and the actual performance by the target performance, and calculates the obtained performance adjustment value as the actual usage ( It is also possible to calculate the target usage amount (Ci+1) at the next time point (i+1) after weighting in addition to Ci).

상술한 바와 같이 목표 사용량(Ci+1)을 결정하는 경우, 만약 수집한 실제 성능(Pr)이 목표 성능(Pg)보다 낮다면(즉, Pr < Pg), 성능 조절 값은 양(+)의 값을 가지게 되고, 선택된 제1 입출력 스레드(91-1)에 대한 목표 사용량(Ci+1)은 실제 사용량(Ci)보다 높게 결정된다. 다시 말해서, 제1 입출력 스레드(91-1)의 자원 사용량을 증가시킬 것이 결정된다. 반대로 만약 수집한 실제 성능(Pr)이 목표 성능(Pg) 보다 높다면(즉, Pr > Pg), 상술한 성능 조절 값은 음(-)의 값을 가지게 되고, 이에 따라 제1 입출력 스레드(91-1)에 대한 목표 사용량(Ci+1)은 실제 사용량(Ci) 보다 낮게 결정된다. 다시 말해서, 제1 입출력 스레드(91-1)의 자원 사용량을 감소시킬 것이 결정된다. When determining the target usage (Ci+1) as described above, if the collected actual performance (Pr) is lower than the target performance (Pg) (i.e., Pr <Pg), the performance adjustment value is positive (+). It has a value, and the target usage amount (Ci+1) for the selected first input/output thread 91-1 is determined to be higher than the actual usage amount (Ci). In other words, it is determined to increase the resource usage of the first input/output thread 91-1. Conversely, if the collected actual performance (Pr) is higher than the target performance (Pg) (ie, Pr> Pg), the above-described performance adjustment value has a negative (-) value, and accordingly, the first input/output thread 91 The target usage (Ci+1) for -1) is determined to be lower than the actual usage (Ci). In other words, it is determined to reduce the resource usage of the first input/output thread 91-1.

실시예에 따라서, 목표 사용량 결정부(151)는 특정한 시점(i)에서의 목표 성능(Pg) 및 실제 성능(Pr)의 차이의 절대값을 연산하고 절대값을 목표 성능으로 나누어 성능 조절 값을 획득할 수도 있다. 이 경우, 목표 사용량 결정부(151)는 먼저 실제 성능(Pr) 및 목표 성능(Pg) 사이의 크기를 비교하고, 만약 실제 성능(Pr)이 목표 성능(Pg) 보다 낮다면(즉, Pr < Pg), 성능 조절 값을 실제 사용량(Ci)에 부가하여 목표 사용량(Ci+1)을 연산하고, 반대로 실제 성능(Pr)이 목표 성능(Pg)보다 높다면(즉 Pr > Pg), 성능 조절 값을 실제 사용량(Ci)으로부터 차감하여 목표 사용량(Ci+1)을 연산할 수도 있다.According to an embodiment, the target usage determination unit 151 calculates an absolute value of the difference between the target performance Pg and the actual performance Pr at a specific point in time (i) and divides the absolute value by the target performance to obtain a performance adjustment value. You can also get it. In this case, the target usage determination unit 151 first compares the size between the actual performance (Pr) and the target performance (Pg), and if the actual performance (Pr) is lower than the target performance (Pg) (ie, Pr < Pg), the target usage (Ci+1) is calculated by adding the performance adjustment value to the actual usage (Ci). Conversely, if the actual performance (Pr) is higher than the target performance (Pg) (i.e., Pr> Pg), the performance adjustment The target usage amount (Ci+1) can also be calculated by subtracting the value from the actual usage amount (Ci).

목표 사용량 결정부(151)의 결정 결과는 제어 신호 생성부(153)로 전달될 수 있다. 제어 신호 생성부(153)는 목표 사용량 결정부(151)의 결정 결과에 대응하여 사용량의 증가 또는 감소에 대한 제어 신호를 생성하고, 이를 기반으로 선택된 입출력 스레드, 즉 제1 입출력 스레드(91-1)의 자원의 사용량을 제어할 수 있다. 즉, 제어 신호 생성부(153)의 동작에 따라서 제1 입출력 스레드(91-1)에 할당되는 자원이 변동되게 된다. 제어 신호는, 예를 들어, 프로세서(51)나 가상 머신(90-1 내지 90-N) 등에 전달되고, 이에 따라 입출력 스레드(91-1)의 자원 사용량이 증가 또는 감소된다. 일 실시예에 의하면, 제어 신호 생성부(153)는 자원 관리부(60)를 이용하여 제1 입출력 스레드(91-1)의 자원 사용량을 제어할 수도 있다. 이 경우, 제어 신호는 자원 관리부(60)로 전달되고, 자원 관리부(60)는 이에 응하여 제1 입출력 스레드(91-1)에 할당되는 자원을 제어할 수 있다.The determination result of the target usage determination unit 151 may be transmitted to the control signal generation unit 153. The control signal generation unit 153 generates a control signal for an increase or decrease in usage in response to the determination result of the target usage determination unit 151, and the input/output thread selected based on this, that is, the first input/output thread 91-1 ) Resource usage can be controlled. That is, the resource allocated to the first input/output thread 91-1 varies according to the operation of the control signal generator 153. The control signal is transmitted, for example, to the processor 51 or the virtual machines 90-1 to 90-N, and thus the resource usage of the input/output thread 91-1 increases or decreases. According to an embodiment, the control signal generation unit 153 may control the resource usage of the first input/output thread 91-1 by using the resource management unit 60. In this case, the control signal is transmitted to the resource management unit 60, and the resource management unit 60 may control resources allocated to the first input/output thread 91-1 in response thereto.

자원 관리부(60)는 자원 사용량이나 성능 정보의 결정을 위해 필요한 정보를 성능 감시부(130)로 제공하거나 및/또는 성능 제어부(150)의 제어에 따라서 가상 머신(90-1 내지 90-N) 또는 이에 대응하는 입출력 스레드(91-1 내지 91-N)에 할당되는 자원을 제어할 수 있다. 자원 관리부(60)는 프로세스나 스레드 들의 자원의 사용을 제한 또는 격리할 수 있도록 마련된 것일 수 있으며, 커널 영역(42) 내에서 동작하는 커널 모듈로 구현될 수도 있다. 일 실시예에 의하면, 자원 관리부(60)는 리눅스 운영 체제 등에서 제공되는 컨트롤 그룹(cGroup, Control Group)을 이용하여 구현될 수도 있으나, 이에 한정되는 것은 아니다.The resource management unit 60 provides information necessary for determining resource usage or performance information to the performance monitoring unit 130 and/or the virtual machines 90-1 to 90-N according to the control of the performance control unit 150 Alternatively, resources allocated to the input/output threads 91-1 to 91-N corresponding thereto may be controlled. The resource management unit 60 may be provided to limit or isolate the use of resources of processes or threads, and may be implemented as a kernel module operating in the kernel region 42. According to an embodiment, the resource management unit 60 may be implemented using a control group (cGroup) provided by a Linux operating system or the like, but is not limited thereto.

상술한 성능 관리부(100)의 동작은 복수의 가상 머신(90-1 내지 90-N) 또는 복수의 가상 머신(90-1 내지 90-N) 각각에 대응하는 복수의 입출력 스레드(91-1 내지 91-N)에 대해 수행될 수 있으며, 복수의 가상 머신(90-1 내지 90-N)의 전부 또는 복수의 입출력 스레드(91-1 내지 91-N)의 전부에 대해 순차적으로 또는 임의적으로 수행될 수도 있고, 복수의 가상 머신(90-1 내지 90-N)의 일부 또는 복수의 입출력 스레드(91-1 내지 91-N)의 일부에 대해 순차적으로 또는 임의적으로 수행될 수도 있다. 또한, 상술한 성능 관리부(100)의 동작은 주기적으로 또는 비주기적으로 반복적으로 수행될 수도 있다. 예를 들어, 제1 가상 머신(90-1) 및/또는 제1 입출력 스레드(91-1)는 주기적으로 또는 비주기적으로 그 성능이 감시될 수 있으며 필요에 따라 그(들)의 자원 사용량이 변동될 수도 있다.The operations of the performance management unit 100 described above include a plurality of I/O threads 91-1 to 90-N corresponding to each of the plurality of virtual machines 90-1 to 90-N or the plurality of virtual machines 90-1 to 90-N. 91-N), and sequentially or randomly for all of the plurality of virtual machines 90-1 to 90-N or all of the plurality of I/O threads 91-1 to 91-N Alternatively, it may be performed sequentially or arbitrarily on a part of the plurality of virtual machines 90-1 to 90-N or a part of the plurality of input/output threads 91-1 to 91-N. Also, the operation of the performance management unit 100 described above may be repeatedly performed periodically or aperiodically. For example, the performance of the first virtual machine 90-1 and/or the first I/O thread 91-1 may be monitored periodically or aperiodically, and the resource usage of the first virtual machine 90-1 may be It may change.

상술한 바와 같이, 가상 머신(90: 90-1 내지 90-N)이 여러 작업을 수행하는 과정에서 실제 성능이 목표 성능에 미치지 못하는 경우에는, 가상 머신(91: 90-1 내지 90-N) 각각의 입출력 스레드(91: 91-1 내지 91-N)에 제공되는 자원(예를 들어, 중앙 처리 장치의 대역폭)이 조절될 수 있으며, 이에 따라 사용자 등이 요구하는 성능의 달성이 보다 신속 및 용이하게 수행될 수 있게 된다. 이와 같이 피드백 제어를 통해 자원 할당을 조절하는 과정은, 사전 프로파일링(profiling) 없이 실시간으로 수행할 수 있어, 사전 프로파일링을 위한 오버헤드를 최소화할 수 있게 된다.As described above, when the actual performance does not reach the target performance while the virtual machine 90: 90-1 to 90-N performs various tasks, the virtual machine 91: 90-1 to 90-N Resources (eg, the bandwidth of the central processing unit) provided to each input/output thread (91: 91-1 to 91-N) can be adjusted, and accordingly, the performance required by the user or the like can be achieved more quickly and This can be done easily. In this way, the process of adjusting resource allocation through feedback control can be performed in real time without prior profiling, so that overhead for pre-profiling can be minimized.

이하 상술한 성능 관리부(100)가 동작하지 않는 경우에서의 정보 처리 장치(1)의 성능 및 성능 관리부(100)가 동작하는 경우에서의 정보 처리 장치(1)의 성능을 상호 비교하여 성능 관리부(100)의 효과에 대해 구체적으로 설명하도록 한다.Hereinafter, the performance of the information processing device 1 when the above-described performance management unit 100 does not operate and the performance of the information processing device 1 when the performance management unit 100 operates are compared with each other to compare the performance management unit ( The effect of 100) will be described in detail.

도 4는 도 1에 도시된 성능 관리부의 적용 전 및 적용 후의 동작을 설명하기 위한 제1 도이다. 도 4는 성능 관리부(100)가 동작하지 않는 환경과 동작하는 환경 하에서 제1 가상 머신(VM1) 및 제2 가상 머신(VM2)이 네트워크 작업(1024B TCP 패킷의 연속적인 송신 작업)을 수행하도록 하고 수행에 따른 스루풋(throughput)의 측정 결과를 도시한 것이다. 도 4의 y축은 스루풋(단위: pps)을 의미하고, x축은 좌측으로부터 순차적으로 성능 관리부(100)가 동작하지 않는 경우 및 동작하는 경우를 나타낸다. FIG. 4 is a first diagram illustrating an operation before and after application of the performance management unit shown in FIG. 1. FIG. 4 is to allow the first virtual machine (VM1) and the second virtual machine (VM2) to perform a network operation (consecutive transmission operation of 1024B TCP packets) under an environment in which the performance management unit 100 does not operate and an operation environment. It shows the measurement result of throughput according to the performance. In FIG. 4, the y-axis represents throughput (unit: pps), and the x-axis represents a case in which the performance management unit 100 does not operate or operates sequentially from the left.

도 4에 도시된 바를 참조하면, 성능 관리부(100)가 동작하지 않는 경우에는 제1 가상 머신(VM1) 및 제2 가상 머신(VM2) 양자 모두 동일하게 대략 2000 pps의 성능으로 동작하였다. 이와 반대로 성능 관리부(100)를 동작시키고 아울러 제1 가상 머신(VM1)의 목표 성능은 10,000pps으로 설정하고 제2 가상 머신(VM2)의 목표 성능은 25,000pps로 설정한 경우, 제1 가상 머신(VM1) 및 제2 가상 머신(VM2)은 설정된 목표 성능에 따라서 차등화된 성능으로 동작하게 된다. 구체적으로, 제1 가상 머신(VM1)은 실제 성능에 비해 낮은 목표 성능에 대응하여 더 낮아진 성능(10,000pps)으로 동작하고, 제2 가상 머신(VM2)은 실제 성능에 비해 높은 목표 성능에 대응하여 더 높아진 성능(25,000pps)으로 동작하게 된다.Referring to FIG. 4, when the performance management unit 100 does not operate, both the first virtual machine VM1 and the second virtual machine VM2 operate at a performance of approximately 2000 pps in the same manner. On the contrary, when the performance management unit 100 is operated and the target performance of the first virtual machine VM1 is set to 10,000 pps and the target performance of the second virtual machine VM2 is set to 25,000 pps, the first virtual machine ( The VM1) and the second virtual machine VM2 operate with differentiated performance according to the set target performance. Specifically, the first virtual machine (VM1) operates with a lower performance (10,000pps) in response to the target performance lower than the actual performance, and the second virtual machine (VM2) corresponds to the target performance higher than the actual performance. It operates with higher performance (25,000pps).

도 5는 도 1에 도시된 성능 관리부의 적용 전 및 적용 후의 동작을 설명하기 위한 제2 도이다. 도 5는 성능 관리부(100)가 동작하지 않는 환경과 동작하는 환경 하에서 제1 가상 머신(VM1) 및 제2 가상 머신(VM2)이 저장 장치에 랜덤으로 16kB 파일의 쓰기 및 읽기 동작을 수행하도록 하고(디스크 작업), 대역폭을 측정한 결과를 도시한 것이다. 도 4의 y축은 대역폭(단위: MBps)을 의미하고, x축은 좌측부터 순차적으로 성능 관리부(100)가 동작하지 않는 경우 및 동작하는 경우를 나타낸다.FIG. 5 is a second diagram illustrating operations before and after application of the performance management unit shown in FIG. 1. 5 shows a first virtual machine (VM1) and a second virtual machine (VM2) in an environment in which the performance management unit 100 does not operate and performs randomly writing and reading operations of a 16kB file in a storage device. (Disk operation) shows the result of measuring the bandwidth. The y-axis of FIG. 4 represents a bandwidth (unit: MBps), and the x-axis represents a case in which the performance management unit 100 does not operate and operates sequentially from the left.

도 5에 도시된 바를 참조하면, 성능 관리부(100)가 동작하지 않는 경우에는 제1 가상 머신(VM1) 및 제2 가상 머신(VM2) 양자 모두 동일한 성능(대략 220 MBps)으로 동작하였으나, 성능 관리부(100)를 동작시키고 아울러 제1 가상 머신(VM1)의 목표 성능을 100MBps으로 설정하고 제2 가상 머신(VM2)의 목표 성능은 300MBps로 설정하면 제1 가상 머신(VM1) 및 제2 가상 머신(VM2) 각각은 설정된 목표 성능에 따라서 상이하게 동작하게 됨을 알 수 있다. 구체적으로 제1 가상 머신(VM1)은 실제 성능에 비해 상대적으로 낮은 목표 성능에 대응하는 성능(100MBps)으로 동작하고, 제2 가상 머신(VM2)은 실제 성능에 비해 상대적으로 높은 목표 성능에 대응하는 성능(300MBps)으로 동작하게 됨을 알 수 있다.Referring to FIG. 5, when the performance management unit 100 does not operate, both the first virtual machine VM1 and the second virtual machine VM2 operated with the same performance (approximately 220 MBps), but the performance management unit If (100) is operated and the target performance of the first virtual machine (VM1) is set to 100 MBps and the target performance of the second virtual machine (VM2) is set to 300 MBps, the first virtual machine (VM1) and the second virtual machine ( It can be seen that each VM2) operates differently according to the set target performance. Specifically, the first virtual machine (VM1) operates with a performance corresponding to a target performance relatively low compared to the actual performance (100 MBps), and the second virtual machine (VM2) operates at a target performance that is relatively high compared to the actual performance. It can be seen that it operates with performance (300MBps).

도 4 및 도 5에 도시된 바와 같이, 성능 관리부(100)의 동작 및 목표 성능의 차등적 설정에 따라서 각각의 가상 머신(VM1, VM2)은 서로 상이하게 동작하게 되며, 이에 따라 가상 머신(VM1, VM2)에 대한 자원의 적절한 분배가 가능해진다.As shown in FIGS. 4 and 5, the virtual machines VM1 and VM2 operate differently from each other according to the operation of the performance management unit 100 and the differential setting of the target performance, and accordingly, the virtual machine VM1 , VM2) resources can be properly distributed.

이하, 도 6을 참조하여 가상화 환경에서 성능 제어 방법의 일 실시예에 대해 설명한다.Hereinafter, an embodiment of a performance control method in a virtualization environment will be described with reference to FIG. 6.

도 6은 가상화 환경에서 도 1에 도시된 정보 처리 장치에 의해 수행되는 성능 제어 방법을 설명하기 위한 흐름도이다.FIG. 6 is a flowchart illustrating a performance control method performed by the information processing device shown in FIG. 1 in a virtualization environment.

도 6에 도시된 바에 의하면, 먼저 제어 목표가 되는 입출력 스레드가 선택될 수 있다(401). 이 경우 선택되는 입출력 스레드는 복수의 입출력 스레드 중에서 어느 하나의 입출력 스레드, 일례로 i번째 입출력 스레드(i는 1 이상의 자연수)일 수 있다.As shown in FIG. 6, first, an input/output thread as a control target may be selected (401). In this case, the selected input/output thread may be any one input/output thread among a plurality of input/output threads, for example, an i-th input/output thread (i is a natural number of 1 or more).

제어 목표가 되는 입출력 스레드 또는 입출력 스레드에 대응하는 가상 머신에 대한 실제 성능과, 입출력 스레드 또는 가상 머신의 자원 사용량이 획득될 수 있다(403). 또한, 실제 성능 및 사용량의 획득 이전, 이후 또는 획득과 동시에 목표 성능 역시 획득될 수 있다. 목표 성능은 사용자에 의해 입력된 것일 수도 있고, 설계자에 의해 사전에 정의된 것일 수도 있으며, 정보 처리 장치에 의해 별도로 결정된 것일 수도 있다.The actual performance of the input/output thread or the virtual machine corresponding to the input/output thread as a control target, and the resource usage of the input/output thread or the virtual machine may be obtained (403). In addition, target performance may also be obtained before, after or simultaneously with the acquisition of actual performance and usage. The target performance may be input by a user, may be predefined by a designer, or may be determined separately by an information processing device.

순차적으로 목표 성능과 실제 성능이 비교될 수 있다(405). 만약 목표 성능과 실제 성능이 동일하다면(405의 YES), 후술하는 조절 값 연산 내지 목표 사용량 기반 제어 과정(407 내지 415)는 수행되지 않을 수 있다. 실시예에 따라서, 목표 성능과 실제 성능이 일정한 값(예를 들어, 오차 범위 등)의 차이만 존재하는 경우에도 성능이 실질적으로 동일하다고 판단할 수도 있다. 이 경우에는 후술하는 조절 값 연산 내지 목표 사용량 기반 제어 과정(407 내지 415)는 수행되지 않을 수 있다.The target performance and the actual performance may be sequentially compared (405). If the target performance and the actual performance are the same (YES in 405), the adjustment value calculation or target usage-based control processes 407 to 415 to be described later may not be performed. Depending on the embodiment, even when only the difference between the target performance and the actual performance is a constant value (eg, an error range), it may be determined that the performance is substantially the same. In this case, the adjustment value calculation or target usage-based control processes 407 to 415 described later may not be performed.

만약 목표 성능과 실제 성능이 상이하다면(405의 NO), 이에 응하여 성능 조절 값이 연산될 수 있다(407). 성능 조절 값은, 상술한 수학식 1 및 수학식 2에 기재된 바와 같이, 목표 성능 및 실제 성능의 차이를 목표 성능으로 나눠 획득된 값일 수도 있고, 또는 이와 같이 획득된 값에 조절 상수를 곱하여 획득된 값일 수도 있다. 이 경우에 성능 조절 값은 목표 성능 및 실제 성능에 따라서 양의 값을 가질 수도 있고 또는 음의 값을 가질 수도 있다. 만약 목표 성능이 실제 성능보다 크다면 성능 조절 값은 양의 값을 가지고, 반대로 실제 성능이 목표 성능보다 크다면 성능 조절 값은 음의 값을 가질 수 있다. 이와 같이 주어진 성능 조절 값은 실제 사용량에 부가되고 그 결과에 따라 목표 사용량이 획득될 수 있다.If the target performance and the actual performance are different (NO in 405), a performance adjustment value may be calculated accordingly (407). The performance adjustment value may be a value obtained by dividing the difference between the target performance and the actual performance by the target performance, as described in Equations 1 and 2, or obtained by multiplying the obtained value by an adjustment constant. It can also be a value. In this case, the performance adjustment value may have a positive value or a negative value according to the target performance and the actual performance. If the target performance is greater than the actual performance, the performance adjustment value may have a positive value. Conversely, if the actual performance is greater than the target performance, the performance adjustment value may have a negative value. The performance adjustment value given in this way is added to the actual usage, and the target usage can be obtained according to the result.

일 실시예에 의하면, 성능 조절 값은 목표 성능 및 실제 성능의 차이의 절대 값을 목표 성능으로 나누거나 또는 목표 성능 및 실제 성능의 차이를 목표 성능으로 나눠 획득된 값의 절대값일 수도 있다. 이 경우엔 먼저 목표 성능과 실제 성능이 상호 비교된다(409).According to an embodiment, the performance adjustment value may be an absolute value obtained by dividing the absolute value of the difference between the target performance and the actual performance by the target performance or dividing the difference between the target performance and the actual performance by the target performance. In this case, the target performance and the actual performance are first compared (409).

만약 목표 성능이 실제 성능보다 크다면(409의 YES), 목표 사용량은 성능 조절 값을 실제 사용량에 합산하여 결정될 수 있다(411). 반대로 목표 성능이 실제 성능보다 작다면(409의 NO), 목표 사용량은 성능 조절 값을 실제 사용량으로부터 차감하여 결정될 수 있다(413). If the target performance is greater than the actual performance (YES in 409), the target usage may be determined by adding the performance adjustment value to the actual usage (411). Conversely, if the target performance is less than the actual performance (NO of 409), the target usage may be determined by subtracting the performance adjustment value from the actual usage (413).

어느 과정을 이용하더라도 목표 성능이 실제 성능보다 더 큰 경우엔 목표 사용량은 실제 사용량보다 더 크게 결정되고, 반대로 목표 성능이 실제 성능보다 더 작은 경우엔 목표 사용량은 실제 사용량보다 더 작게 결정된다. In either process, if the target performance is greater than the actual performance, the target usage is determined to be larger than the actual usage, and conversely, when the target performance is smaller than the actual performance, the target usage is determined to be smaller than the actual usage.

목표 사용량이 결정되면, 목표 사용량을 기반으로 자원(예를 들어, 중앙 처리 장치)에 대한 입출력 스레드(i)의 사용량이 변경될 수 있다(415). 예를 들어, 선택된 입출력 스레드(i)에 할당되는 자원은 증가되거나 또는 감소될 수 있다. 이 경우, 별도로 커널 등에 설치된 자원 관리 인터페이스를 이용하여 입출력 스레드에 대한 자원의 할당이 제어될 수도 있다.When the target usage is determined, the usage of the input/output thread i for the resource (eg, the central processing unit) may be changed based on the target usage (415). For example, the resources allocated to the selected input/output thread i may be increased or decreased. In this case, resource allocation for input/output threads may be controlled using a resource management interface separately installed in the kernel or the like.

실시예에 따라서, 순차적으로 선택된 입출력 스레드(i) 외의 다른 입출력 스레드에 대한 제어 여부 또는 선택된 입출력 스레드(i)에 대한 추가 제어 여부가 결정될 수 있다(417). 만약 추가 제어 여부가 결정되면(417의 예), 소정의 입출력 스레드(i+k, k ≥ 0)가 선택되고 상술한 과정(401 내지 417)이 반복될 수 있다. 여기서, k는 1일 수도 있고 또는 1 외의 다른 자연수일 수도 있다. 다시 말해서, 복수의 입출력 스레드(i+k, k ≥ 0) 모두가 미리 정의된 순서나 임의적인 순서에 따라 순차적으로 선택될 수도 있고, 또는 복수의 입출력 스레드(i+k, k ≥ 0) 중 일부의 입출력 스레드(예를 들어, 입출력 스레드(i+2, i=1, 3, 5))만이 선택될 수도 있다. 실시예에 따라서, 동일한 입출력 스레드(i, k=0)가 다시 선택되는 것도 가능하다.Depending on the embodiment, whether to control input/output threads other than the sequentially selected input/output threads (i) or whether to additionally control the selected input/output threads (i) may be determined (417). If it is determined whether to perform additional control (YES in 417), a predetermined input/output thread (i+k, k ≥ 0) is selected, and the above-described processes 401 to 417 may be repeated. Here, k may be 1 or may be a natural number other than 1. In other words, all of the plurality of input/output threads (i+k, k ≥ 0) may be sequentially selected according to a predefined or random order, or among a plurality of input/output threads (i+k, k ≥ 0) Only some input/output threads (eg, input/output threads (i+2, i=1, 3, 5)) may be selected. Depending on the embodiment, it is also possible to select the same input/output thread (i, k=0) again.

상술한 실시예에 따른 성능 제어 방법은 컴퓨터 장치에 의해 구동될 수 있는 프로그램의 형태로 구현될 수 있다. 여기서 프로그램은 프로그램 명령, 데이터 파일 및 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 프로그램은 기계어 코드나 고급 언어 코드를 이용하여 설계 및 제작된 것일 수 있다. 프로그램은 상술한 가상 환경에서 성능 제어 방법을 구현하기 위하여 특별히 설계된 것일 수도 있고, 컴퓨터 소프트웨어 분야에서 통상의 기술자에게 기 공지되어 사용 가능한 각종 함수나 정의를 이용하여 구현된 것일 수도 있다. 또한, 컴퓨터 장치는 프로그램의 기능을 실현 가능하게 하는 프로세서나 메모리 등을 포함하여 구현된 것일 수 있으며, 필요에 따라 통신 장치를 더 포함할 수도 있다.The performance control method according to the above-described embodiment may be implemented in the form of a program that can be driven by a computer device. Here, the program may include a program command, a data file, a data structure, or the like alone or in combination. The program may be designed and produced using machine code or high-level language code. The program may be specially designed to implement the performance control method in the above-described virtual environment, or may be implemented using various functions or definitions that are known and available to those skilled in the computer software field. In addition, the computer device may be implemented including a processor or a memory that enables the function of a program to be realized, and may further include a communication device if necessary.

상술한 성능 제어 방법을 구현하기 위한 프로그램은, 컴퓨터에 의해 판독 가능한 기록 매체에 기록될 수 있다. 컴퓨터에 의해 판독 가능한 기록 매체는, 예를 들어, 하드 디스크나 플로피 디스크와 같은 자기 디스크 저장 매체, 자기 테이프, 콤팩트 디스크나 디브이디와 같은 광 기록 매체, 플롭티컬 디스크와 같은 자기-광 기록 매체 및 롬, 램 또는 플래시 메모리 등과 같은 반도체 저장 장치 등 컴퓨터 등의 호출에 따라 실행되는 특정 프로그램을 저장 가능한 다양한 종류의 하드웨어 장치를 포함할 수 있다. A program for implementing the above-described performance control method may be recorded in a computer-readable recording medium. The computer-readable recording medium includes, for example, a magnetic disk storage medium such as a hard disk or a floppy disk, a magnetic tape, an optical recording medium such as a compact disk or a DVD, a magnetic-optical recording medium such as a floppy disk, and a ROM. , A semiconductor storage device such as RAM or flash memory, etc., may include various types of hardware devices capable of storing a specific program executed according to a call from a computer.

이상 가상화 환경에서의 성능 제어 방법 및 이를 위한 정보 처리 장치의 일 실시예에 대해 설명하였으나, 가상화 환경에서의 성능 제어 방법 및 이를 위한 정보 처리 장치는 오직 상술한 실시예에만 한정되는 것은 아니다. 해당 기술 분야에서 통상의 지식을 가진 자가 상술한 실시예를 기초로 수정 및 변형하여 구현 가능한 다양한 장치나 방법 역시 상술한 가상화 환경에서 성능 제어 방법 및 이를 위한 장치의 일례가 될 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성 요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나 설명된 시스템, 구조, 장치, 회로 등의 구성 요소들에 다른 구성 요소들이 추가적으로 부가되거나 또는 설명된 시스템, 구조, 장치, 회로 등의 구성 요소들이 다른 구성 요소에 의하여 대치 또는 치환되더라도 상술한 가상 환경에서 성능 제어 방법 및 이를 위한 장치의 일 실시예가 될 수 있다.The performance control method in a virtualization environment and an example of an information processing device for the same have been described above, but the performance control method in a virtualization environment and an information processing device therefor are not limited to the above-described embodiments. Various devices or methods that can be implemented by modifying and transforming a person skilled in the art based on the above-described embodiments may also be examples of the performance control method and apparatus therefor in the above-described virtualization environment. For example, the described techniques are performed in a different order from the described method, and/or components such as the described system, structure, device, circuit, etc. are combined, combined, or described in a form different from the described method, Performance control method in the above-described virtual environment even if other components are additionally added to components such as structures, devices, and circuits, or components such as described systems, structures, devices, and circuits are replaced or replaced by other components And it may be an embodiment of a device for this.

1: 정보 처리 장치 40: 소프트웨어
41: 호스트 운영 체제 50: 하드웨어
51: 프로세서 53: 메모리 장치
55: 네트워크 장치 60: 자원 관리부
90: 가상 머신 91: 입출력 스레드
100: 성능 관리부 110: 목표 성능 수신부
130: 성능 감시부 150: 성능 제어부
1: information processing unit 40: software
41: host operating system 50: hardware
51: processor 53: memory device
55: network device 60: resource management unit
90: virtual machine 91: I/O thread
100: performance management unit 110: target performance receiver
130: performance monitoring unit 150: performance control unit

Claims (14)

가상 머신과 적어도 하나의 물리 자원 간의 신호의 전달을 수행하는 입출력 스레드; 및
상기 가상 머신에 대한 목표 성능 및 상기 가상 머신의 실제 성능을 비교하고, 비교 결과에 기초하여 상기 입출력 스레드에 할당되는 물리 자원을 관리하는 성능 관리부를 포함하고,
상기 성능 관리부는 상기 가상 머신의 실제 성능에 대한 정보를 획득하고, 상기 가상 머신의 실제 성능 및 상기 가상 머신에 대한 목표 성능 사이의 차이를 이용하여 성능 조절 값을 결정하고, 상기 성능 조절 값에 기초하여 상기 입출력 스레드에 할당되는 자원을 관리하는,
정보 처리 장치.
An input/output thread for transferring a signal between the virtual machine and at least one physical resource; And
A performance management unit that compares the target performance of the virtual machine and the actual performance of the virtual machine, and manages physical resources allocated to the input/output threads based on the comparison result,
The performance management unit obtains information on the actual performance of the virtual machine, determines a performance adjustment value using the difference between the actual performance of the virtual machine and the target performance of the virtual machine, and determines a performance adjustment value based on the performance adjustment value. To manage the resources allocated to the input/output thread,
Information processing device.
제1항에 있어서,
상기 성능 관리부는 상기 성능 조절 값에 대응하여 상기 입출력 스레드의 프로세서에 대한 목표 사용량을 결정하고 상기 프로세서에 대한 목표 사용량을 기반으로 상기 입출력 스레드에 할당되는 상기 프로세서의 자원을 관리하는,
정보 처리 장치.
The method of claim 1,
The performance management unit determines a target usage amount for the processor of the input/output thread in response to the performance adjustment value and manages resources of the processor allocated to the input/output thread based on the target usage for the processor,
Information processing device.
제2항에 있어서,
상기 성능 관리부는 상기 목표 사용량을 기반으로 상기 입출력 스레드 및 상기 프로세서 중 적어도 하나에 대한 제어 신호를 생성하는,
정보 처리 장치.
The method of claim 2,
The performance management unit generates a control signal for at least one of the input/output thread and the processor based on the target usage,
Information processing device.
제2항에 있어서,
상기 성능 관리부는 상기 실제 성능 및 상기 목표 성능 사이의 차이에 대한 상기 목표 성능의 비율을 기반으로 상기 성능 조절 값을 연산하고, 상기 성능 조절 값을 상기 프로세서에 대한 현재의 사용량에 부가하거나 차감하여 상기 목표 사용량을 결정하는,
정보 처리 장치.
The method of claim 2,
The performance management unit calculates the performance adjustment value based on the ratio of the target performance to the difference between the actual performance and the target performance, adds or subtracts the performance adjustment value to the current usage for the processor, To determine the target usage,
Information processing device.
제4항에 있어서,
상기 성능 관리부는 조절 상수를 더 이용하여 상기 성능 조절 값을 연산하는,
정보 처리 장치.
The method of claim 4,
The performance management unit further uses an adjustment constant to calculate the performance adjustment value,
Information processing device.
제1항에 있어서,
상기 적어도 하나의 물리 자원은 네트워크 장치 및 메모리 장치 중 적어도 하나를 포함하는 정보 처리 장치.
The method of claim 1,
The at least one physical resource includes at least one of a network device and a memory device.
제1항에 있어서,
상기 성능 관리부는 사용자 또는 다른 프로세서로부터 상기 가상 머신에 대한 목표 성능을 입력받는,
정보 처리 장치.
The method of claim 1,
The performance management unit receives a target performance for the virtual machine from a user or another processor,
Information processing device.
가상화 환경에서, 정보 처리 장치에 의해 수행되는 성능 제어 방법에 있어서,
가상 머신에 대한 목표 성능 및 상기 가상 머신에 대한 실제 성능을 획득하는 단계; 및
상기 목표 성능 및 상기 실제 성능을 기반으로 입출력 스레드에 할당되는 자원을 관리하되, 상기 입출력 스레드는 상기 가상 머신과 적어도 하나의 물리 자원 간의 신호의 전달을 수행하는 단계를 포함하는 성능 제어 방법.
In a virtualization environment, in the performance control method performed by the information processing device,
Obtaining a target performance for a virtual machine and an actual performance for the virtual machine; And
And managing resources allocated to an input/output thread based on the target performance and the actual performance, wherein the input/output thread transfers a signal between the virtual machine and at least one physical resource.
제8항에 있어서,
상기 목표 성능 및 상기 실제 성능을 기반으로 입출력 스레드에 할당되는 자원을 관리하는 단계는,
상기 가상 머신의 실제 성능에 대한 정보를 획득하는 단계;
상기 가상 머신의 실제 성능 및 상기 가상 머신에 대한 목표 성능 사이의 차이를 이용하여 성능 조절 값을 결정하는 단계; 및
상기 성능 조절 값을 기반으로 상기 입출력 스레드에 할당되는 자원을 관리하는 단계를 포함하는,
성능 제어 방법.
The method of claim 8,
Managing resources allocated to input/output threads based on the target performance and the actual performance,
Obtaining information on the actual performance of the virtual machine;
Determining a performance adjustment value using a difference between the actual performance of the virtual machine and the target performance of the virtual machine; And
And managing resources allocated to the input/output thread based on the performance adjustment value,
How to control performance.
제9항에 있어서,
상기 성능 조절 값을 기반으로 상기 입출력 스레드에 할당되는 자원을 관리하는 단계는,
상기 성능 조절 값에 대응하여 상기 입출력 스레드의 프로세서에 대한 목표 사용량을 결정하는 단계; 및
상기 프로세서에 대한 목표 사용량을 기반으로 상기 입출력 스레드에 할당되는 상기 프로세서의 자원을 관리하는 단계를 포함하는,
성능 제어 방법.
The method of claim 9,
Managing resources allocated to the input/output thread based on the performance adjustment value,
Determining a target usage amount of the input/output thread for the processor in response to the performance adjustment value; And
Including the step of managing resources of the processor allocated to the input/output thread based on the target usage for the processor,
How to control performance.
제10항에 있어서,
상기 성능 조절 값을 기반으로 상기 입출력 스레드에 할당되는 자원을 관리하는 단계는,
상기 목표 사용량을 기반으로 상기 입출력 스레드 및 상기 프로세서 중 적어도 하나에 대한 제어 신호를 생성하는 단계를 더 포함하는,
성능 제어 방법.
The method of claim 10,
Managing resources allocated to the input/output thread based on the performance adjustment value,
Generating a control signal for at least one of the input/output thread and the processor based on the target usage, further comprising,
How to control performance.
제10항에 있어서,
상기 가상 머신의 실제 성능 및 상기 가상 머신에 대한 목표 성능 사이의 차이를 이용하여 성능 조절 값을 결정하는 단계는, 상기 실제 성능 및 상기 목표 성능 사이의 차이에 대한 상기 목표 성능의 비율을 기반으로 상기 성능 조절 값을 연산하는 단계를 포함하고,
상기 성능 조절 값에 대응하여 상기 입출력 스레드의 프로세서에 대한 목표 사용량을 결정하는 단계는, 상기 성능 조절 값을 상기 프로세서에 대한 현재의 사용량에 부가 또는 차감하여 상기 목표 사용량을 결정하는 단계를 포함하는,
성능 제어 방법.
The method of claim 10,
Determining a performance adjustment value using the difference between the actual performance of the virtual machine and the target performance of the virtual machine, based on the ratio of the target performance to the difference between the actual performance and the target performance, the Computing a performance adjustment value,
Determining the target usage for the processor of the input/output thread in response to the performance adjustment value includes determining the target usage by adding or subtracting the performance adjustment value from the current usage for the processor,
How to control performance.
제12항에 있어서,
상기 성능 조절 값을 연산하는 단계는 조절 상수를 더 이용하여 상기 성능 조절 값을 연산하는 단계를 더 포함하는,
성능 제어 방법.
The method of claim 12,
The step of calculating the performance adjustment value further comprises calculating the performance adjustment value by further using an adjustment constant,
How to control performance.
제8항에 있어서,
상기 적어도 하나의 물리 자원은 네트워크 장치 및 메모리 장치 중 적어도 하나를 포함하는,
성능 제어 방법.
The method of claim 8,
The at least one physical resource includes at least one of a network device and a memory device,
How to control performance.
KR1020190053729A 2019-05-08 2019-05-08 Method for controlling performance in virtualized environment and information processing device for the same KR102203204B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190053729A KR102203204B1 (en) 2019-05-08 2019-05-08 Method for controlling performance in virtualized environment and information processing device for the same
US16/599,376 US11429420B2 (en) 2019-05-08 2019-10-11 Method for controlling performance in virtualized environment and information processing device for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190053729A KR102203204B1 (en) 2019-05-08 2019-05-08 Method for controlling performance in virtualized environment and information processing device for the same

Publications (2)

Publication Number Publication Date
KR20200129397A true KR20200129397A (en) 2020-11-18
KR102203204B1 KR102203204B1 (en) 2021-01-13

Family

ID=73046451

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190053729A KR102203204B1 (en) 2019-05-08 2019-05-08 Method for controlling performance in virtualized environment and information processing device for the same

Country Status (2)

Country Link
US (1) US11429420B2 (en)
KR (1) KR102203204B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113220368B (en) * 2021-05-27 2023-02-28 济南浪潮数据技术有限公司 Storage client resource isolation method, system, terminal and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101539496B1 (en) * 2013-02-18 2015-07-24 단국대학교 산학협력단 Apparatus for monitoring virtual machine and method therefor
KR101613513B1 (en) 2014-12-29 2016-04-19 서강대학교산학협력단 Virtual machine placing method and system for guarantee of network bandwidth
KR101816718B1 (en) * 2016-09-22 2018-02-22 고려대학교 산학협력단 The system for CPU Network integrated scheduling and the controlling method thereof
JP2018036724A (en) 2016-08-29 2018-03-08 日本電信電話株式会社 Management method of resource of virtual machine, server, and program
KR101924467B1 (en) * 2017-09-01 2018-12-03 고려대학교 산학협력단 System and method of resource allocation scheme for cpu and block i/o performance guarantee of virtual machine

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9756118B2 (en) * 2014-04-28 2017-09-05 Vmware, Inc. Virtual performance monitoring decoupled from hardware performance-monitoring units
KR102509988B1 (en) * 2015-12-15 2023-03-14 삼성전자주식회사 Storage system and method for connection-based load balancing
US9836298B2 (en) * 2016-03-28 2017-12-05 Intel Corporation Deployment rule system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101539496B1 (en) * 2013-02-18 2015-07-24 단국대학교 산학협력단 Apparatus for monitoring virtual machine and method therefor
KR101613513B1 (en) 2014-12-29 2016-04-19 서강대학교산학협력단 Virtual machine placing method and system for guarantee of network bandwidth
JP2018036724A (en) 2016-08-29 2018-03-08 日本電信電話株式会社 Management method of resource of virtual machine, server, and program
KR101816718B1 (en) * 2016-09-22 2018-02-22 고려대학교 산학협력단 The system for CPU Network integrated scheduling and the controlling method thereof
KR101924467B1 (en) * 2017-09-01 2018-12-03 고려대학교 산학협력단 System and method of resource allocation scheme for cpu and block i/o performance guarantee of virtual machine

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
고현석 외 3명. '가상화 환경에서 네트워크 I/O 성능 간섭 해결을 위한 피드백 제어 CPU 스케줄링 기법 분석'. 정보과학회 컴퓨팅의 실제 논문지 제23권 제9호, 2017.09., pp.572-577.* *
정윤진 외 2명. '오픈스택 환경에서 성능 차등화 및 자원 효율성 향상을 위한 가상머신 성능제어 기법 분석'. 한국정보과학회 2018 한국컴퓨터종합학술대회 논문집, 2018.06., pp.2243 - 2245. *

Also Published As

Publication number Publication date
US11429420B2 (en) 2022-08-30
KR102203204B1 (en) 2021-01-13
US20200356398A1 (en) 2020-11-12

Similar Documents

Publication Publication Date Title
EP3974980A1 (en) Methods, apparatus, and articles of manufacture for workload placement in an edge environment
US10929165B2 (en) System and method for memory resizing in a virtual computing environment
US7676578B1 (en) Resource entitlement control system controlling resource entitlement based on automatic determination of a target utilization and controller gain
US8484650B2 (en) Resource management system, resource information providing method and program for providing resource information relating to a plurality of resources
KR101977726B1 (en) APPARATUS AND METHOD FOR Virtual Desktop Services
US20140280956A1 (en) Methods and systems to manage computer resources in elastic multi-tenant cloud computing systems
US9092259B2 (en) Apparatus and method for controlling a resource utilization policy in a virtual environment
KR20220107315A (en) Current control for a multicore processor
CN107357405B (en) Power consumption control method and related equipment
CN102541460A (en) Multiple disc management method and equipment
CN104243405A (en) Request processing method, device and system
KR20140064813A (en) Respensive load control method
US11750711B1 (en) Systems and methods for adaptively rate limiting client service requests at a blockchain service provider platform
KR20150009662A (en) Method of allocating a virtual machine for virtual desktop service
US9326161B2 (en) Application-driven control of wireless networking settings
CN110637272A (en) Dynamic maximum frequency limit for processing core group
CN103841129A (en) Cloud computing resource information acquisition server, cloud computing resource information acquisition client and information processing method
KR102203204B1 (en) Method for controlling performance in virtualized environment and information processing device for the same
CN113849271A (en) Cloud desktop display method, device, equipment, system and storage medium
US10114438B2 (en) Dynamic power budgeting in a chassis
TW201439911A (en) System and method for installing virtual machines
CN112020079A (en) Wireless communication device and method for electronic device, and storage medium
CN110347546B (en) Dynamic adjustment method, device, medium and electronic equipment for monitoring task
CN115454576A (en) Virtual machine process management method and system and electronic equipment
US20140244545A1 (en) System, method, and recording medium

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant