KR101896497B1 - Method and appratus for performance control - Google Patents
Method and appratus for performance control Download PDFInfo
- Publication number
- KR101896497B1 KR101896497B1 KR1020170022853A KR20170022853A KR101896497B1 KR 101896497 B1 KR101896497 B1 KR 101896497B1 KR 1020170022853 A KR1020170022853 A KR 1020170022853A KR 20170022853 A KR20170022853 A KR 20170022853A KR 101896497 B1 KR101896497 B1 KR 101896497B1
- Authority
- KR
- South Korea
- Prior art keywords
- performance
- control policy
- control
- vertical
- policy
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
- H04L41/0897—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0876—Aspects of the degree of configuration automation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0894—Policy-based network configuration management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0882—Utilisation of link capacity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H04L67/32—
Abstract
본 발명은 성능 제어 방법 및 이를 위한 장치에 관한 것으로서, 사용자의 서비스 요청에 따른 서비스 처리를 수행하는 서비스 제공 서버의 성능을 모니터링하고, 이전 시점의 자원 관리 이력을 고려하여 현재 시점에 적합한 성능 제어 정책을 선택함으로써 스케일 업/다운/아웃/인의 4가지 방식에 따라 보다 유연하게 성능 제어를 수행할 수 있도록 한다.The present invention relates to a performance control method and apparatus therefor, which monitors the performance of a service providing server that performs service processing according to a service request of a user and monitors a performance control policy So that performance control can be performed more flexibly according to the four methods of scale up / down / out / in.
Description
본 발명은 가상화(Virtualization) 기술을 기반으로 운용되는 서버 시스템의 성능 제어 방법 및 장치에 관한 것으로서, 더욱 상세하게는 응용 프로그램의 실행을 지원하는 가상화 노드의 서비스 처리량, 자원 활용율과 같은 성능을 모니터링하여 모니터링 결과에 따라 가상화 노드에 할당되는 자원을 조절하는 수직적 제어 정책 혹은 가상화 노드의 수를 조절하는 수평적 제어 정책을 선택적으로 적용함으로써 동적으로 성능 제어를 수행할 수 있는 가상화 환경에서의 성능 제어 방법 및 이를 위한 장치에 관한 것이다.The present invention relates to a method and apparatus for controlling performance of a server system operating on a virtualization technology, and more particularly, to monitoring performance of a virtualization node supporting execution of an application program, such as service throughput and resource utilization rate A performance control method in a virtual environment in which performance control can be dynamically performed by selectively applying a vertical control policy for adjusting resources allocated to a virtualization node or a horizontal control policy for controlling the number of virtualization nodes according to a monitoring result, And a device for this.
이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.The contents described in this section merely provide background information on the present embodiment and do not constitute the prior art.
다수의 사용자 단말로부터의 서비스 요청에 따라, 서비스 처리를 수행하기 위한 클러스터 시스템에서는 자원이 다수의 사용자에 의해 공유되기 때문에 자원 활용이 시스템의 성능에 중요한 영향을 미친다. In a cluster system for performing service processing according to a service request from a plurality of user terminals, resource utilization has an important influence on the performance of the system because resources are shared by a plurality of users.
최근에 각광 받고 있는 클라우드 컴퓨팅 역시 다수의 사용자가 클라우드 서버에 동시 접속하는 경우 응용 프로그램에 할당된 자원이 부족하게 되어 시스템이 불안정해지는 경우가 있다. Cloud computing, which has been popular in recent years, may also become unstable due to insufficient resources allocated to application programs when a large number of users access the cloud server at the same time.
이러한 자원 활용의 문제점을 극복하여 사용자에게 좀 더 안정적인 서비스 환경을 제공하기 위한 방안으로 가상화 기술이 있다. Virtualization technology is a way to overcome the problems of resource utilization and provide a more stable service environment for users.
가상화 기술은 하나의 물리적인 장비를 논리적으로 여러 개의 장비처럼 사용하는 것을 의미한다. Virtualization technology means using one physical device logically as multiple devices.
기존에 주로 사용되던 가상화 기술은 가상 머신(Virtual Machine) 기반 가상화로, 하나의 물리적인 서버 내에 운영체제, 즉 호스트(host) OS를 설치하고, 자원을 분할하여 여러 개의 논리적 가상 머신을 생성한 후 게스트(guest) OS를 설치하고, 응용 프로그램(application)을 구동하여, 구동되는 응용 프로그램들이 하나의 물리적 자원, 예를 들면 CPU, 메모리 등의 하드웨어 자원을 공유하는 것이다. Virtualization technology, which was mainly used in the past, is a virtual machine-based virtualization. It installs an operating system (host OS) within a single physical server, creates multiple logical virtual machines by dividing resources, (guest) OS, and the application programs are driven so that the running application programs share hardware resources such as one physical resource, for example, a CPU and a memory.
최근에는 컨테이너(Container)를 이용한 소프트웨어 가상화 또는 OS 레벨 가상화로 불리는 가상화 기법이 대두되고 있다. 컨테이너를 이용한 가상화 기술은 호스트 OS 내부를 물리적 자원을 관리하는 커널 공간과 사용자 프로세스, 즉 응용 프로그램을 실행하는 사용자 공간으로 구분하고, 사용자 공간을 여러 개로 나누어 각각의 사용자 프로세스에서 사용되는 하드웨어 자원을 할당하고 공유하는 기술을 의미한다. 컨테이너 기반 환경은 기존의 가상 머신 환경에 비해 구조적으로 게스트 OS가 없기 때문에, 용량이 매우 가볍고 자원 활용율이 더 높다는 장점이 있다. Recently, virtualization techniques called software virtualization using OS (Container) or OS level virtualization are emerging. Container-based virtualization technology divides the host OS into a kernel space for managing physical resources and a user space for executing a user process, that is, an application program, and allocates hardware resources used in each user process And sharing technology. Container-based environment is advantageous in that capacity is very light and resource utilization ratio is higher because there is no structured guest OS compared to existing virtual machine environment.
이러한 가상화 환경에서는 가상 머신이나 컨테이너와 같은 가상화 노드를 기반으로 자원을 할당함으로써 부하에 따른 성능을 제어하는 오토 스케일링(Auto-Scaling) 기술을 활용하고 있다. In this virtualization environment, we utilize the auto-scaling technology that controls performance based on load by allocating resources based on virtualization nodes such as virtual machines or containers.
오토 스케일링에는 가상 머신이나 컨테이너와 같은 가상화 노드의 부하 상태를 모니터링하여, 가상화 노드와 같은 서비스 수행 개체를 복제하여 추가하거나 삭제하여 축소하는 스케일 아웃/인(Scale OUT/IN)에 의한 수평적 제어 정책과 처리 성능에 영향을 미치는 자원을 추가하거나 회수하는 스케일 업/다운 (Scale UP/DOWN)에 의한 수직적 제어 정책이 있다. 즉, 시스템 전체의 자원 효율성을 높이기 위해 필요한 만큼 자원을 할당하는 방식을 크게 두 종류로 구분하여 적용하고 있었다. Auto-scaling monitors the load status of virtualization nodes such as virtual machines and containers, and controls the horizontal control policy by scaling out / in (Scale OUT / IN) And a vertical control policy by scale up / down (Scale UP / DOWN) to add or retrieve resources that affect processing performance. In other words, the method of allocating resources as much as necessary to increase the resource efficiency of the entire system has been divided into two types.
이 때, 수평적 제어 정책으로 성능을 확대/축소할지 또는 수직적 제어 정책으로 성능을 확대/축소할지는 사전에 응용 프로그램의 성격을 미리 파악하여 둘 중에 유리한 방식으로 적용되고 있었다. 즉, 시스템 관리자에 의해 미리 설정된 성능 제어 정책에 따라 운영되는 방식이었다. 일례로, 대부분의 클라우드 시스템에서는 수평적 제어 정책이 선호되고 있으며, NFV(Network Functions Virtualization) 시스템에서는 수직적 제어 정책에 의하는 경우가 있다. At this time, whether the performance is expanded or decreased by the horizontal control policy or whether the performance is expanded or decreased by the vertical control policy has been preliminarily grasped in advance of the nature of the application program and applied in a favorable manner. That is, it was operated according to the performance control policy preset by the system administrator. For example, horizontal control policies are preferred in most cloud systems, and vertical control policies in network function virtualization (NFV) systems.
이와 같이 종래에는 특정 시점에 어떠한 정책이 시스템 운영에 유리할지를 고려하지 않고, 단순히 부하 상태만을 모니터링하여 둘 중에 한 가지 성능 제어 정책을 적용하여 오토 스케일링을 수행하였기에 최적의 상태로 시스템이 운영되지 못하는 문제가 있었다.In this way, conventionally, without considering the policy which will be favorable for the system operation at a specific time, only the load condition is monitored, and one of the performance control policies is applied to perform the auto-scaling so that the system can not be operated in the optimum state .
이에, 본 발명은 종래의 문제점을 해결하고자, 수직 또는 수평적 제어 정책 중 하나의 방식으로 고정되어 운영되던 방식을 탈피하여, 가상화 노드를 모니터하여, 그 상태에 따라서 가변적으로 수직 또는 수평적 제어 정책을 선택하여 적용할 수 있는 성능 제어 방법 및 이를 위한 장치를 제공하고자 한다. Accordingly, in order to solve the problems of the related art, the present invention is to solve a conventional problem by separating a method that is fixed and operated in one of vertical and horizontal control policies, monitors a virtualization node, and variably controls a vertical or horizontal control policy And to provide a device for the performance control method.
특히, 본 발명은 자원 활용에 대한 이력을 저장하여 관리함으로써, 이전 단계에서 내려진 결정이 실제 성능 향상에 기여한 바를 고려하여 현재 시점에 적합한 성능 제어 정책을 선택함으로써 최적으로 시스템 성능을 확대/축소할 수 있는 성능 제어 방법 및 이를 위한 장치를 제공하는 데 목적이 있다. Particularly, the present invention stores and manages the history of resource utilization, so that it is possible to maximize / reduce the system performance optimally by selecting a performance control policy suitable for the current time, considering that the decision made in the previous step contributes to the actual performance improvement And a device for the same.
그러나, 이러한 본 발명의 목적은 상기의 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 명확하게 이해될 수 있을 것이다. However, the object of the present invention is not limited to the above-mentioned objects, and other objects not mentioned can be clearly understood from the following description.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 성능 제어 방법은, 성능 제어 장치가, 가상화 노드의 자원 활용율에 따라 성능 확대 또는 성능 축소를 포함하는 성능 제어 필요 여부를 판단하는 단계; 및 성능 제어가 필요한 것으로 판단되면, 이전에 적용된 성능 제어 정책을 고려하여, 수직적 제어 정책 및 수평적 제어 정책 중 하나의 성능 제어 정책을 선택하는 단계를 포함할 수 있다.According to another aspect of the present invention, there is provided a performance control method including: determining whether performance control including performance enhancement or performance reduction is required according to resource utilization rate of a virtualization node; And selecting a performance control policy from among the vertical control policy and the horizontal control policy in consideration of the performance control policy previously applied when it is determined that performance control is required.
또한, 상기 판단하는 단계 이전에, 상기 서비스 제공 서버의 가상화 노드 별로 서비스 처리량 및 자원 활용율을 모니터링하는 단계를 더 포함할 수 있다. The method may further include monitoring a service throughput and a resource utilization rate for each virtualization node of the service providing server before the determining step.
상기 판단하는 단계는, 해당 가상화 노드의 자원 활용율이 기 설정된 제1 임계값 이상인 경우, 성능 확대가 필요한 것으로 판단하고, 상기 자원 활용율이 기 설정된 제2 임계값 미만인 경우, 성능 축소가 필요한 것으로 판단한다.The determining step determines that performance enhancement is necessary when the resource utilization rate of the virtualization node is greater than or equal to a predetermined first threshold value and determines that performance reduction is necessary when the resource utilization rate is less than a predetermined second threshold value .
또한, 상기 성능 제어 정책을 선택하는 단계는, 상기 판단하는 단계에서 성능 확대가 필요한 것으로 판단된 경우, 이전 성능 제어 정책의 적용에 따른 수직적 제어 정책 및 수평적 제어 정책의 기여도를 나타내는 성능 제어 지표를 산출하고, 상기 성능 제어 지표에 따라서 상기 수직적 제어 정책 및 수평적 제어 정책 중 하나를 선택할 수 있다.In addition, the step of selecting the performance control policy may include a performance control index indicating a contribution of the vertical control policy and the horizontal control policy according to application of the previous performance control policy, And select one of the vertical control policy and the horizontal control policy according to the performance control index.
아울러, 상기 성능 제어 정책을 선택하는 단계는, 수직적 제어 정책의 기여도를 나타내는 수직 제어 지표 및 수평적 제어 정책의 기여도를 나타내는 수평 제어 지표를 포함하는 상기 성능 제어 지표를 설정하는 단계; 이전 제어 정책을 확인하고, 이전 제어 정책에 따라서, 수직 제어 지표 또는 수평 제어 지표 중 어느 하나를 갱신하는 단계; 및 수직 제어 지표와 수평 제어 지표의 크기를 비교하여, 수직 제어 지표가 수평 제어 지표보다 크거나 같은 경우 수직적 제어 정책을 선택하고, 그렇지 않은 경우에 수평적 제어 정책을 선택하는 단계를 포함할 수 있다.In addition, the step of selecting the performance control policy may include: setting the performance control index including a vertical control index indicating a contribution of the vertical control policy and a horizontal control index indicating a contribution of the horizontal control policy; Checking a previous control policy and updating either the vertical control index or the horizontal control index according to the previous control policy; And comparing the magnitude of the vertical control index and the horizontal control index to select a vertical control policy if the vertical control index is greater than or equal to the horizontal control index and selecting a horizontal control policy if not .
상기 성능 제어 지표는 상기 이전 성능 제어 정책에 따라 변화된 서비스 처리량과 이전에 투입된 처리 단위 당 서비스 처리량을 고려하여 산출할 수 있다.The performance control indicator may be calculated in consideration of the service throughput changed according to the previous performance control policy and the service throughput per previously entered processing unit.
한편, 상기 성능 제어 정책을 선택하는 단계는, 상기 판단하는 단계에서 성능 축소가 필요한 것으로 판단된 경우, 이전 성능 제어 정책과 동일한 성능 제어 정책을 선택할 수 있다. The selecting of the performance control policy may select the same performance control policy as the previous performance control policy if it is determined that the performance reduction is required in the determining step.
또한, 상기 선택된 성능 제어 정책에 따라, 상기 가상화 노드의 성능을 제어하는 단계를 더 포함할 수 있으며, 상기 제어하는 단계는, 상기 판단하는 단계에서 성능 확대가 필요한 것으로 판단된 것으로서, 수직적 제어 정책이 선택된 경우, 상기 가상화 노드에 자원을 추가하고, 수평적 제어 정책이 선택된 경우, 새로운 가상화 노드를 생성하고, 상기 판단하는 단계에서 성능 축소가 필요한 것으로 판단된 것으로서, 수직적 제어 정책이 선택된 경우, 상기 가상화 노드에 추가된 자원을 회수하고, 수평적 제어 정책이 선택된 경우 상기 가상화 노드를 삭제할 수 있다.The virtual node may further include a step of controlling the performance of the virtual node in accordance with the selected performance control policy, and the controlling step may include determining that a performance enhancement is required in the determining step, If a virtual control node is selected, a new virtual node is created if a horizontal control policy is selected. If the vertical control policy is selected, it is determined that performance reduction is required in the determining step. Reclaim resources added to the node, and delete the virtualization node if the horizontal control policy is selected.
추가로, 본 발명은 상술한 바와 같은 방법을 실행시키는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체를 제공할 수 있다.Furthermore, the present invention can provide a computer-readable recording medium on which a program for executing the above-described method is recorded.
또한, 본 발명은 상술한 바와 같은 방법을 실행시키도록 구현되어 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램을 제공할 수 있다.Further, the present invention can provide a computer program stored in a computer-readable recording medium which is implemented to carry out the method as described above.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 성능 제어 장치는 가상화 노드의 자원 활용율에 따라 성능 확대 또는 성능 축소를 포함하는 성능 제어 필요 여부를 판단하고, 이전 적용된 성능 제어 정책을 고려하여, 수직적 제어 정책 및 수평적 제어 정책 중 하나의 성능 제어 정책을 선택하는 제어부; 및 상기 제어부에 의해 선택되는 성능 제어 정책 이력을 저장하는 저장부를 포함할 수 있다.In order to achieve the above object, a performance control apparatus according to an embodiment of the present invention determines whether performance control including performance enhancement or reduction of performance is required according to a resource utilization rate of a virtualization node, A controller for selecting one of a vertical control policy and a horizontal control policy; And a storage unit for storing a performance control policy history selected by the control unit.
또한, 상기 가상화 노드의 서비스 처리량 및 자원 활용율을 모니터링하는 모니터링부; 상기 제어부에 의해 수직적 제어 정책이 선택되면, 가상화 노드에 자원을 추가하거나 회수하는 수직 조절부; 상기 제어부에 의해 수평적 제어 정책이 선택되면, 가상화 노드를 생성하거나 삭제하는 수평 조절부; 및 상기 서비스 요청에 따른 작업 부하를 상기 서비스 제공 서버의 분배 정책에 따라 상기 수직 조절부 및 수평 조절부에 의해 성능 확대 혹은 축소된 가상화 노드들에 분배하는 부하 분배부를 더 포함할 수 있다.A monitoring unit for monitoring service throughput and resource utilization rate of the virtualization node; A vertical adjustment unit for adding or retrieving resources to the virtualization node when the control unit selects the vertical control policy; A horizontal adjustment unit for creating or deleting a virtual node when the horizontal control policy is selected by the controller; And a load distribution unit for distributing the workload according to the service request to the virtual nodes expanded or reduced in performance by the vertical adjustment unit and the horizontal adjustment unit according to the distribution policy of the service providing server.
아울러, 상기 제어부는, 수직적 제어 정책의 기여도를 나타내는 수직 제어 지표 및 수평적 제어 정책의 기여도를 나타내는 수평 제어 지표를 포함하는 성능 제어 지표를 설정하고, 상기 가상화 노드의 성능 확대가 필요한 것으로 판단되면, 이전 성능 제어 정책에 따라서 수직 제어 지표 또는 수평 제어 지표 중 어느 하나를 갱신한 후, 상기 수직 제어 지표 및 수평 제어 지표의 크기 비교에 기반하여 수직적 제어 정책 및 수평적 제어 정책 중 하나를 선택할 수 있다. The control unit may set a performance control index including a vertical control index indicating a contribution of a vertical control policy and a horizontal control index indicating a contribution of a horizontal control policy. If it is determined that the performance enhancement of the virtualization node is necessary, After either the vertical control index or the horizontal control index is updated according to the previous performance control policy, one of the vertical control policy and the horizontal control policy may be selected based on the size comparison of the vertical control index and the horizontal control index.
또한, 상기 제어부는, 상기 가상화 노드의 성능 축소가 필요한 것으로 판단하면, 이전 성능 제어 정책과 동일한 성능 제어 정책을 선택할 수 있다. The controller may select the same performance control policy as the previous performance control policy if it is determined that performance degradation of the virtual node is necessary.
본 발명의 성능 제어 방법 및 이를 위한 장치에 의하면, 관리자에 의해 미리 설정되어 수직 또는 수평 중 어느 하나의 고정적인 성능 제어 정책으로 적용되던 오토 스케일링을 시스템의 실제 서비스 처리량 등을 고려하여 시스템의 상황에 맞추어 수직적 성능 제어 혹은 수평적 성능 제어를 가변적으로 적용할 수 있으므로, 시스템 자원을 효율성을 높여 보다 유연하게 시스템 성능을 관리할 수 있다. According to the performance control method and apparatus of the present invention, autoscaling, which is preset by a manager and applied to a fixed performance control policy such as vertical or horizontal, is performed in consideration of the actual service throughput of the system, Since the vertical performance control or the horizontal performance control can be variably applied, the system resources can be more efficiently managed and the system performance can be more flexibly managed.
또한, 본 발명의 성능 제어 방법 및 이를 위한 장치에 의하면, 성능 제어 지표를 도입하고, 시스템의 상황 및 이전 제어 이력에 따라서 성능 제어 지표를 산출하고, 이를 기반으로 수직적 제어 혹은 수평적 제어 정책을 선택하도록 함으로써, 기존의 성능 제어 시스템에도 쉽게 구현이 가능하다는 장점이 있다. According to the performance control method and apparatus of the present invention, a performance control index is introduced, a performance control index is calculated according to a system status and a previous control history, and a vertical control or a horizontal control policy is selected So that it can be easily implemented in an existing performance control system.
아울러, 상술한 효과 이외의 다양한 효과들이 후술될 본 발명의 실시 예에 따른 상세한 설명에서 직접적 또는 암시적으로 개시될 수 있다. In addition, various effects other than the above-described effects can be directly or implicitly disclosed in the detailed description according to the embodiment of the present invention to be described later.
도 1은 본 발명의 실시 예에 따른 성능 제어가 이루어지는 전체 서비스 시스템을 설명하기 위한 예시도이다.
도 2는 본 발명의 일 실시 예에 따른 컨테이너 기반 가상화 환경에서의 성능 제어 방법을 설명하기 위한 예시도이다.
도 3은 본 발명의 다른 실시 예에 따른 가상머신 기반 가상화 환경에서의 성능 제어 방법을 설명하기 위한 예시도이다.
도 4는 본 발명의 실시 예에 따른 성능 제어를 위한 성능 제어 장치의 주요 구성을 도시한 블록도이다.
도 5 내지 도 7은 본 발명의 실시 예에 따른 성능 제어 상태를 설명하기 위한 예시도이다.
도 8 내지 도 10은 본 발명의 실시 예에 따른 성능 제어 방법을 설명하기 위한 흐름도이다. 1 is an exemplary diagram illustrating an overall service system in which performance control according to an embodiment of the present invention is performed.
FIG. 2 is an exemplary diagram for explaining a performance control method in a container-based virtualization environment according to an embodiment of the present invention.
3 is an exemplary diagram for explaining a performance control method in a virtual machine-based virtualization environment according to another embodiment of the present invention.
4 is a block diagram illustrating a main configuration of a performance control apparatus for performance control according to an embodiment of the present invention.
5 to 7 are exemplary diagrams for explaining a performance control state according to an embodiment of the present invention.
8 to 10 are flowcharts for explaining a performance control method according to an embodiment of the present invention.
본 발명의 과제 해결 수단의 특징 및 이점을 보다 명확히 하기 위하여, 첨부된 도면에 도시된 본 발명의 특정 실시 예를 참조하여 본 발명을 더 상세하게 설명한다.BRIEF DESCRIPTION OF THE DRAWINGS For a more complete understanding of the nature and advantages of the present invention, reference should be made to the following detailed description taken in conjunction with the accompanying drawings, in which:
다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.In the following description and the accompanying drawings, detailed description of well-known functions or constructions that may obscure the subject matter of the present invention will be omitted. It should be noted that the same constituent elements are denoted by the same reference numerals as possible throughout the drawings.
이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. The terms and words used in the present specification and claims should not be construed to be limited to ordinary or dictionary meanings and the inventor is not limited to the concept of terminology for describing his or her invention in the best way. It should be interpreted as meaning and concept consistent with the technical idea of the present invention.
따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.Therefore, the embodiments described in the present specification and the configurations shown in the drawings are merely the most preferred embodiments of the present invention, and not all of the technical ideas of the present invention are described. Therefore, It is to be understood that equivalents and modifications are possible.
또한, 제1, 제2등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제2 구성요소는 제1 구성요소로 명명될 수 있고, 유사하게 제1 구성요소도 제2 구성요소로 명명될 수 있다.Also, terms including ordinal numbers such as first, second, etc. are used to describe various elements, and are used only for the purpose of distinguishing one element from another, Not used. For example, without departing from the scope of the present invention, the second component may be referred to as a first component, and similarly, the first component may also be referred to as a second component.
더하여, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급할 경우, 이는 논리적 또는 물리적으로 연결되거나, 접속될 수 있음을 의미한다. 다시 말해, 구성요소가 다른 구성요소에 직접적으로 연결되거나 접속되어 있을 수 있지만, 중간에 다른 구성요소가 존재할 수도 있으며, 간접적으로 연결되거나 접속될 수도 있다고 이해되어야 할 것이다.In addition, when referring to an element as being "connected" or "connected" to another element, it means that it can be connected or connected logically or physically. In other words, it is to be understood that although an element may be directly connected or connected to another element, there may be other elements in between, or indirectly connected or connected.
또한, 본 명세서에서 기술되는 "포함 한다" 또는 "가지다"등의 용어는 명세서상에서 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.It is also to be understood that the terms such as " comprises "or" having ", as used herein, are intended to specify the presence of stated features, integers, And does not preclude the presence or addition of other features, numbers, steps, elements, components, or combinations thereof.
이제, 본 발명의 실시 예에 따른 가상화 환경에서의 성능 제어 방법 및 이를 위한 장치에 대하여 도면을 참조하여 상세하게 설명하도록 한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Now, a performance control method and an apparatus therefor according to an embodiment of the present invention will be described in detail with reference to the drawings.
도 1은 본 발명의 실시 예에 따른 성능 제어 장치가 적용되는 서비스 시스템을 설명하기 위한 예시도이다. 1 is an exemplary diagram illustrating a service system to which a performance control apparatus according to an embodiment of the present invention is applied.
도 1에 도시된 바와 같이, 본 발명의 실시 예에 따른 성능 제어가 이루어지는 전체 시스템은, 서비스 제공 서버(300), 사용자 단말(200) 및 서비스 제공 서버(300)의 성능을 제어하는 본 발명의 성능 제어 장치(100)로 구성된다. 1, the overall system for performing performance control according to an exemplary embodiment of the present invention includes a
서비스 제공 서버(300)는 가상화 기술을 기반으로 구현되며, 사용자 단말(200)의 서비스 요청에 따라 해당하는 응용 프로그램(APP, application)을 구동하고 이에 따른 처리 결과를 사용자 단말(200)로 전달하게 된다. The
이때, 어느 하나의 응용 프로그램을 이용하고자 하는 사용자 단말(200)의 수가 증가하게 되면, 서비스 제공 서버(300)는 한정된 자원을 기반으로 사용자 단말(200)의 서비스 요청을 보다 효율적으로 처리할 수 있어야 한다.At this time, if the number of the
이를 위해, 본 발명의 성능 제어 장치(100)는 서비스 제공 서버(300) 응용 프로그램 상태를 지속적으로 모니터링 하고 그에 따른 결과를 기초로 응용 프로그램에 할당되는 자원을 제어함으로써, 응용 프로그램의 서비스 처리량을 고려한 성능 제어 정책을 선택하여 보다 효율적으로 시스템 자원을 사용할 수 있게 된다. To this end, the
종래에는 수직적 제어 정책 또는 수평적 제어 정책 중 어느 하나를 고정적으로 적용하였으나, 본 발명에 따르면, 도 1에 도시된 바와 같이, 동일 응용 프로그램을 새롭게 추가하여 사용자 단말(200)의 서비스 요청을 분산시켜 처리하는 수평적 제어 정책 또는 응용 프로그램에 할당되는 자원의 크기를 증가시키는 수직적 제어 정책을 유연하게 선택하여 사용자 단말(200)의 서비스 요청을 처리할 수 있다. In the related art, any one of the vertical control policy and the horizontal control policy is fixedly applied. However, according to the present invention, as shown in FIG. 1, a service request of the
이러한 본 발명의 서비스 제공 서버(300)은 클라우드 방식으로 동작을 수행할 수 있으나, 클라우드 방식에만 한정되는 것은 아니다. 아울러, 본 발명의 서비스 제공 서버(300)은 가상화 기술 기반으로 응용 프로그램을 구동할 수 있다. The
이러한 본 발명의 서비스 제공 서버(300)은 가상 머신 기반 가상화 환경과 컨테이너 기반 가상화 환경으로 구분될 수 있다. The
먼저, 도 2 및 도 3을 참조하여, 컨테이너 기반 가상화 환경 및 가상 머신 기반 가상화 환경에 대해 설명하도록 한다. First, with reference to FIG. 2 and FIG. 3, a container-based virtualization environment and a virtual machine-based virtualization environment will be described.
도 2는 본 발명의 일 실시 예에 따른 컨테이너 기반 가상화 환경에서의 성능 제어 방법을 설명하기 위한 예시도이다.FIG. 2 is an exemplary diagram for explaining a performance control method in a container-based virtualization environment according to an embodiment of the present invention.
본 발명의 컨테이너 기반 가상화 환경을 지원하는 서비스 제공 서버(310)은 하드웨어(10), 운영체제(OS, operating system, 20) 및 복수의 컨테이너(30)를 포함할 수 있다. OS(20) 및 하드웨어(10)는 실제 물리적인 서버를 의미하며, 하드웨어(10)는 실제 물리적인 하드웨어 자원을 의미한다.The
각각의 컨테이너(30)는 복수의 응용 프로그램(APP)을 구동할 수 있도록 필요한 각종 프로그램, 소스 코드 등과 라이브러리(Bins/Libs) 등을 묶은 이미지를 포함하는 공간으로, 도 3에서 설명할 가상 머신과는 달리 응용 프로그램의 구동은 OS(20)에서 실질적으로 이뤄지게 된다. 한편, 각 컨테이너(30)가 구동하는 응용 프로그램은 그 종류와 수에 따라 차이가 있을 수 있다. Each of the
이러한 컨테이너 기반 가상화 환경은 OS 레벨의 가상화로, 응용 프로그램의 실행 환경을 가상화하는 것인데, 구체적으로, 물리적 자원을 관리하는 커널 공간과 응용 프로그램을 실행하는 사용자 공간으로 구분하고, 사용자 공간을 여러 개의 컨테이너(30)로 나누어 각 컨테이너(30)에서 사용되는 하드웨어 자원을 할당하고 공유한다. 가상 환경이 커널에서 공유되므로 새로운 커널을 시작할 필요가 없어 속도가 빠르고 경량화된 가상화 기술이라 할 수 있다. These container-based virtualization environments are OS level virtualization that virtualizes the execution environment of an application. Specifically, it divides the kernel space that manages the physical resources and the user space that runs the application, (30), and allocates and shares hardware resources used in each of the containers (30). Because the virtual environment is shared by the kernel, there is no need to start a new kernel, which is a fast and lightweight virtualization technology.
컨테이너 기반 가상화 환경을 지원하는 서비스 제공 서버(310)에 있어서, 특정 컨테이너(30)의 어느 하나의 응용 프로그램에 사용자 단말(200)의 서비스 요청이 몰릴 경우, 종래에는 기 설정된 성능 제어 정책에 따라 어느 하나의 방식으로 성능 제어가 이루어졌다.In a
그러나, 본 발명에서는 서비스 처리량을 고려하여 서비스 요청이 몰리는 특정 컨테이너(30)에 추가적인 하드웨어 자원을 더 할당하거나 또는 컨테이너(30)를 새롭게 추가하여 상황에 맞는 방식으로 성능 제어 정책을 선택하여 유연하게 부하를 관리하고자 한다. However, according to the present invention, additional hardware resources may be further allocated to a
아울러, 본 발명의 가상화 환경에서의 성능 제어 방법은 가상 머신 기반 가상화 환경에서도 적용될 수 있다. In addition, the performance control method in the virtualization environment of the present invention can be applied to a virtual machine-based virtualization environment.
도 3은 본 발명의 다른 실시 예에 따른 가상 머신 기반 가상화 환경에서의 성능 제어 방법을 설명하기 위한 예시도이다.3 is an exemplary diagram for explaining a performance control method in a virtual machine-based virtualization environment according to another embodiment of the present invention.
도 3을 참조하면, 본 발명의 가상 머신 기반 가상화 환경을 지원하는 서비스 제공 서버(320)는 하드웨어(10), 호스트 OS(40), 하이퍼바이저(45) 및 복수의 가상 머신(50)을 포함하여 구현될 수 있다. 여기서 호스트 OS(40) 및 하드웨어(10)를 묶어 호스트 머신이라 칭한다. 호스트 머신은 가상의 하드웨어가 생성되는 실제 물리적인 서버를 의미하며, 호스트 OS(40)는 상기 호스트 머신에서 구동되는 OS를 의미하며, 하드웨어(10)는 호스트 머신의 실제 물리적인 하드웨어 자원을 의미한다.3, the
각 가상 머신(50)은 게스트 OS를 포함할 수 있으며, 이때의 게스트 OS는 서로 다른 종류의 OS로 구현될 수 있다. 또한, 각 가상 머신(50)은 상기 게스트 OS를 기반으로 복수의 응용 프로그램(APP)를 구동할 수 있으며, 이때의 각 가상 머신(50)이 보유하고 있는 응용 프로그램은 그 종류와 수에 따라 차이가 있을 수 있다. Each
이러한 가상 머신 기반 가상화 환경은 호스트 OS(40) 운용 환경, 즉 호스트 머신의 하드웨어(10)를 가상화하는 것이며, 가상 머신 기반 가상화 환경은 하이퍼바이저(45)를 포함할 수 있다. 하이퍼바이저(45)는 다수의 가상 머신(50)을 생성하고 관리하는 역할을 수행하는 것으로, 하나의 호스트 머신에서 동시에 다수의 게스트 OS를 구동시킬 수 있는 가상화 플랫폼을 의미한다. 가상 머신 기반 가상화 환경을 지원하는 컴퓨팅 시스템(320)에 있어서, 특정 가상 머신(50) 내의 응용 프로그램에 사용자 단말(200)의 서비스 요청이 몰릴 경우, 서비스 처리량을 고려하여 서비스 요청이 몰리는 특정 가상 머신(50)에 추가적인 하드웨어 자원을 더 할당하거나 또는 가상 머신(50)를 새롭게 추가하여 상황에 맞는 방식으로 성능 제어 정책을 선택하여 유연하게 부하를 관리하고자 한다. This virtual machine-based virtualization environment is to virtualize the
상술한 바와 같이, 본 발명의 성능 제어 방법은 컨테이너 기반 가상화 환경이나 가상 머신 기반 가상화 환경에 적용될 수 있다. As described above, the performance control method of the present invention can be applied to a container-based virtualization environment or a virtual machine-based virtualization environment.
또한, 본 발명에서 가상화 기술을 기반으로 구현되는 컨테이너 또는 가상 머신은 가상화 노드로 지칭될 수 있으며, 이는 응용 프로그램의 실행을 지원하는 서비스 처리 개체를 의미할 수 있다. Also, in the present invention, a container or a virtual machine implemented on the basis of virtualization technology may be referred to as a virtualization node, which may mean a service processing entity supporting execution of an application program.
이하에서는 설명의 편의를 위해 컨테이너 기반 가상화 환경을 예로 들어 설명하도록 하나, 이에 반드시 한정되는 것은 아님에 유의해야 한다. Hereinafter, for convenience of description, a container-based virtualization environment will be described as an example, but it should be noted that the present invention is not limited thereto.
또한, 설명의 편의를 위해 서비스 제공 서버(310)는 하나의 특정 서비스를 처리하는 것으로 가정하여 설명하나, 이에 반드시 한정되는 것은 아니며, 가상화 노드가 각기 다른 서비스를 수행할 수도 있음에 유의해야 한다. For convenience of description, it is assumed that the
도 4는 본 발명의 실시 예에 따른 가상화 환경에서의 성능 제어를 위한 성능 제어 장치의 주요 구성을 도시한 블록도이다. 4 is a block diagram illustrating a main configuration of a performance control apparatus for performance control in a virtualization environment according to an embodiment of the present invention.
본 발명의 실시 예에 다른 성능 제어 장치(100)는 제어부(110), 모니터링부(120), 저장부(130), 부하 분배부(140), 수직 조절부(150) 및 수평 조절부(160)를 포함하여 구성될 수 있다. The
성능 제어 장치(100)는 서비스 제공 서버(310)를 모니터링하여 효율적인 자원 관리를 통해 서비스 제공 서버(310)의 성능을 제어하기 위한 것으로, 서비스 제공 서버(310)의 내부에, 예를 들면 도 2의 OS(20) 내에 일 모듈 형태로 탑재될 수 있다. The
아울러, 자원은 CPU, 메모리 등 컨테이너(30)에서 응용 프로그램을 구동하기 위해 필요한 각종 하드웨어 자원들이 주로 해당될 것이나, 소프트웨어 자원을 의미할 수도 있다. In addition, the resources may be various hardware resources required to drive an application program in the
모니터링부(120)는 서비스 제공 서버(310)의 성능을 모니터링하기 위한 구성으로, 특히 상기 서비스 제공 서버(310)의 성능을 응용 프로그램을 실행하는 가상화 노드 별 성능을 모니터링하는 역할을 수행한다. 이를 위해 본 발명에 따른 모니터링부(120)는 응용 프로그램 단위로 성능을 모니터링할 수 있고, 응용 프로그램의 실행을 지원하는 가상화 노드 단위로 성능을 모니터링할 수도 있다.The
모니터링되는 성능은 서비스 제공 서버(310)에서의 자원의 활용율, 서비스 처리량, 유휴 자원 상태 등을 의미할 수 있다. The monitored performance may mean resource utilization rate, service throughput, idle resource status, etc. in the
제어부(110)는 가상화 노드의 자원 활용율에 따라 성능 조정 여부, 즉 성능 확대 또는 성능 축소 필요 여부를 판단한다. 상기 자원 활용율은 모니터링부(120)로부터 수집된다. The
예를 들어, 서비스 요청이 점차 증가함에 따라서 자원 활용율이 기 설정된 최대 임계치(제1 임계값) 이상이면, 최초 할당된 자원으로 실행되는 응용 프로그램이 과부하 상태에 이른 것으로 판단하여 성능 확대가 필요한 것으로 판단한다. 자원 활용율이 기 설정된 최소 임계치(제2 임계값) 미만이면 불필요하게 많은 자원이 할당되어 있는 것이므로, 성능 축소가 필요한 것으로 판단한다. For example, if the resource utilization rate is equal to or greater than a predetermined maximum threshold value (first threshold value) as the service request gradually increases, it is determined that the application program executed with the initially allocated resource has reached the overload state, do. If the resource utilization rate is less than the predetermined minimum threshold value (second threshold value), unnecessary resources are allocated unnecessarily, and it is judged that the performance reduction is necessary.
임계값은 해당 자원이 처리할 수 있는 성능의 최대/최소 한계를 의미하는 것으로, 자원에 따라 활용율의 임계값은 동일할 수도 있고, 상이할 수도 있다. The threshold value means the maximum / minimum limit of the performance that the resource can handle. Depending on the resource, the threshold value of the utilization ratio may be the same or may be different.
예를 들어, 자원이 CPU 자원을 의미하고, 제1 임계값이 CPU 자원 활용율 80%로 설정되었다고 할 때, 모니터링부(120)가 지속적으로 모니터링하는 상황에서, 특정 컨테이너가 최초 할당된 CPU 자원의 80% 이상을 사용하는 시점이 되면, 제어부(110)는 해당 컨테이너가 성능 확대가 필요한 것으로 판단한다. 이와 유사하게, 제2 임계값이 CPU 자원 활용율 20%로 설정되었다고 할 때, 특정 컨테이너가 최초 할당된 CPU 자원의 20% 미만을 사용하고 있다면, 불필요한 자원이 할당되어 있는 것이므로, 성능 축소가 필요한 것으로 판단한다. For example, when the resource means the CPU resource and the first threshold value is set to 80% of the CPU resource utilization rate, in a situation where the
먼저, 성능 확대가 필요한 것으로 판단된 경우에 있어서, 제어 과정을 설명한다. First, in the case where it is determined that the performance enhancement is necessary, the control process will be described.
제어부(110)는 특정 컨테이너에 성능 확대가 필요한 것으로 판단되면, 수직적 제어 정책을 선택하여 스케일 업(Scale UP)을 수행하도록 할 것인지, 수평적 제어 정책을 선택하여 스케일 아웃(Sclae OUT)을 수행하도록 할 것인지를 성능 확대가 필요하다고 판단된 그 시점의 상황에 적합하게 선택해야 한다. If it is determined that performance expansion is required for a specific container, the
본 발명은 고정된 성능 제어 정책이 아닌 상황에 따라 유동적으로 수직적 또는 수평적 제어 정책을 선택할 수 있도록 설계되는바, 이를 위해 성능 제어 지표를 도입한다. The present invention is designed to select a vertical or horizontal control policy flexibly according to a situation rather than a fixed performance control policy, and a performance control index is introduced for this purpose.
본 발명에 있어서, 성능 제어 지표는 이전에 선택된 성능 제어 정책이 현재 시점에 미치는 기여도를 수치화한 지표를 의미하며, 수직 제어 지표(α)와 수평 제어 지표(β)로 이루어진다. 성능 제어 지표는 이전 성능 제어 정책에 따라 변화된 서비스 처리량과, 이전에 투입된 처리 단위 당 서비스 처리량을 고려하여 갱신하며, 이전 시점에 투입된 자원 또는 가상화 노드 중 어느 하나와 상기 이전 시점과 현재 시점의 서비스 처리량의 변화 정도를 고려하여 갱신하되, 이전 성능 제어 정책이 수직적 제어 정책이었다면, 수직 제어 지표(α)를 갱신하고, 이전 성능 제어 정책이 수평적 제어 정책이었다면, 수평 제어 지표(β)를 갱신한다. 여기서, 투입된 처리 단위란 성능 제어 정책에 따라서 조정되는 서비스 처리 단위를 의미하는 것으로서, 각 가상화 노드에 투입된 자원의 수 혹은 가상화 노드 혹은 응용 프로그램과 같은 서비스 처리 개체의 수로 정의될 수 있다. In the present invention, the performance control index is an index obtained by quantifying the contribution of the previously selected performance control policy to the current time point, and is made up of the vertical control index alpha and the horizontal control index beta. The performance control index is updated in consideration of the service throughput changed according to the previous performance control policy and the service throughput per previously processed processing unit. The service control unit updates the service throughput of either the resource or the virtual node, Updating the vertical control index α if the previous performance control policy was a vertical control policy and updating the horizontal control index β if the previous performance control policy was a horizontal control policy. Herein, the input processing unit means a service processing unit adjusted according to the performance control policy, and can be defined as the number of resources input to each virtualization node or the number of service processing objects such as a virtualization node or an application program.
갱신 계산식은 다음의 수학식 1과 같이 표현될 수 있다. The update calculation equation can be expressed by the following equation (1).
여기서, curr은 현재 서비스 처리량을, prev는 이전 시점에서 성능 제어 정책이 선택될 당시의 서비스 처리량을, resc는 이전 시점에 투입되었던 투입된 자원의 수 혹은 가상화 노드와 같은 서비스 처리 개채의 수를 의미한다. 즉, (curr-prev)는 이전 시점에 선택된 성능 제어 정책에 따른 서비스 처리량의 변화이고, (prev/resc)는 이전에 투입된 처리 단위 당 서비스 처리량을 의미한다. 성능 제어 지표는 절대값을 의미하므로, 음수는 될 수 없다. Here, curr represents the current service throughput, prev represents the service throughput at the time when the performance control policy is selected at the previous time, and resc represents the number of the input resources or virtual service nodes such as the virtual node . That is, (curr-prev) is the change in service throughput according to the performance control policy selected at the previous time point, and (prev / resc) means the service throughput per previously processed processing unit. The performance control index means an absolute value, so it can not be negative.
예를 들면, 이전에 성능 제어 정책이 선택될 당시 시점에 서비스 제공 서버(310)에 가상화 노드 수가 5개(resc)였고, 서비스 처리량이 100(prev)이었던 상태에서, 수평적 제어 정책 선택에 따라 스케일 아웃을 하여 현재 제어가 필요한 시점에 가상화 노드 수가 6개, 서비스 처리량은 110(curr)이라고 가정하자. 이전 시점에 수평적 제어 정책을 선택하였으므로, 수평 제어 지표를 갱신하며, 수평 제어 지표 β는 (110-100)/(100/5)의 계산에 따라 0.5가 된다. 제어부(110)는 이전 상태의 수직 제어 지표와 현재 갱신된 수평 제어 지표의 크기를 비교하여, α≥β 인 경우 수직 제어 정책을 선택하여 수직 조절부(150)를 제어하고, α<β인 경우 수평 제어 정책을 선택하여 수평 조절부(160)를 제어하도록 한다. For example, in the state where the number of virtualization nodes is 5 (resc) and the service throughput is 100 (prev) in the
α, β의 값 자체는 제어 정책을 선택하는 데 있어서 중요하지 않으며, 오직 절대적인 크기만을 비교하여 제어 정책을 선택한다. 따라서, 상기 α, β의 초기 값은 임의로 설정될 수 있으며, 다만 해당 서비스 제공 서버(310)에 최초로 적용하고자 설정된 성능 제어 정책에 따라서 α, β 중 어느 것을 크게 할 지가 결정될 수 있다. The values of α and β themselves are not important in selecting the control policy, and only the absolute magnitudes are compared to select the control policy. Therefore, the initial values of? And? May be set arbitrarily, but it may be determined which of? And? Is to be increased according to the performance control policy set to be applied to the
아울러, 다음 판단 시 사용할 수 있도록, 갱신된 성능 제어 지표, 선택된 성능 제어 정책을 저장부(130)에 저장하며, 모니터링된 서비스 처리량 또한 저장부(130)에 저장하도록 한다. In addition, the updated performance control index and the selected performance control policy are stored in the
전술한 바와 같이, 설명의 편의를 위해, 서비스 제공 서버(310)에서 처리하는 서비스가 하나인 것으로 가정한 것이며, 만약 일반적인 시스템에서, 노드 별로 처리하는 서비스가 다른 경우에는, 서비스 별로 α, β의 쌍이 존재할 수 있다. As described above, for convenience of explanation, it is assumed that there is one service to be processed by the
성능 축소가 필요한 것으로 판단된 경우의 제어 과정은 성능 확대의 경우보다 간단하게 이루어 질 수 있다. The control process when it is judged that the performance reduction is necessary can be made simpler than the case of the performance expansion.
지속적인 모니터링 결과에 따라, 오히려 서비스 요청이 줄어들어 성능 축소가 필요하다고 판단되면, 성능 제어 지표를 갱신할 필요는 없으며, 이전 시점의 성능 확대를 위한 제어 정책이, 즉 가장 최근의 성능 확대 제어 정책이 수직적 제어 정책이었던 경우에는, 동일하게 수직적 제어 정책을 선택하여 수직 조절부(150)를 제어하도록 하고, 가장 최근의 성능 확대 제어 정책이 수평적 제어 정책이었던 경우에는 수평적 제어 정책을 선택하여 수평 조절부(160)를 제어하도록 한다. It is not necessary to update the performance control index if it is determined that the reduction of performance is required due to the decrease of the service request according to the result of the continuous monitoring. The control policy for expanding the performance at the previous time, that is, If the policy is the control policy, the
한편, 서비스 제공 서버(310) 상에서 최초로 성능 제어가 필요하다고 판단된 시점에는 이전에 선택된 성능 제어 정책이 없으므로, 수직 제어 지표 또는 수평 제어 지표를 갱신할 수가 없다. 따라서 최초의 성능 제어 시점에는 시스템 관리자에 의해 초기 값으로 설정해둔 수직 제어 지표 및 수평 제어 지표의 크기 비교만을 이용하여 현재 시점에 적합한 성능 제어 정책을 선택하도록 할 수 있다.On the other hand, when it is determined that the performance control is required for the first time on the
요컨대, 서비스 제공 서버(310)은 성능 제어 지표에 따라 수직 조절부(150) 또는 수평 조절부(160)를 조절하여 스케일 업/다운/아웃/인(UP/DOWN/OUT/IN)의 수직 또는 수평적 성능 제어를 모두 수행할 수가 있는데, 초기 성능 제어 지표를 어떻게 설정하느냐에 따라 서비스 제공 서버(310)을 기존의 고정적인 방식으로도 이용할 수가 있다.In other words, the
예를 들어, 성능 제어 지표의 초기 값으로, α=1, β=0.99 라고 설정하게 되면, 서비스 제공 서버(310)은 수직적 확장 제어 정책을 우선 따르면서, 모니터링 결과에 따라 4가지의 성능 확대/축소를 할 수 있다. α=0.99, β=1 로 설정하게 되면, 서비스 제공 서버(310)은 수평적 확장 제어 정책을 우선 따르게 된다. 만약, α=0, β=1로 설정하게 되면, 서비스 제공 서버(310)은 수평적 제어 정책만을 수행하게 된다. 왜냐하면, 자원 또는 노드가 추가되면 시스템의 성능은 변화 정도가 미미하더라도 성능의 변화량은 0보다는 클 수 밖에 없기 때문에 β가 α보다 항상 크기 때문이다. 따라서, α와 β는 반드시 양의 실수로 설정되어야 한다. For example, if? = 1 and? = 0.99 are set as the initial values of the performance control indexes, the
이처럼, 본 발명에 따른 성능 제어 장치(100)는 성능 제어 지표를 초기에 어떻게 설정해두냐에 따라서, 서비스 제공 서버(310)을 수직적 제어 정책 전용 시스템으로 동작하도록 할 수도 있고, 수평적 제어 정책 전용 시스템으로 동작하도록 할 수도 있으며, 수평/수직의 성능 제어를 모두 수행할 수 있는 시스템으로 동작하도록 할 수도 있는 것이다. In this way, the
저장부(130)는 성능 제어 장치(100)의 구동에 필요한 프로그램을 저장할 수 있고, 성능 확대 또는 축소의 성능 제어 여부가 필요한지 판단하는 기준점인 임계값을 저장하고 있으며, 초기 성능 제어 지표 값도 저장하고 있다. The
상술한 바와 같이, 서비스 제공 서버(310) 상에서 최초로 성능 제어가 필요하다고 판단된 시점에는 이전에 선택된 성능 제어 정책이 없으므로, 수직 제어 지표 또는 수평 제어 지표를 갱신할 수가 없기 때문에 최초의 성능 제어 시점에는 시스템 관리자에 의해 미리 설정해둔 수직 제어 지표 및 수평 제어 지표의 크기 비교만을 이용하여 현재 시점에 적합한 성능 제어 정책을 선택할 수 있도록 성능 제어 지표의 초기 값을 저장하고 있다. As described above, since it is not possible to update the vertical control index or the horizontal control index because there is no previously selected performance control policy at the time when it is determined that performance control is required for the first time on the
한편, 전술한 바와 같이, 서비스 제공 서버(310)에서 처리하는 서비스가 다수인 경우에는, 처리하는 서비스 별로 성능 제어 지표의 초기 값을 달리 설정할 수 있다.Meanwhile, as described above, when there are a plurality of services to be processed by the
또한, 저장부(130)는 성능 제어 지표 갱신에 이용할 수 있도록 모니터링 되는 서비스 처리량과 갱신된 성능 제어 지표, 성능 제어 정책 이력을 더 저장할 수 있다. In addition, the
이전 시점의 서비스 처리량, 성능 제어 지표, 제어 쟁책이 현재 시점의 제어 정책을 판단하는 데에 이용되는 방식이므로, 상기의 값들은 스택(stack)을 이용하여 관리되도록 할 수 있다. Since the service throughput, the performance control index, and the control solution at the previous time are used to determine the current control policy, the above values may be managed using a stack.
스택은 후입선출(FILO, First IN Last OUT) 방식의 자료 구조로, 가장 최근에 입력된 것이 가장 먼저 나오게 되므로, 현재 성능 제어가 필요하다고 판단된 시점에 스택의 TOP에 바로 이전 시점의 서비스 처리량, 갱신된 성능 제어 지표, 선택된 성능 제어 정책이 저장되어 있는 구조가 된다. 따라서, 용이하게 이전 시점의 자료들을 파악할 수가 있어 자원과 관련된 이력 관리를 수월하게 할 수 있게 된다. The stack is a data structure of FILO (First IN Last OUT) method. Since the latest input is the first to be inputted, when the current performance control is determined to be necessary, the service throughput, The updated performance control indicator, and the selected performance control policy are stored. Therefore, it is possible to easily grasp the data at the previous time point, thereby facilitating the management of the history related to the resource.
수직 조절부(150)는 제어부(110)에서 수직적 제어 정책이 선택된 경우, 제어부의 제어에 따라서, 스케일 업/다운을 수행한다. 즉, 스케일 업에 의해 컨테이너에 자원을 추가하거나 스케일 다운에 의해 추가되었던 자원을 회수한다. When the vertical control policy is selected in the
수평 조절부(160)는 제어부(110)에서 수평적 제어 정책이 선택된 경우, 제어부의 제어에 따라서, 스케일 아웃/인을 수행한다. 즉, 스케일 아웃에 의해 새로운 컨테이너(30)를 생성함으로써 특정 컨테이너에 몰린 서비스 요청을 분산시키거나, 스케일 인에 의해 생성된 컨테이너를 삭제한다.When the horizontal control policy is selected in the
부하 분배부(140)는 사용자 단말(200)의 서비스 요청을 서비스 제공 서버(310)의 다수의 컨테이너(30)에 분배해 주는 역할을 수행한다. 이는 서비스 제공 서버(310)의 분배 정책에 따라 수행될 수 있다. The
또한, 제어부(110)의 판단에 따라, 성능 제어가 필요한 것으로 판단되어 수직 조절부(150) 또는 수평 조절부(160)에 의해 자원 혹은 컨테이너가 조절된 경우에는, 조절된 자원에 맞게 서비스 요청에 따른 작업 부하를 분산시킨다. When it is determined that the performance control is required according to the determination of the
도 5 내지 도 7은 본 발명의 실시 예에 따른 가상화 환경에서의 성능 제어 방법을 설명하기 위한 예시도이다. 5 to 7 are diagrams for explaining a performance control method in a virtualization environment according to an embodiment of the present invention.
먼저, 도 5와 같이 하드웨어(10)와 컨테이너 1(31), 컨테이너 2(32)의 복수 개의 컨테이너가 있으며, 각 컨테이너에는 서비스 제공 서버(310)의 하드웨어 자원이 할당되어 있다. 5, there are a plurality of containers of the
도면에서는 설명의 편의를 위해 컨테이너 1(31), 컨테이너2(32)만을 도시하였으나, 컨테이너의 개수는 이에 한정되는 것은 아니고, 하드웨어 자원을 자원 1, 자원 2와 같이 셀 수 있는 개념으로 도시하였으나, 이에 한정되는 것은 아니며, 자원이 CPU 자원일 경우에는 CPU의 수를 의미할 수도 있고, 메모리일 경우에는 메모리에서 차지하는 용량을 의미할 수도 있으며, 또한 자원은 하드웨어 자원에 한정되지 않고, 소프트웨어 자원이 될 수도 있다. Although only the container 1 31 and the container 2 32 are shown in the figure for convenience of description, the number of containers is not limited to this, and hardware resources can be counted as resources 1 and 2, The present invention is not limited to this. It may mean the number of CPUs when the resource is a CPU resource, the capacity occupied by the memory when the resource is a memory, and the resource is not limited to hardware resources. It is possible.
도 5와 같이 컨테이너 1(31)에는 자원 1이 할당되어 있고, 컨테이너 2(32)에는 자원 3이 할당되어 있으며, 성능 제어 장치(100)는 이러한 서비스 제공 서버(310)을 모니터링하여 임계값과의 비교를 통해 성능 제어가 필요한 시점을 판단하게 된다.The resource 1 is allocated to the container 1 31 and the resource 3 is allocated to the container 2 32. The
특정 시점에 서비스 요청이 몰리면서, 컨테이너 1(31)의 자원 활용율이 기 설정된 제1 임계값 이상이 되었다고 가정하면, 성능 제어 장치(100)는 성능 확대가 필요한 것으로 판단하게 된다. Assuming that a service request is collected at a specific point in time and that the resource utilization rate of the
성능 확대가 필요한 경우에는, 성능 제어 지표를 갱신하여, 적합한 성능 제어 정책을 선택하게 되는데, 본 발명의 성능 제어 장치(100)는 이전 시점의 선택의 결과가 현재 시점에 미치는 영향을 고려하여 제어 정책을 결정하는 바, 성능 제어 장치(100)의 저장부(130)에서 관리되는 자원 이력에 대한 스택으로부터 서비스 처리량과 이전 시점에 추가된 자원 혹은 컨테이너를 읽어와 성능 제어 지표를 갱신하게 된다. If performance enhancement is required, the performance control index is updated to select an appropriate performance control policy. The
전술한 바와 같이, 이전 시점에 선택된 제어 정책이 수직적 제어 정책인 경우에는 수직 제어 지표 α를 갱신하고, 그렇지 않은 경우에는 수평 제어 지표 β를 갱신한다. As described above, when the control policy selected at the previous time is a vertical control policy, the vertical control index? Is updated, and if not, the horizontal control index? Is updated.
성능 제어 지표의 비교를 통해서, 현재 시점에 적합한 성능 제어 정책을 선택하는데, 수직적 제어 정책을 선택하는 경우에는 도 6과 같은 결과가 되고, 수평적 제어 정책을 선택하는 경우에는 도 7과 같이 변경될 수 있다. A performance control policy suitable for the present time is selected through comparison of the performance control indexes. In the case of selecting a vertical control policy, the result is as shown in FIG. 6. In the case of selecting a horizontal control policy, .
즉, 수직 제어 지표가 수평 제어 지표보다 크거나 같아서 수직적 제어 정책이 선택된 경우, 도 6과 같이 수직 조절부(150)를 통해 컨테이너 1(31)에 자원 2가 추가로 할당되도록 한다. 더하여, 부하 분배부(140)는 서비스 제공 서버(310)의 분배 정책에 적합하게, 자원이 추가된 컨테이너 1(31)과 다른 컨테이너 2(32)에 작업 부하를 분산시켜 사용자 단말(200)의 서비스 요청이 처리되도록 할 수 있다. That is, when the vertical control index is equal to or greater than the horizontal control index and the vertical control policy is selected, resource 2 is additionally allocated to the container 1 (31) through the
한편, 수평 제어 지표가 수직 제어 지표보다 커서 수평적 제어 정책이 선택된 경우에는 도 7과 같이 새로운 컨테이너인 컨테이너 3(33)을 생성함으로써 작업 부하를 분배한다. 이 때, 부하 분배부(140)는 기존에 컨테이너 1(31)로 분배되던 작업 부하를 새로 생성된 컨테이너 3(33)으로 분산시킬 수 있다. On the other hand, when the horizontal control index is larger than the vertical control index and the horizontal control policy is selected, the work load is distributed by creating the container 3 (33), which is a new container as shown in FIG. At this time, the
본 발명의 성능 제어 장치(100)는 모니터링 결과, 성능의 확대가 필요한 컨테이너가 여러 개인 상황에서 유휴 자원이 부족할 경우에는 컨테이너 간의 우선순위를 고려하여 유휴 자원을 먼저 할당 하도록 제어할 수도 있다. The
이와 같이 본 발명에 따른 성능 제어 장치(100)는 가상화 처리 개체인 컨테이너의 성능에 따라 자원을 추가하거나 컨테이너를 생성함으로써 또는 그 반대로 자원을 회수하거나 컨테이너를 삭제함으로써 유연하게 성능 제어를 수행할 수 있다. As described above, the
아울러, 본 발명의 성능 제어 장치(100)는 컨테이너과 같은 가상화 노드 단위로 성능을 모니터링하는 것으로 설명하였으나, 응용 프로그램(APP) 각각의 성능을 모니터링하고 응용 프로그램 단위로 각각 자원을 관리하여 성능을 제어할 수도 있다. In addition, although the
이상으로 본 발명의 실시 예에 따른 가상화 환경에서의 성능 제어 방법을 지원하는 장치인 성능 제어 장치(100)의 주요 구성 및 동작 방법에 대해 설명하였다. The main configuration and operation method of the
비록 본 명세서와 도면에서는 예시적인 장치 구성을 기술하고 있지만, 본 명세서에서 설명하는 기능적인 동작과 주제의 구현물들은 다른 유형의 디지털 전자 회로로 구현되거나, 본 명세서에서 개시하는 구조 및 그 구조적인 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어 혹은 하드웨어로 구현되거나, 이들 중 하나 이상의 결합으로 구현 가능하다. 본 명세서에서 설명하는 주제의 구현물들은 하나 이상의 컴퓨터 프로그램 제품, 다시 말해 본 발명에 따른 장치의 동작을 제어하기 위하여 혹은 이것에 의한 실행을 위하여 유형의 프로그램 저장매체 상에 인코딩된 컴퓨터 프로그램 명령에 관한 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터로 판독 가능한 매체는 기계로 판독 가능한 저장 장치, 기계로 판독 가능한 저장 기판, 메모리 장치, 기계로 판독 가능한 전파형 신호에 영향을 미치는 물질의 조성물 혹은 이들 중 하나 이상의 조합일 수 있다.Although the present specification and drawings describe exemplary device configurations, the functional operations and subject matter implementations described herein may be embodied in other types of digital electronic circuitry, or alternatively, of the structures disclosed herein and their structural equivalents May be embodied in computer software, firmware, or hardware, including, or in combination with, one or more of the foregoing. Implementations of the subject matter described herein may be embodied in one or more computer program products, i. E. One for computer program instructions encoded on a program storage medium of the type for < RTI ID = 0.0 & And can be implemented as a module as described above. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter that affects the machine readable propagation type signal, or a combination of one or more of the foregoing.
이하, 본 발명의 실시 예에 따른 가상화 환경에서의 성능 제어 방법에 대해 설명하도록 한다.Hereinafter, a performance control method in a virtualization environment according to an embodiment of the present invention will be described.
도 8 내지 도 10은 본 발명의 실시 예에 따른 가상화 환경에서의 성능 제어 방법을 설명하기 위한 흐름도이다.8 to 10 are flowcharts for explaining a performance control method in a virtualization environment according to an embodiment of the present invention.
도 8을 참조하면, 성능 제어 장치(100)가 응용 프로그램의 실행을 위한 가상화 노드를 모니터링하며(S401), 모니터링 결과에 따라 자원 활용율을 기 설정된 제1 임계값과 비교하여(S403), 제1 임계값 이상인 경우 성능 확대가 필요한 것으로 판단한다(S405). 지속적으로 모니터링을 수행하여(S407), 자원 활용율이 제2 임계값보다 작아지는 시점이 오면(S409), 성능 축소가 필요한 것으로 판단한다(S411).Referring to FIG. 8, the
성능 확대의 제어 과정을 도 9를 참조하여 설명하면, 먼저 성능 확대를 위해서 유휴 자원이 존재하는지를 고려한다(S501). 유휴 자원이 존재하지 않는다면, 성능 제어 장치(100)는 유휴 자원이 발생될 때까지 대기하면서, 지속적으로 모니터링을 수행할 수 있다.Referring to FIG. 9, the process of controlling the performance expansion will be described. First, it is considered whether idle resources are present for performance enhancement (S501). If there is no idle resource, the
유휴 자원이 존재하는 경우에는, 이전의 성능 제어 정책을 고려하는데(S503), 성능 제어 장치(100)의 저장부(130)에 의해 관리되는 성능 제어 정책 이력 스택에서 이전 시점의 성능 제어 정책을 읽어와서 성능 제어 정책을 결정할 수 있다.If the idle resource exists, the previous performance control policy is considered (S503), and the performance control policy of the previous time is read in the performance control policy history stack managed by the
이전 성능 제어 정책이 수직적 제어 정책이었다면, 수직 제어 지표 α를 갱신하고(S505), 수평적 제어 정책이었다면, 수평 제어 지표 β를 갱신하며(S507), α와 β의 비교를 수행하여(S509), α가 β보다 크거나 같은 경우에는 수직 제어 정책을 선택하고(S511), 그렇지 않은 경우에는 수평 제어 정책을 선택한다(S515). 한편, 성능 확대가 필요하다고 판단된 최초의 시점이어서 저장된 이전 정책이 없는 경우에는 갱신할 제어 지표가 없으므로 바로 S509 단계를 수행한다.If the previous performance control policy was a vertical control policy, the vertical control index alpha is updated (S505). If the previous performance control policy was a horizontal control policy, the horizontal control index beta is updated (S507) If? is greater than or equal to?, the vertical control policy is selected (S511). Otherwise, the horizontal control policy is selected (S515). On the other hand, if there is no previous policy stored since the first time it is determined that the performance expansion is necessary, step S509 is performed because there is no control index to be updated.
다음 시점의 성능 제어를 위하여, 갱신된 성능 제어 지표와 선택된 제어 정책, 현재 시점의 모니터링된 서비스 처리량 등은 저장부(130)에 저장한다.For the performance control at the next time point, the updated performance control indicator, the selected control policy, the monitored service throughput at the current time, and the like are stored in the
수직 제어 정책이 선택되면, 수직 조절부(150)를 제어하여 Scale UP 수행에 의해 해당 가상화 노드에 자원이 추가되도록 하고(S513), 수평 제어 정책이 선택되면, 수평 조절부(160)를 제어하여 Scale OUT 수행에 의해 가상화 노드를 추가로 신설하여 부하가 발생된 가상화 노드의 부하를 분산시킬 수 있도록 한다(S517). When the vertical control policy is selected, the
성능 축소의 제어 과정을 도 10을 참조하여 설명하면, 먼저 이전 정책을 고려하는데(S601), 이전 시점에 수직 제어 정책에 따라 Scale UP을 수행하여 자원이 추가된 경우에는 역으로 추가된 자원이 회수될 수 있도록 수직 제어 정책을 선택하여 수직 조절부(150)의 제어를 통해 Scale DOWN을 수행한다(S603, 605). 10, the previous policy is considered first (S601). In the case where a resource is added by performing a scale UP according to a vertical control policy at a previous time point, The
반면에, 이전 시점에 수평 제어 정책에 따라 Scale OUT을 수행하여 가상화 노드가 신설된 경우에는 역으로 신설된 가상화 노드가 삭제될 수 있도록 수평 제어 정책을 선택하여 수평 조절부(160)의 제어를 통해 Scale IN을 수행한다(S607, S609).On the other hand, if the virtualization node is newly installed by performing Scale OUT according to the horizontal control policy at the previous time point, the horizontal control policy is selected so that the newly created virtualization node can be deleted, Scale IN is performed (S607, S609).
이상으로 본 발명의 실시 예에 따른 가상화 환경에서의 성능 제어 방법에 대해 설명하였다. The performance control method in the virtualization environment according to the embodiment of the present invention has been described above.
여기서, 흐름도의 각 단계는 컴퓨터 프로그램 명령어에 의해 수행될 수 있음을 이해하여야 한다. 이들 컴퓨터 프로그램 명령어들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 명령어들이 흐름도 구성(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 또한, 이들 컴퓨터 프로그램 명령어들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능한 기록매체에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능한 기록매체에 저장된 명령어들은 흐름도 구성(들)에서 설명된 기능을 수행하는 명령어 수단을 내포하는 제조 품목을 생산하는 것도 가능하다.It should be understood that each step of the flowchart may be performed by computer program instructions. These computer program instructions may be loaded into a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus, so that those instructions, which are executed through a processor of a computer or other programmable data processing apparatus, Thereby creating means for performing functions. These computer program instructions may also be stored on a computer usable or computer readable recording medium capable of directing a computer or other programmable data processing apparatus to implement a function in a particular manner, It is also possible for the instructions stored in the readable recording medium to produce an article of manufacture containing instruction means for performing the functions described in the flowchart (s).
여기서, 컴퓨터 이용 가능 또는 판독 가능한 기록매체는 예컨대, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM, Read Only Memory), 램(RAM, Random Access Memory), 플래시 메모리, EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM)과 같은 반도체 메모리를 포함한다. 프로세서와 메모리는 특수 목적의 논리 회로에 의해 보충되거나, 그것에 통합될 수 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Here, the computer-usable or readable recording medium may be, for example, a magnetic medium such as a hard disk, a floppy disk and a magnetic tape, a CD-ROM (Compact Disk Read Only Memory), a DVD A magneto-optical medium such as a floppy disk, a magneto-optical medium such as a floppy disk and a magneto-optical medium such as a floppy disk, a ROM, a read only memory, a random access memory, (Erasable Programmable ROM), and EEPROM (Electrically Erasable Programmable ROM). The processor and memory may be supplemented by, or incorporated in, special purpose logic circuits. Examples of program instructions may include machine language code such as those generated by a compiler, as well as high-level language code that may be executed by a computer using an interpreter or the like. Such a hardware device may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
또한, 컴퓨터 프로그램 명령어들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 명령어들은 흐름도 구성(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.It is also possible that computer program instructions may be loaded onto a computer or other programmable data processing equipment so that a series of operating steps may be performed on a computer or other programmable data processing equipment to create a computer- It is also possible for the instructions to perform possible data processing equipment to provide steps for executing the functions described in the flow diagram construction (s).
본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.While the specification contains a number of specific implementation details, it should be understood that they are not to be construed as limitations on the scope of any invention or claim, but rather on the description of features that may be specific to a particular embodiment of a particular invention Should be understood. Certain features described herein in the context of separate embodiments may be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented in multiple embodiments, either individually or in any suitable subcombination. Further, although the features may operate in a particular combination and may be initially described as so claimed, one or more features from the claimed combination may in some cases be excluded from the combination, Or a variant of a subcombination.
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징 될 수 있다는 점을 이해하여야 한다.Likewise, although the operations are depicted in the drawings in a particular order, it should be understood that such operations must be performed in that particular order or sequential order shown to achieve the desired result, or that all illustrated operations should be performed. In certain cases, multitasking and parallel processing may be advantageous. Also, the separation of the various system components of the above-described embodiments should not be understood as requiring such separation in all embodiments, and the described program components and systems will generally be integrated together into a single software product or packaged into multiple software products It should be understood.
본 기술한 설명은 본 발명의 최상의 모드를 제시하고 있으며, 본 발명을 설명하기 위하여, 그리고 당업자가 본 발명을 제작 및 이용할 수 있도록 하기 위한 예를 제공하고 있다. 이렇게 작성된 본 명세서와 도면에 개시된 본 발명의 실시 예들은 이해를 돕기 위해 특정 예를 제시한 것에 지나지 않으며, 본 발명의 범위를 한정하고자 하는 것은 아니다. The description sets forth the best mode of the invention, and is provided to illustrate the invention and to enable those skilled in the art to make and use the invention. The embodiments of the present invention described in the present specification and drawings are merely given specific examples for the purpose of understanding and are not intended to limit the scope of the present invention.
본 발명은 가상화 환경에서의 성능 제어 방법에 관한 것으로, 응용 프로그램 실행을 위한 가상화 노드의 성능을 모니터링하여, 모니터링 결과에 따라, 현재 시점에 적합한 제어 정책을 선택하여, 스케일 업/다운/아웃/인의 4가지 방식에 따라 보다 유연하게 성능 제어를 수행할 수 있으며, 이를 통해 본 발명은 가상화 환경 기반의 서비스 산업의 발전에 이바지 할 수 있다. The present invention relates to a performance control method in a virtualized environment, in which performance of a virtualization node for executing an application program is monitored, and a control policy suitable for the current time is selected according to a monitoring result to control a scale up / down / The performance control can be more flexibly performed according to the four methods, and the present invention can contribute to the development of the service industry based on the virtual environment.
아울러, 본 발명은 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있다.In addition, the present invention has a possibility of commercial use or business, and is industrially applicable because it is practically possible to carry out clearly.
100: 성능 제어 장치 110: 제어부
120: 모니터링부 130: 저장부
140: 부하 분배부 150: 수직 조절부
160: 수평 조절부 200: 사용자 단말
300, 310, 320: 서비스 제공 서버100: performance control device 110:
120: monitoring unit 130:
140: load distributor 150: vertical regulator
160: horizontal adjustment unit 200: user terminal
300, 310, and 320: a service providing server
Claims (16)
가상화 노드의 처리 성능에 영향을 미치지는 자원을 추가하거나 회수하는 수직적 제어 정책의 기여도를 나타내는 수직 제어 지표 및 상기 가상화 노드의 처리 성능에 영향을 미치지는 자원을 추가하거나 회수하는 수평적 제어 정책의 기여도를 나타내는 수평 제어 지표를 포함하는 성능 제어 지표를 설정하는 단계;
가상화 노드의 자원 활용율에 따라 성능 확대 또는 성능 축소를 포함하는 성능 제어 필요 여부를 판단하는 단계;
성능 제어가 필요한 것으로 판단되면, 이전 성능 제어 정책의 적용에 따라서 상기 수직 제어 지표 또는 수평 제어 지표를 갱신하는 단계; 및
상기 수직 제어 지표와 수평 제어 지표를 비교하여 그 비교 결과에 따라서, 수직적 제어 정책 및 수평적 제어 정책 중 하나의 성능 제어 정책을 선택하는 단계;
를 포함하는 것을 특징으로 하는 성능 제어 방법.A performance control method for controlling performance of a service providing server that processes a service request of a user terminal through one or more virtualization nodes,
A vertical control indicator indicating the contribution of the vertical control policy to add or retrieve resources that affect the processing performance of the virtualization node and the contribution of the horizontal control policy to add or retrieve resources that affect the processing performance of the virtualization node Setting a performance control indicator including a horizontal control indicator that indicates a performance indicator;
Determining whether performance control including performance enhancement or performance reduction is required according to resource utilization rate of the virtualization node;
Updating the vertical control index or the horizontal control index according to application of the previous performance control policy, if it is determined that performance control is required; And
Comparing the vertical control index with a horizontal control index and selecting one of a vertical control policy and a horizontal control policy according to the comparison result;
≪ / RTI >
상기 서비스 제공 서버의 가상화 노드 별로 서비스 처리량 및 자원 활용율을 모니터링하는 단계;
를 더 포함하는 것을 특징으로 하는 성능 제어 방법.The method according to claim 1,
Monitoring service throughput and resource utilization rate for each virtualization node of the service providing server;
Lt; RTI ID = 0.0 > 1, < / RTI >
해당 가상화 노드의 자원 활용율이 기 설정된 제1 임계값 이상인 경우, 성능 확대가 필요한 것으로 판단하고, 상기 자원 활용율이 기 설정된 제2 임계값 미만인 경우, 성능 축소가 필요한 것으로 판단하는 것을 특징으로 하는 성능 제어 방법.2. The method according to claim 1,
And determines that performance reduction is necessary when the resource utilization rate of the virtualization node is greater than or equal to a predetermined first threshold value and determines that performance reduction is necessary when the resource utilization rate is less than a predetermined second threshold value Way.
상기 판단하는 단계에서 성능 확대가 필요한 것으로 판단된 경우에 상기 수직 제어 지표와 수평 제어 지표를 비교하여 그 비교 결과에 따라서 수직적 제어 정책 또는 수평적 제어 정책을 선택하는 것을 특징으로 하는 성능 제어 방법.2. The method of claim 1, wherein selecting the performance control policy comprises:
Wherein the vertical control index and the horizontal control index are compared with each other when it is determined that the performance enhancement is needed, and the vertical control policy or the horizontal control policy is selected according to the comparison result.
상기 수직 제어 지표가 수평 제어 지표보다 크거나 같은 경우, 수직적 제어 정책을 선택하고, 그렇지 않은 경우에 수평적 제어 정책을 선택하는 것을 특징으로 하는 성능 제어 방법. 5. The method of claim 4, wherein selecting the performance control policy comprises:
Selecting a vertical control policy if the vertical control index is greater than or equal to a horizontal control index, and selecting a horizontal control policy if not.
상기 이전 성능 제어 정책에 따라 변화된 서비스 처리량과 이전에 투입된 처리 단위 당 서비스 처리량을 고려하여 상기 수평 제어 지표 및 수직 제어 지표를 산출하는 것을 특징으로 하는 성능 제어 방법. 2. The method of claim 1, wherein the updating comprises:
Wherein the horizontal control index and the vertical control index are calculated in consideration of a service throughput changed according to the previous performance control policy and a service throughput per previously input processing unit.
상기 성능 제어 정책을 선택하는 단계는,
상기 판단하는 단계에서 성능 축소가 필요한 것으로 판단된 경우, 이전 성능 제어 정책과 동일한 성능 제어 정책을 선택하는 것을 특징으로 하는 성능 제어 방법.The method according to claim 1,
Wherein selecting the performance control policy comprises:
And selecting the same performance control policy as the previous performance control policy if it is determined in the determining step that performance reduction is necessary.
상기 선택된 성능 제어 정책에 따라, 상기 가상화 노드의 성능을 제어하는 단계를 더 포함하는 것을 특징으로 하는 성능 제어 방법.The method according to claim 1,
Further comprising controlling performance of the virtualization node according to the selected performance control policy.
상기 판단하는 단계에서 성능 확대가 필요한 것으로 판단된 것으로서, 수직적 제어 정책이 선택된 경우, 상기 가상화 노드에 자원을 추가하고, 수평적 제어 정책이 선택된 경우, 새로운 가상화 노드를 생성하고,
상기 판단하는 단계에서 성능 축소가 필요한 것으로 판단된 것으로서, 수직적 제어 정책이 선택된 경우, 상기 가상화 노드에 추가된 자원을 회수하고, 수평적 제어 정책이 선택된 경우 상기 가상화 노드를 삭제하는 것을 특징으로 하는 성능 제어 방법. 9. The method of claim 8,
Wherein when a vertical control policy is selected, resources are added to the virtualization node, and when a horizontal control policy is selected, a new virtualization node is created,
Wherein when a vertical control policy is selected, resources added to the virtualization node are recovered, and when the horizontal control policy is selected, the virtualization node is deleted. Control method.
가상화 노드의 처리 성능에 영향을 미치지는 자원을 추가하거나 회수하는 수직적 제어 정책의 기여도를 나타내는 수직 제어 지표 및 상기 가상화 노드의 처리 성능에 영향을 미치지는 자원을 추가하거나 회수하는 수평적 제어 정책의 기여도를 나타내는 수평 제어 지표를 포함하는 성능 제어 지표를 설정하고, 가상화 노드의 자원 활용율에 따라 성능 확대 또는 성능 축소를 포함하는 성능 제어 필요 여부를 판단하여, 성능 제어가 필요한 경우, 이전 적용된 성능 제어 정책에 따라서 상기 성능 제어 지표를 갱신하고, 상기 수직 제어 지표와 수평 제어 지표를 비교하여, 비교 결과에 따라 수직적 제어 정책 및 수평적 제어 정책 중 하나의 성능 제어 정책을 선택하는 제어부; 및
상기 제어부에 의해 선택되는 성능 제어 정책 이력을 저장하는 저장부;
를 포함하는 것을 특징으로 하는 가상화 환경에서의 성능 제어 장치.1. A performance control apparatus for controlling performance of a service providing server that processes a service request of a user terminal through one or more virtualization nodes,
A vertical control indicator indicating the contribution of the vertical control policy to add or retrieve resources that affect the processing performance of the virtualization node and the contribution of the horizontal control policy to add or retrieve resources that affect the processing performance of the virtualization node , And determines whether performance control including performance enhancement or performance reduction is required according to the resource utilization rate of the virtualization node. If performance control is required, the performance control policy including the performance control policy A controller for updating the performance control index, comparing the vertical control index with a horizontal control index, and selecting one of a vertical control policy and a horizontal control policy according to a comparison result; And
A storage unit for storing a performance control policy history selected by the control unit;
And a controller for controlling the performance in the virtual environment.
상기 가상화 노드의 서비스 처리량 및 자원 활용율을 모니터링하는 모니터링부;
를 더 포함하는 것을 특징으로 하는 성능 제어 장치. 13. The method of claim 12,
A monitoring unit monitoring a service throughput and a resource utilization rate of the virtualization node;
Further comprising: a memory for storing the performance control information.
상기 제어부에 의해 수직적 제어 정책이 선택되면, 가상화 노드에 자원을 추가하거나 회수하는 수직 조절부;
상기 제어부에 의해 수평적 제어 정책이 선택되면, 가상화 노드를 생성하거나 삭제하는 수평 조절부; 및
상기 서비스 요청에 따른 작업 부하를 상기 서비스 제공 서버의 분배 정책에 따라 상기 수직 조절부 및 수평 조절부에 의해 성능 확대 혹은 축소된 가상화 노드들에 분배하는 부하 분배부;
를 더 포함하는 것을 특징으로 하는 성능 제어 장치.13. The method of claim 12,
A vertical adjustment unit for adding or retrieving resources to the virtualization node when the control unit selects the vertical control policy;
A horizontal adjustment unit for creating or deleting a virtual node when the horizontal control policy is selected by the controller; And
A load distribution unit for distributing the workload according to the service request to the virtual nodes expanded or reduced in performance by the vertical adjustment unit and the horizontal adjustment unit according to a distribution policy of the service providing server;
Further comprising: a memory for storing the performance control information.
상기 제어부는,
상기 가상화 노드의 성능 확대가 필요한 것으로 판단된 경우, 상기 수직 제어 지표 및 수평 제어 지표의 비교 결과에 따라서 수직적 제어 정책 및 수평적 제어 정책 중 하나를 선택하는 것을 특징으로 하는 성능 제어 장치. 13. The method of claim 12,
Wherein,
And selects one of a vertical control policy and a horizontal control policy according to a result of the comparison between the vertical control index and the horizontal control index when it is determined that the performance enhancement of the virtualization node is necessary.
상기 제어부는,
상기 가상화 노드의 성능 축소가 필요한 것으로 판단된 경우, 이전 성능 제어 정책과 동일한 성능 제어 정책을 선택하는 것을 특징으로 하는 성능 제어 장치.13. The method of claim 12,
Wherein,
And selects the same performance control policy as the previous performance control policy if it is determined that performance degradation of the virtualization node is necessary.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170022853A KR101896497B1 (en) | 2017-02-21 | 2017-02-21 | Method and appratus for performance control |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170022853A KR101896497B1 (en) | 2017-02-21 | 2017-02-21 | Method and appratus for performance control |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180096310A KR20180096310A (en) | 2018-08-29 |
KR101896497B1 true KR101896497B1 (en) | 2018-09-07 |
Family
ID=63434915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170022853A KR101896497B1 (en) | 2017-02-21 | 2017-02-21 | Method and appratus for performance control |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101896497B1 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102284264B1 (en) * | 2019-11-14 | 2021-08-02 | 에스피테크놀러지 주식회사 | Cloud system and control method thereof |
KR102510650B1 (en) * | 2020-12-14 | 2023-03-20 | 한국전자기술연구원 | System and method for analysising data based on ondevice |
KR102274610B1 (en) * | 2020-12-24 | 2021-07-07 | (주)비디오몬스터 | System for distributed rendering video based on cloud and method for auto scaling threrof |
CN114745278A (en) * | 2022-04-11 | 2022-07-12 | 中和农信项目管理有限公司 | Method and device for expanding and contracting capacity of business system, electronic equipment and storage medium |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101171657B1 (en) * | 2010-12-08 | 2012-08-09 | 텔코웨어 주식회사 | Load balancer and method for managing load balancing using this |
KR20160025926A (en) * | 2014-08-28 | 2016-03-09 | 한국전자통신연구원 | Apparatus and method for balancing load to virtual application server |
KR101613513B1 (en) | 2014-12-29 | 2016-04-19 | 서강대학교산학협력단 | Virtual machine placing method and system for guarantee of network bandwidth |
-
2017
- 2017-02-21 KR KR1020170022853A patent/KR101896497B1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20180096310A (en) | 2018-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108984264B (en) | Virtual GPU (graphics processing Unit) implementation method, device and system | |
US10659318B2 (en) | Methods and apparatus related to management of unit-based virtual resources within a data center environment | |
EP3335119B1 (en) | Multi-priority service instance allocation within cloud computing platforms | |
US9183016B2 (en) | Adaptive task scheduling of Hadoop in a virtualized environment | |
KR101896497B1 (en) | Method and appratus for performance control | |
US9619378B2 (en) | Dynamically optimizing memory allocation across virtual machines | |
EP3223491B1 (en) | Method and device for mapping virtual data centre resources | |
US8332611B2 (en) | Method and system for managing memory | |
US20130339956A1 (en) | Computer system and optimal arrangement method of virtual machine in computer system | |
JP2004062911A (en) | System for managing allocation of computer resource | |
US7689801B2 (en) | Method for distributing hypervisor memory requirements across logical partitions | |
US20160196157A1 (en) | Information processing system, management device, and method of controlling information processing system | |
US9183061B2 (en) | Preserving, from resource management adjustment, portions of an overcommitted resource managed by a hypervisor | |
US20170161117A1 (en) | Apparatus and method to determine a service to be scaled out based on a predicted virtual-machine load and service importance | |
US10630600B2 (en) | Adaptive network input-output control in virtual environments | |
JP6679146B2 (en) | Event-Driven Reoptimization of Logically Partitioned Environments for Power Management | |
KR20180045347A (en) | Method for resource management of virtual environment | |
CN117480494A (en) | Coordinated container scheduling for improved resource allocation in virtual computing environments | |
KR20100074920A (en) | Apparatus and method for load balancing in multi-core system | |
CN115599512A (en) | Scheduling jobs on a graphics processing unit | |
US20190391851A1 (en) | System and method for managing memory in virtual machines | |
CN111104203B (en) | Virtual machine decentralized scheduling method and device, electronic equipment and storage medium | |
US11586475B2 (en) | Application aware resource allocation for deep learning job scheduling | |
KR102231357B1 (en) | Single virtualization system for HPC cloud service and server software defined server scheduling method | |
KR102014246B1 (en) | Mesos process apparatus for unified management of resource and method for the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |