KR101886317B1 - Apparatus and method for selecting placement of virtual machine - Google Patents

Apparatus and method for selecting placement of virtual machine Download PDF

Info

Publication number
KR101886317B1
KR101886317B1 KR1020170054776A KR20170054776A KR101886317B1 KR 101886317 B1 KR101886317 B1 KR 101886317B1 KR 1020170054776 A KR1020170054776 A KR 1020170054776A KR 20170054776 A KR20170054776 A KR 20170054776A KR 101886317 B1 KR101886317 B1 KR 101886317B1
Authority
KR
South Korea
Prior art keywords
virtual machine
performance
placement
virtual
computing system
Prior art date
Application number
KR1020170054776A
Other languages
Korean (ko)
Inventor
최영리
백웅기
김선태
Kieu Thao Phamnguyen
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 KR1020170054776A priority Critical patent/KR101886317B1/en
Application granted granted Critical
Publication of KR101886317B1 publication Critical patent/KR101886317B1/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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N99/005

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

According to an embodiment of the present invention, a method for selecting virtual machine placement to place at least two different kinds of virtual machines in a computing system including at least two different kinds of physical nodes. The method comprises: a first step of generating a performance model for each kind of virtual machines; a second step of predicting task operating performance of the computing system when each virtual machine of a virtual machine group including at least one virtual machine for each kind is placed in each one of the nodes; and a third step of selecting a placement method having the maximum task operating performance of the computing system among placement methods arranging each virtual machine of the virtual machine group to one the nodes based on the prediction.

Description

가상 머신 배치 선택 장치 및 방법 {APPARATUS AND METHOD FOR SELECTING PLACEMENT OF VIRTUAL MACHINE}[0001] APPARATUS AND METHOD FOR SELECTING PLACEMENT OF VIRTUAL MACHINE [0002]

본 발명은 다양한 응용을 실행하기 위한 다양한 종류의 가상 머신을, 여러 종류의 물리적 머신에 배치하기 위한 장치 및 방법에 관한 것이다. 보다 자세하게는, 서로 각기 다른 종류의 응용 프로그램을 실행시키기 위한 가상 머신을 물리적 머신에 배치하는 다양한 방법 중, 최적의 성능을 보이는 배치 방법을, 시간과 시스템 자원의 과도한 소모 없이 효과적으로 선택하기 위한 장치 및 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an apparatus and a method for arranging various kinds of virtual machines for executing various applications on various kinds of physical machines. More specifically, among various methods of arranging virtual machines for executing different kinds of application programs on a physical machine, there are apparatuses for effectively selecting a placement method showing optimum performance without excessive consumption of time and system resources ≪ / RTI >

최근 널리 이용되고 있는 클라우드 컴퓨팅 시스템과 같은 가상화 시스템(virtualized system)은 다양한 종류의 하드웨어를 다수 포함할 수 있다. 이와 같은 각 개별 하드웨어에는 가상 머신(virtual machine, VM)이 하나 이상 배치될 수 있으며, 이와 같이 배치된 가상 머신을 이용하여 분산 병렬 응용(distributed parallel application)을 실행시킬 수 있다. 즉, 분산 병렬 응용을 복수의 가상 머신으로 구성된 가상 클러스터(virtual cluster, VC)에 배치함으로써, 하나의 분산 병렬 응용이 복수의 가상 머신에 의해 분산 처리되도록 할 수 있다.A virtualized system, such as a cloud computing system that has been widely used recently, may include many kinds of hardware. One or more virtual machines (VMs) may be arranged in each individual hardware, and a distributed parallel application can be executed using the virtual machines thus arranged. That is, by arranging the distributed parallel application in a virtual cluster (VC) composed of a plurality of virtual machines, one distributed parallel application can be distributedly processed by a plurality of virtual machines.

이와 같은 가상 머신을 복수의 개별 하드웨어, 즉 개별 노드(node)에 배치하는 방법은 헤아리기 어려울 정도로 많을 수 있다. 보다 구체적으로 설명하면, 그 위에서 실행되는 분산 병렬 응용(이하, "응용"이라 약칭)의 종류에 따라 가상 머신이 구별된다고 할 때, 서로 다른 종류의 가상 머신들을 배치하는 경우의 수는 매우 다양하다. 예컨대, 하나의 노드에는 같은 종류의 가상 머신만이 배치되도록 할 수도 있고, 여러 종류의 가상 머신이 하나의 노드에 혼재되도록 배치되도록 할 수도 있다.The method of disposing such a virtual machine on a plurality of individual hardware, i.e., individual nodes, can be so large as to be hard to imagine. More specifically, when the virtual machines are distinguished according to the types of distributed parallel applications (abbreviated as "applications" hereinafter) executed thereon, the number of cases in which different kinds of virtual machines are arranged is very various . For example, only one virtual machine of the same kind may be placed in one node, or a plurality of kinds of virtual machines may be arranged to be mixed in one node.

하나의 노드에서 복수의 응용이 동시에 실행될 경우, 각 응용을 실행시키는 서로 다른 종류의 가상 머신들 간에는 성능 간섭(interference)이 존재할 수 있다. 이러한 간섭은 응용 실행의 성능에 큰 영향을 미치며, 응용의 종류에 따라 응용 상호 간의 간섭이 작을 수도 있고, 클 수도 있다. 따라서, 복수의 노드에 여러 종류의 가상 머신을 배치하기 위한 수많은 방법 중 최적의 배치 방법을 찾는 것은 시스템의 성능에 있어 매우 중요하다 할 수 있다.When a plurality of applications are executed concurrently in one node, performance interference may exist between different types of virtual machines executing each application. Such interference greatly affects the performance of application execution, and interference between applications may be small or large depending on the type of application. Therefore, it is very important for system performance to find an optimal placement method among a number of methods for arranging various kinds of virtual machines on a plurality of nodes.

전술한 바와 같이, 가상 머신 배치 방법의 경우의 수는 헤아리기 어려울 정도로 많은 경우가 대부분이기 때문에, 모든 경우의 수를 실제로 테스트하여 각 배치 방법의 성능을 구하는 것은 시간과 시스템 자원을 지나치게 소모하므로 사실상 불가능에 가깝다. 더군다나, 클라우드 컴퓨팅 시스템 등 현실의 시스템은 포함된 각 노드의 사양이나 성능 등이 균일하지 않다. 이와 같이 여러 종류의 노드를 포함하는 이종(heterogeneous) 컴퓨팅 환경에서는 노드의 이종성 역시 가상 머신 배치 결정에 고려되어야 한다.As described above, since the number of cases in the virtual machine placement method is so large that it is difficult to fathom, it is practically impossible to actually test the number of all cases and obtain the performance of each placement method because it consumes time and system resources excessively . Furthermore, real-world systems such as cloud computing systems are not uniform in terms of specifications or performance of each node involved. In this heterogeneous computing environment including heterogeneous nodes, heterogeneity of nodes should also be considered in virtual machine placement decisions.

따라서, 컴퓨팅 환경의 이종성, 이종의 가상 머신 간의 간섭 등 필요 인자를 종합적으로 고려하면서도, 상대적으로 적은 연산량으로 최적의 가상 머신 배치 방법을 결정하기 위한 기술의 개발이 요구되고 있다.Therefore, it is required to develop a technique for determining an optimum virtual machine placement method with a relatively small amount of computation while taking into consideration all the necessary factors such as heterogeneity of a computing environment and interference between different types of virtual machines.

한국공개특허공보, 제10-2011-0067081호 (2011.06.21. 공개)Korean Unexamined Patent Publication No. 10-2011-0067081 (published on June 21, 2011)

본 발명의 해결하고자 하는 과제는, 서로 다른 종류의 여러 노드에 서로 다른 응용을 실행하기 위한 여러 가상 머신을 배치하는 방법 중, 최적의 성능을 보이는 배치 방법을 시간과 시스템 자원의 과도한 소모 없이 효과적으로 선택하기 위한 장치 및 방법을 제공하는 것이다.SUMMARY OF THE INVENTION It is an object of the present invention to provide a method of arranging a plurality of virtual machines for executing different applications on different nodes of different kinds by efficiently selecting a placement method showing optimal performance without consuming excessive time and system resources And to provide an apparatus and method for performing the method.

다만, 본 발명의 해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.It is to be understood that both the foregoing general description and the following detailed description of the present invention are exemplary and explanatory and are intended to provide further explanation of the invention as claimed. will be.

본 발명의 일 실시예에 따른, 서로 다른 두 종류 이상의 물리적 노드(node)를 포함하는 컴퓨팅 시스템에 서로 다른 두 종류 이상의 가상 머신을 배치하기 위한 가상 머신 배치 선택 방법은, 상기 각 종류의 가상 머신에 대한 성능 모델을 생성하는 제 1 단계, 상기 각 종류의 가상 머신에 대한 성능 모델에 기초하여, 상기 각 종류의 가상 머신을 종류별로 적어도 하나는 포함하는 가상 머신 집합의 각 가상 머신을, 상기 노드 중 하나에 각각 배치할 경우의 상기 컴퓨팅 시스템의 작업 수행 성능을 예측하는 제 2 단계 및 상기 예측에 기초하여, 상기 가상 머신 집합의 각 가상 머신을 상기 노드 중 하나에 각각 배치하는 배치 방법 중 상기 컴퓨팅 시스템의 작업 수행 성능이 최대가 되는 배치 방법을 선택하는 제 3 단계를 포함할 수 있다. A virtual machine layout selection method for arranging two or more different virtual machines in a computing system including two or more different physical nodes according to an embodiment of the present invention includes: A plurality of virtual machines, each virtual machine having at least one type of each virtual machine, based on a performance model for each type of virtual machine, A second step of predicting performance of the computing system when the virtual machines are arranged in one of the nodes and a second step of predicting performance of the computing system in the case of arranging the virtual machines in one of the nodes, And a third step of selecting a placement method that maximizes the performance of the work performed by the user.

또한, 상기 방법은, 상기 생성된 성능 모델을 데이터베이스에 저장하는 단계를 더 포함할 수 있다.The method may further include storing the generated performance model in a database.

또한, 상기 제 1 단계는, 상기 각 종류의 가상 머신 중 어느 한 종류의 가상 머신과, 특성 조절이 가능한 합성 응용을 위한 가상 머신이 상기 컴퓨팅 시스템에 함께 배치된 상태에서, 상기 컴퓨팅 시스템의 작업 수행 성능을 측정하는 단계, 상기 어느 한 종류의 가상 머신 및 상기 합성 응용을 위한 가상 머신의 배치 상태, 혹은 상기 합성 응용의 특성을 변화시키며 상기 측정을 반복하는 단계 및 상기 반복된 측정 결과에 기초하여, 상기 어느 한 종류의 가상 머신에 대한 성능 모델을 생성하는 단계를 포함할 수 있다.In addition, the first step may include a step of, when the virtual machine for any one of the virtual machines of each kind and the virtual machine for the composite application capable of adjusting the characteristics are placed together in the computing system, Measuring a performance of the virtual machine; determining a placement state of the virtual machine for the virtual machine and the synthetic application, or changing the characteristics of the synthetic application, and repeating the measurement; And generating a performance model for any one of the virtual machines.

또한, 상기 성능 모델을 생성하는 단계는, 머신 러닝(machine learning) 기법을 이용하여 상기 반복된 테스트 결과를 학습함으로써 상기 성능 모델을 생성하는 단계를 포함할 수 있다.In addition, the step of generating the performance model may include generating the performance model by learning the repeated test results using a machine learning technique.

또한, 상기 머신 러닝 기법은, 랜덤 트리(random tree), RepTree, ANN(Artificial Neural Network), SVM(Support Vector Machine) 중 적어도 하나를 포함할 수 있다. Also, the machine learning technique may include at least one of a random tree, RepTree, an artificial neural network (ANN), and a support vector machine (SVM).

또한, 상기 합성 응용의 특성은, 상기 합성 응용의 네트워크 사용량, 상기 합성 응용의 스토리지(storage) 사용량 중 적어도 하나를 포함할 수 있다.In addition, the characteristics of the synthetic application may include at least one of the network usage of the synthetic application and the storage usage of the synthetic application.

또한, 상기 컴퓨팅 시스템의 측정 중 적어도 한 번은, 상기 컴퓨팅 시스템의 노드 중 상기 어느 한 종류의 가상 머신과 상기 합성 응용을 위한 가상 머신을 모두 포함하는 노드가 존재할 조건에서 수행될 수 있다.Also, at least one of the measurements of the computing system may be performed under a condition that there is a node that includes both the virtual machine of any one of the nodes of the computing system and the virtual machine for the synthetic application.

또한, 상기 제 3 단계는, 상기 배치 방법 중 임의의 배치 방법을 선택하고, 상기 임의의 배치 방법에서의 상기 컴퓨팅 시스템의 작업 수행 성능을 예측하는 단계 및 전역 최적화 방법을 이용하여, 상기 배치 방법을 변화시켜 가며 상기 컴퓨팅 시스템의 작업 수행 성능이 최대가 되는 배치 방법을 찾는 단계를 포함할 수 있다.The third step may include the steps of selecting an arbitrary placement method among the placement methods, predicting the performance of the computing system in the arbitrary placement method, and using the global optimization method, And searching for a placement method that maximizes the performance of the computing system.

또한, 상기 전역 최적화 방법은 모의 담금질 기법(simulated annealing)일 수 있다.Also, the global optimization method may be simulated annealing.

또한, 상기 성능을 예측하는 단계는, 상기 가상 머신 집합의 각 가상 머신에 대해, 상기 각 가상 머신에 대한 성능 모델을 이용하여, 상기 임의의 배치 방법에서의 상기 각 가상 머신에 대한 작업 수행 성능을 예측하는 단계 및 상기 각 가상 머신에 대한 작업 수행 성능에 기초하여, 상기 임의의 배치 방법에서의 상기 컴퓨팅 시스템의 작업 수행 성능을 예측하는 단계를 포함할 수 있다.The step of predicting the performance may further include, for each virtual machine of the virtual machine set, performing performance of the virtual machine for each of the virtual machines using the performance model for each of the virtual machines Predicting performance of the computing system in the arbitrary placement method based on the performance of the virtual machine and the performance of the performance of the virtual machine.

본 발명의 일 실시예에 따른, 서로 다른 두 종류 이상의 물리적 노드(node)를 포함하는 컴퓨팅 시스템에 서로 다른 두 종류 이상의 가상 머신을 배치하기 위한 가상 머신 배치 선택 장치는, 상기 각 종류의 가상 머신에 대한 성능 모델을 생성하는 성능 모델 생성부 및 상기 각 종류의 가상 머신에 대한 성능 모델에 기초하여, 상기 각 종류의 가상 머신을 종류별로 적어도 하나는 포함하는 가상 머신 집합의 각 가상 머신을, 상기 노드 중 하나에 각각 배치할 경우의 상기 컴퓨팅 시스템의 작업 수행 성능을 예측하고, 상기 예측에 기초하여, 상기 가상 머신 집합의 각 가상 머신을 상기 노드 중 하나에 각각 배치하는 배치 방법 중 상기 컴퓨팅 시스템의 작업 수행 성능이 최대가 되는 배치 방법을 선택하는 배치 방법 선택부를 포함할 수 있다.A virtual machine placement selection device for placing two or more different virtual machines in a computing system including two or more different physical nodes according to an embodiment of the present invention includes: Based on a performance model for each type of virtual machine, each virtual machine of a set of virtual machines including at least one type of each of the types of virtual machines, Among the plurality of virtual machines in the plurality of virtual machines, a plurality of virtual machines in the plurality of virtual machines, and a plurality of virtual machines in the plurality of virtual machines, And a placement method selection unit that selects a placement method in which the performance is maximized.

본 발명의 일 실시예에 따르면, 머신 러닝(machine learning) 기법을 활용하여 성능 모델을 생성하고, 상기 생성된 성능 모델을 이용하여 특정 가상 머신 배치 방법의 성능을 예측할 수 있다. 보다 구체적으로, 특정 응용과 테스트용 합성(synthetic) 응용을 복수의 노드로 구성된 컴퓨팅 시스템에서 함께 실행하되, 합성 응용의 특성을 변화시켜 가며 상기 특정 응용에 대한 성능 모델을 생성할 수 있다. 실제로 복수의 응용을 실행하고자 할 때에는, 각 응용에 대한 성능 모델을 이용하여 각 응용을 실행하는 가상 머신의 특정 배치에서의 성능을 예측함으로써, 최적의 가상 머신 배치 방법을 알아낼 수 있다. According to an embodiment of the present invention, a performance model may be generated using a machine learning technique, and the performance of a specific virtual machine placement method may be predicted using the generated performance model. More specifically, a specific application and a synthetic application for testing can be executed together in a computing system composed of a plurality of nodes, and a performance model for the specific application can be generated by changing the characteristics of a synthetic application. In practice, when a plurality of applications are to be executed, an optimum virtual machine arrangement method can be obtained by predicting the performance in a specific arrangement of a virtual machine executing each application by using a performance model for each application.

이와 같이, 본 발명의 일 실시예에 의하면 머신 러닝을 이용하여 생성된 성능 모델을 통해 각 배치 방법의 성능을 쉽게 예측함으로써, 시간과 시스템 자원이 지나치게 소모되는 것을 방지할 수 있다.As described above, according to the embodiment of the present invention, the performance of each batch method can be easily predicted through the performance model generated by using machine learning, thereby preventing excessive consumption of time and system resources.

도 1a 및 1b는 가상 머신 배치의 의의에 대해 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 가상 머신 배치 선택 방법을 실행하기 위한 가상 머신 배치 선택 장치의 구성을 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 가상 머신 배치 선택 방법의 각 단계를 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 가상 머신 배치 선택 방법을 개념적으로 설명하기 위한 도면이다.
1A and 1B are diagrams for explaining the significance of a virtual machine arrangement.
2 is a diagram illustrating a configuration of a virtual machine placement selection device for executing a virtual machine placement selection method according to an embodiment of the present invention.
FIG. 3 is a diagram illustrating each step of a virtual machine layout selection method according to an embodiment of the present invention.
4 is a conceptual diagram illustrating a virtual machine layout selection method according to an embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention, and the manner of achieving them, will be apparent from and elucidated with reference to the embodiments described hereinafter in conjunction with the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. To fully disclose the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims.

본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. The following terms are defined in consideration of the functions in the embodiments of the present invention, which may vary depending on the intention of the user, the intention or the custom of the operator. Therefore, the definition should be based on the contents throughout this specification.

한편, 본 발명의 일 실시예에서 제시하는 방법은 적어도 일부의 소프트웨어와 하드웨어의 하이브리드 구현 방식으로, 프로세서 및 프로세서에 의해 실행되는 명령어들을 저장하는 메모리를 포함하는 전자 디바이스 또는 컴퓨터 프로그램에 의해 선택적으로 활성화 또는 재구성되는 프로그래밍 가능한 머신(machine)상에서 구현될 수 있다. On the other hand, a method proposed in an embodiment of the present invention is a hybrid implementation of at least some software and hardware, selectively activated by an electronic device or a computer program comprising a processor and a memory storing instructions executed by the processor Or reconfigured on a programmable machine.

또한, 본 발명의 일 실시예에서 제시하는 특징들 및/또는 기능성들 중 적어도 일부는 최종 사용자 컴퓨터 시스템, 컴퓨터, 네트워크 서버 또는 서버 시스템, 모바일 컴퓨팅 디바이스(예를 들어, PDA(personal digitalassistant), 모바일 전화기, 스마트폰, 랩탑, 태블릿 컴퓨터 또는 그와 유사한 것), 소비자 전자 디바이스, 또는 임의의 다른 적합한 전자 디바이스 또는 그들의 임의의 조합과 같은 하나 이상의 범용 네트워크 호스트 머신에서 등에서 구현될 수 있다.Also, at least some of the features and / or functionality presented in an embodiment of the present invention may be implemented in an end user computer system, a computer, a network server or server system, a mobile computing device (e.g., a personal digital assistant (PDA) At one or more general purpose network host machines, such as a cellular telephone, a smart phone, a laptop, a tablet computer, or the like), a consumer electronic device, or any other suitable electronic device or any combination thereof.

또한, 적어도 일부 실시예들에서, 여기에 개시된 개념 계층 구조를 생성하는 방법의 실시예의 특징들 및/또는 기능성들의 적어도 일부는 하나 이상의 가상화된 컴퓨팅 환경(예를 들어 네트워크 컴퓨팅 클라우드 또는 그와 유사한 것)에서 구현될 수 있다.Also, in at least some embodiments, at least some of the features and / or functionality of an embodiment of a method for generating a concept hierarchy disclosed herein may be implemented in one or more virtualized computing environments (e.g., a network computing cloud or the like ). ≪ / RTI >

도 1a 및 1b는 가상 머신 배치의 의의에 대해 설명하기 위한 도면이다. 도 1a 및 1b의 컴퓨팅 시스템(10)은 이종 컴퓨팅 환경이 적용된 시스템으로, 서로 다른 종류의 물리적 노드를 포함할 수 있다. 도 1a 및 1b에서는 컴퓨팅 시스템(10)은 두 종류의 노드를 포함하며, 이들 두 종류의 노드는 각각 제 1 노드(11)와 제 2 노드(12)로 칭하도록 한다. 컴퓨팅 시스템(10)은 도 1a 및 1b에 도시된 바와 같이 이와 같은 제 1 노드(11)와 제 2 노드(12)를 각각 4개씩 포함함으로써 총 8개의 노드를 갖는다고 가정한다. 다만, 도 1a 및 1b의 컴퓨팅 시스템(10)은 단지 예시적인 것일 뿐이므로, 실제 노드의 종류 및 수는 이와 다를 수 있다.1A and 1B are diagrams for explaining the significance of a virtual machine arrangement. The computing system 10 of FIGS. 1A and 1B is a system to which a heterogeneous computing environment is applied, and may include different kinds of physical nodes. 1A and 1B, the computing system 10 includes two kinds of nodes, which are referred to as a first node 11 and a second node 12, respectively. It is assumed that the computing system 10 has a total of eight nodes by including four such first and second nodes 11 and 12, as shown in Figs. 1A and 1B. However, since the computing system 10 of Figures 1a and 1b is merely exemplary, the type and number of actual nodes may be different.

여기서, 두 종류의 가상 머신이 있다고 가정할 수 있다. 제 1 가상 머신(21)은 제 1 응용을, 제 2 가상 머신(22)은 제 2 응용을 각각 실행시키기 위한 가상 머신이며, 제 1 가상 머신(21)과 제 2 가상 머신(22)이 각각 8개씩, 총 16개의 가상 머신이 있다고 가정할 수 있다. 이들 가상 머신을 배치하기 위한 방법으로, 도 1a와 같이 제 1 가상 머신(21)과 제 2 가상 머신(22) 모두를 제 1 노드(11)와 제 2 노드(12)에 분산시켜 배치하는 방법이 있을 수 있다. 또 다른 방법으로, 도 1b와 같이 제 1 가상 머신(21)은 모두 제 1 노드(11)로, 제 2 가상 머신(22)은 모두 제 2 노드(12)로 편중시켜 배치하는 방법 역시 있을 수 있다.Here, it can be assumed that there are two kinds of virtual machines. The first virtual machine 21 is a virtual machine for executing a first application and the second virtual machine 22 is a virtual machine for executing a second application respectively and the first virtual machine 21 and the second virtual machine 22 are It is assumed that there are a total of 16 virtual machines, eight of them. A method for distributing both the first virtual machine 21 and the second virtual machine 22 to the first node 11 and the second node 12 as shown in FIG. This can be. Alternatively, as shown in FIG. 1B, there may be a method of biasing all of the first virtual machine 21 to the first node 11 and all of the second virtual machines 22 to the second node 12 have.

상기 두 가지 방법 중 어떤 방식의 성능이 더 좋을지는, 제 1 응용 및 제 2 응용의 특성에 따라 다를 수 있기 때문에 쉽게 예측할 수 없다. 예컨대, 제 1 응용과 제 2 응용이 주로 사용하는 시스템 자원이 유사하여 하나의 노드에서 함께 실행시킬 경우 간섭이 크게 발생한다면, 도 1a의 방법보다는 도 1b의 방법이 더 높은 성능을 보일 수 있다. 하지만 제 1 응용과 제 2 응용 사이의 간섭은 크지 않음에 비해 두 종류의 노드 간의 성능의 차이가 크다면, 도 1b의 방법이 상대적으로 유리할 수도 있을 것이다.Which one of the above two methods perform better can not be easily predicted because it may be different depending on characteristics of the first application and the second application. For example, if the first application and the second application have similar system resources and are executed together in one node, if the interference is greatly generated, the method of FIG. 1B may show higher performance than the method of FIG. However, if the interference between the first application and the second application is not large, the method of FIG. 1B may be relatively advantageous if the performance difference between the two types of nodes is large.

또한, 가능한 한 많은 수의 노드에 가상 머신을 분산시켜 분포시키는 방식, 예컨대 도 1b에서 보는 바와 같이 4개의 모든 제 1 노드(11)에 제 1 가상 머신(21)을 각각 2개씩 균일하게 분산시켜 배치하는 방식은 각 가상 머신들이 시스템 자원을 큰 경쟁 없이 충분히 사용할 수 있다는 점에서 장점을 가질 수 있다. 반면, 가상 머신 간의 신속하고 긴밀한 정보 교환이 중요한 경우라면, 하나의 노드에 모든 가상 머신을 배치하는 것이 더 유리할 수도 있을 것이다.In addition, a method of distributing virtual machines to as many nodes as possible is also possible. For example, as shown in FIG. 1B, the first virtual machines 21 are uniformly dispersed in each of the four first nodes 11 by two The deployment method can be advantageous in that each virtual machine can use the system resources without any competition. On the other hand, if rapid and intimate information exchange between virtual machines is important, it may be advantageous to place all virtual machines on one node.

종합해 보면, 서로 다른 종류의 각 노드들의 특성, 응용의 종류, 서로 다른 응용 간의 간섭 등 다양한 인자를 고려하여, 수많은 배치 방법 중 적절한 것을 선택해야 할 필요가 있음을 알 수 있다. 하지만 근래의 큰 규모를 갖는 컴퓨팅 시스템에서는 가상 머신 배치 방법의 수가 그 성능을 일일이 테스트해 보는 것이 불가능할 정도로 많다. 따라서 사전에 구축해 둔 성능 모델을 통해 특정 배치 방법의 성능을 예측할 수 있는 본 발명의 일 실시예에 따른 가상 머신 배치 방법이 유용하게 활용될 수 있다.Taken together, it can be seen that there is a need to choose among a number of deployment methods, taking into account various factors such as the nature of each node, application type, and interference between different applications. However, in today's large-scale computing systems, the number of virtual machine placement methods is so large that it is impossible to test individual performance. Therefore, a virtual machine placement method according to an embodiment of the present invention, which can predict the performance of a specific placement method through a performance model built in advance, can be usefully utilized.

도 2는 본 발명의 일 실시예에 따른 가상 머신 배치 선택 방법을 실행하기 위한 가상 머신 배치 선택 장치의 구성을 도시한 도면이다. 본 발명의 일 실시예에 따른 가상 머신 배치 선택 장치(100)는 성능 모델 생성부(110), 데이터베이스(120) 및 배치 방법 선택부(130)를 포함할 수 있다. 다만 도 2의 가상 머신 배치 선택 장치(100)의 구성 요소는 본 발명의 일 실시예에 불과하므로, 도 2에 의해 본 발명의 기술적 사상이 한정 해석되는 것은 아니다.2 is a diagram illustrating a configuration of a virtual machine placement selection device for executing a virtual machine placement selection method according to an embodiment of the present invention. The virtual machine placement selection apparatus 100 according to an embodiment of the present invention may include a performance model generation unit 110, a database 120, and a placement method selection unit 130. However, since the components of the virtual machine layout selection device 100 of FIG. 2 are only one embodiment of the present invention, the technical idea of the present invention is not limited to FIG. 2.

이하에서는 가상 머신 배치 선택 장치(100)의 각 구성 요소에 대해 간략하게 설명하도록 하며, 이들 구성 요소의 상세한 동작에 대해서는 이어질 도 3 및 4를 참고하여 보다 자세히 설명하도록 한다.Hereinafter, each component of the virtual machine layout selection device 100 will be briefly described, and the detailed operation of these components will be described in more detail with reference to FIGS. 3 and 4.

성능 모델 생성부(110)는 각 종류의 가상 머신에 대한 성능 모델을 생성할 수 있다. 여기서 가상 머신의 종류는 가상 머신에 의해 실행되는 응용에 의해 특정될 수 있음을 위에서 말한 바 있으므로, 성능 모델 생성부(110)의 동작은 각 응용에 대한 성능 모델을 생성하는 것이라 말할 수 있다. 이러한 응용에 대한 성능 모델은, 성능 모델 생성의 대상이 되는 실제 응용을 위한 가상 머신을, 성능 모델 생성용으로 제작될 수 있는 합성 응용(synthetic application)을 위한 가상 머신과 함께 컴퓨팅 시스템(10)에 임의의 방법으로 배치한 후, 컴퓨팅 시스템(10)을 통해 상기 실제 응용과 합성 응용을 함께 실행시켰을 때의 성능을 측정하는 식으로 수행될 수 있다. The performance model generation unit 110 may generate a performance model for each type of virtual machine. It is noted that the type of the virtual machine can be specified by the application executed by the virtual machine. Thus, it can be said that the operation of the performance model generation unit 110 generates a performance model for each application. The performance model for this application is a virtual machine for the actual application that is the subject of the performance model creation, as well as a virtual machine for the synthetic application, And then measuring the performance when the actual application and the composite application are executed together through the computing system 10 after arranging them in an arbitrary manner.

본 발명의 일 실시예에 의하면, 상기 성능 모델은 랜덤 트리(random tree)와 같은 머신 러닝(machine learning) 기법을 통해 구축될 수 있다. 성능 모델 생성부(110)는 상기 기능의 구현을 위해 마이크로프로세서(microprocessor)를 포함하는 연산 장치에 의해 구현될 수 있으며, 이는 후술할 배치 방법 선택부(130)도 같다.According to an embodiment of the present invention, the performance model can be constructed through a machine learning technique such as a random tree. The performance model generating unit 110 may be implemented by a computing device including a microprocessor for implementing the functions, which is the same as the placement method selecting unit 130 described later.

데이터베이스(120)는 상기 성능 모델 생성부(110)에 의해 생성된, 각 종류의 실제 응용에 대한 성능 모델을 저장할 수 있다. 데이터베이스(120)가 저장하는 성능 모델들은, 후술할 배치 방법 선택부(130)가 실제 응용들을 위한 가상 머신을 최적으로 배치하는 방법을 선택하는 데 이용될 수 있다. 다만, 상기 성능 모델은 반드시 가상 머신 배치 선택 장치(100) 내의 데이터베이스(120)에만 저장되어야 하는 것은 아니고, 가상 머신 배치 선택 장치(100) 외부에 저장될 수도 있다. 이 경우, 가상 머신 배치 선택 장치(100)는 외부와의 데이터 통신을 위한 유선 혹은 무선 통신 모듈을 포함하는 하드웨어 장치를 더 포함할 수 있다.The database 120 may store a performance model for each type of actual application generated by the performance model generation unit 110. [ The performance models stored by the database 120 can be used to select a method for optimally arranging a virtual machine for actual applications, by a placement method selection unit 130 to be described later. However, the performance model is not necessarily stored in the database 120 in the virtual machine layout selection device 100, but may be stored outside the virtual machine layout selection device 100. [ In this case, the virtual machine placement selection device 100 may further include a hardware device including a wired or wireless communication module for data communication with the outside.

한편, 데이터베이스(120)는 성능 모델 외에도 가상 머신 배치 선택 장치(100)의 동작에 필요한 정보들을 저장하는 기능을 수행할 수 있다. 이와 같은 데이터베이스(120)는 구체적으로 컴퓨터 판독 가능 기록 매체로서 구현될 수 있으며, 이러한 컴퓨터 판독 기록 매체의 예로는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 플래시 메모리(flash memory)와 같은 프로그램 명령어들을 저장하고 수행하도록 특별히 구성된 저장 매체를 들 수 있다.In addition to the performance model, the database 120 may store information necessary for the operation of the virtual machine layout selection device 100. [ Such a database 120 may be embodied as a computer-readable recording medium. Examples of such computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape, CD-ROMs, DVDs A magneto-optical media such as a floppy disk, a flash memory, and the like, and a storage medium that is specifically configured to store and execute program instructions, .

배치 방법 선택부(130)는 성능 모델 생성부(110)가 합성 응용을 이용하여 생성한 각 실제 응용의 성능 모델에 기초하여, 각 실제 응용을 위한 가상 머신을 컴퓨팅 시스템(10)의 노드에 배치하기 위한 최적의 방법을 선택할 수 있다. 즉, 배치 방법 선택부(130)는 실제로 각 응용들을 위한 가상 머신을 배치하는 다양한 방법들을 일일이 테스트해 보는 대신, 상기 성능 모델을 이용하여 각 배치 방법의 성능을 예측함으로써, 그 중에서 최적의 배치 방법을 선택할 수 있다.The placement method selection unit 130 selects a placement method based on the performance model of each actual application generated by the performance model generation unit 110 using the composite application and places a virtual machine for each actual application on a node of the computing system 10 It is possible to select the optimum method for the above. That is, the placement method selection unit 130 predicts the performance of each placement method by using the performance model instead of testing various methods of actually arranging virtual machines for respective applications, Can be selected.

도 3은 본 발명의 일 실시예에 따른 가상 머신 배치 선택 방법의 각 단계를 도시한 도면이다. 도 1a 내지 2를 통해 설명한 바와 중복되는 내용에 대해서는 그 설명을 생략할 수 있다. 단, 도 3에 도시된 방법은 본 발명의 일 실시예에 불과하므로 도 3에 의해 본 발명의 사상이 한정 해석되는 것은 아니며, 도 3에 도시된 방법의 각 단계는 경우에 따라 도면에 제시된 바와 그 순서를 달리하여 수행될 수도 있음은 물론이다. 아울러, 본 발명의 일 실시예에 따른 가상 머신 배치 선택 방법은 컴퓨터 프로그램이 기록된 기록매체에 구현될 수 있다.FIG. 3 is a diagram illustrating each step of a virtual machine layout selection method according to an embodiment of the present invention. The description overlapping with those described with reference to Figs. 1A and 2 can be omitted. However, since the method shown in FIG. 3 is only one embodiment of the present invention, the concept of the present invention is not limited to FIG. 3, and each step of the method shown in FIG. But may be performed in different orders. In addition, the virtual machine placement selection method according to an embodiment of the present invention can be implemented in a recording medium on which a computer program is recorded.

도 3의 가상 머신 배치 선택 방법에 의하면, 우선 성능 모델 생성부(110)을 이용하여 각 종류의 가상 머신, 다시 말해 각 종류의 실제 응용에 대한 성능 모델을 생성할 수 있다(S110). 즉, 성능 모델은 각 실제 응용의 종류별로 하나씩 생성될 수 있다.According to the virtual machine layout selection method of FIG. 3, first, a performance model for each type of virtual machine, that is, an actual application of each type can be created using the performance model generator 110 (S110). That is, the performance model can be generated one by one for each type of actual application.

특정 실제 응용의 성능 모델을 생성할 때에는, 성능 모델의 생성을 위해 합성된 합성 응용을 상기 특정 실제 응용과 함께 컴퓨팅 시스템(10)에 배치하고, 배치된 실제 응용과 합성 응용을 함께 실행하면서, 실제 응용이 일정 작업을 수행하는 데 걸리는 시간을 측정하는 등의 방법으로 성능을 측정할 수 있다. 여기서, 각 응용을 배치한다는 것은 각 응용을 실행하기 위한 가상 머신을 배치한다는 것과 같음은 앞서 설명한 바와 같다.When a performance model of a specific practical application is generated, a composite application synthesized for generating a performance model is placed in the computing system 10 together with the specific practical application, and the actual application and the composite application are executed together, Performance can be measured by measuring the time it takes for an application to perform a scheduled task. Here, the arrangement of each application is the same as the arrangement of a virtual machine for executing each application as described above.

여기서, 합성 응용은 실제 응용과 자원을 경쟁하면서 실행될 수 있도록 자체 제작된(customized) 응용일 수 있다. 예컨대, 실제 응용은 그 실행 과정에서 네트워크, 혹은 스토리지(storage) 등의 시스템 자원을 소모할 수 있다. 이러한 상황에서, 실제 응용과 같은 노드에서 합성 응용과 같은 타 응용이 실행되고, 합성 응용이 실제 응용이 주로 소모하는 시스템 자원과 동일한 종류의 시스템 자원을 소모한다면, 상기 실제 응용과 합성 응용은 자신들이 위치한 한 노드의 자원을 놓고 경쟁하는 관계가 될 수 있으며, 이는 실제 응용에 대해 일종의 간섭(interference)으로서 작용하므로 실제 응용의 실행 성능에 큰 영향을 미칠 수 있다.Here, the composite application may be a customized application that can be executed while competing the actual application with the resource. For example, an actual application may consume system resources such as a network or storage during its execution. In this situation, if other applications such as synthetic applications are executed in the same node as the actual application, and the synthetic application consumes system resources of the same kind as the system resources consumed by actual applications, The resource of one node may be competing with each other, and this may act as a kind of interference to the actual application, which may have a great influence on the execution performance of the actual application.

이에, 특정 배치 상태에서 합성 응용의 특성을 변화시켜 가면서 실제 응용의 실행 성능을 측정할 수 있다. 예컨대, 합성 응용의 네트워크 사용량을 단계별로 변화시키거나, 혹은 스토리지 사용량을 단계별로 변화시키는 등, 합성 응용의 다양한 특성을 단계적으로 변화시켜 가면서, 각 경우에 있어서의 실제 응용의 실행 성능에 관한 성능 데이터를 얻을 수 있다. 여기서 성능 데이터는, 위에서 언급한 일정 작업의 수행 속도를 포함할 수 있으며, 그 외에도 응용 실행 과정에서의 CPU 사용률, 네트워크를 통해 송수신한 데이터량, 스토리지를 통해 기록 혹은 인출한 데이터량 등의 데이터를 포함할 수 있으나, 반드시 이들 예시로 제한되는 것은 아니다.Thus, the execution performance of an actual application can be measured while changing the characteristics of a synthetic application in a specific arrangement state. For example, performance data related to execution performance of actual applications in each case, while gradually changing various characteristics of the synthetic application, such as changing the network usage amount of the synthetic application step by step or changing the storage usage step by step, Can be obtained. Here, the performance data may include the execution speed of the schedule job mentioned above. In addition, the performance data may include data such as the CPU usage rate during application execution, the amount of data transmitted and received through the network, But are not necessarily limited to, these examples.

전술한 바와 같은 목적을 위한 합성 응용의 특성은, 실제 응용의 특성에 기초하여 적응적으로 조절될 수 있다. 현실에서의 실제 응용은 매우 다양한 목적을 갖고 제작되며, 이에 따라 실제 응용이 주로 사용하는 시스템 자원의 종류는 실제 응용에 따라 다를 수 있다. 예컨대, 어떤 실제 응용은 네트워크 사용량이 스토리지사용량에 비해 압도적으로 클 수 있고, 다른 실제 응용은 그와 반대의 경향을 보일 수 있다. 이러한 상황에서 모든 실제 응용에 대해 일률적으로 같은 성능 테스트 조건을 적용하면 테스트의 효율성과 정확성에 문제가 있을 수 있다.The characteristics of the synthetic application for the purposes described above can be adaptively adjusted based on the characteristics of the actual application. Actual applications in reality are produced with a wide variety of purposes, and thus the types of system resources that actual applications use may vary depending on actual applications. For example, some real-world applications may have overwhelmingly greater network usage than their storage usage, and other real-world applications may show the opposite trend. Applying the same performance test conditions uniformly to all real applications in such a situation can cause problems with the efficiency and accuracy of the test.

이에, 본 발명의 일 실시예에서는 특정 실제 응용의 성능 데이터를 얻기 위해, 시스템 자원 사용 경향 등 해당 특정 실제 응용의 특성을 고려하여 테스트를 수행할 수 있다. 예컨대, 네트워크 관련 시스템 자원을 주로 활용하는 실제 응용에 대해서는 함께 수행되는 합성 응용의 네트워크 사용량을 보다 세밀하게 조절하면서 테스트를 수행할 수 있을 것이다. 이를 일반화시키면, 실제 응용의 성능 테스트에 있어 필요한 특성만을 고려하여 테스트를 수행할 수 있다. 이와 같이 합성 응용의 특성 조절을 실제 응용의 특성에 따라 적응적으로 수행함으로써, 정확한 성능 데이터를 효율적으로 얻을 수 있다.Accordingly, in one embodiment of the present invention, in order to obtain performance data of a specific practical application, a test can be performed in consideration of characteristics of a specific practical application such as system resource usage trends. For example, for practical applications that primarily utilize network-related system resources, testing may be performed with more granular control over the network usage of concurrent applications. If this is generalized, the test can be performed considering only the characteristics required for the performance test of actual applications. Thus, accurate performance data can be efficiently obtained by adaptively controlling the characteristics of synthetic applications according to characteristics of actual applications.

한편, 특정 배치 상태 안에서 같은 실제 응용을 실행하기 위한 같은 종류의 가상 머신이라도, 어떤 것은 노드 안에서 단독으로 실행(solo running)될 수도 있고, 합성 응용과 함께 실행(co-running)될 수도 있을 것이다. 이 경우, 같은 종류의 가상 머신이라 해도 서로 차이가 나는 성능 데이터를 보일 수 있다. 이러한 차이는 실제 응용이 타 응용과의 간섭에 얼마나 영향을 받는지에 대한 일종의 지표가 될 수 있으며, 단독으로 실행되는 경우의 성능 데이터와 함께 실행되는 경우의 성능 데이터 모두 성능 모델을 생성하기 위해 이용될 수 있다.On the other hand, even a virtual machine of the same kind to execute the same real application within a specific deployment state may be solo running in a node or co-running with a synthetic application. In this case, even the same kind of virtual machine can show different performance data. Such a difference may be a kind of indicator as to how the actual application is affected by interference with other applications, and both performance data when executed alone and performance data when executed together are used to generate a performance model .

전술한 바와 같은 과정을, 실제 응용과 합성 응용의 배치 방법을 변화시켜 가면서, 즉 여러 가지 배치 방법 하에서 수행함으로써, 각각의 경우에 따른 성능 데이터를 얻을 수 있다. 물론 모든 배치 방법에 대해 테스트를 해보는 것은 시간과 시스템 자원의 소모가 커 현실적으로 매우 어렵기 때문에, 대표적인 특정 배치 방법 몇 가지를 정해 놓고 이들 배치 방법에 대한 수행 결과를 얻을 수 있다.Performance data according to each case can be obtained by performing the above-described process while changing the arrangement method of the actual application and the synthesis application, that is, by performing various arrangements. Of course, testing all the deployment methods is very difficult because of the time and system resources consumed, so some typical deployment methods can be specified and the results of these deployment methods can be obtained.

지금까지 설명한 과정을 거쳐 성능 모델 생성부(110)에 의해 얻어진 데이터, 즉 실제 응용 혹은 합성 응용을 위한 각 가상 머신의 배치 상태, 해당 배치 상태에서의 각 가상 머신의 성능 데이터 등을 이용하여 성능 모델을 생성할 수 있다. 이러한 성능 모델은 머신 러닝 기법에 기초하여 생성될 수 있다. 즉, 다양한 배치 상태 및 해당 배치 상태에서의 성능 데이터를 훈련함으로써, 테스트의 대상이 된 실제 응용에 관한 일반적인 원리를 도출해낼 수 있는 것이다. The data obtained by the performance model generation unit 110, i.e., the placement state of each virtual machine for actual application or synthesis application, the performance data of each virtual machine in the placement state, Can be generated. This performance model can be generated based on a machine learning technique. That is, by training performance data in various placement states and corresponding placement states, one can derive general principles about the actual application being tested.

본 발명의 일 실시예에 의하면, 머신 러닝 기법 중에서도 랜덤 트리(random tree) 방식이 사용될 수 있다. 랜덤 트리는 일종의 의사 결정 트리이며, 랜덤 트리 내에는 특정 질문에 대한 응답(예컨대, 예 혹은 아니오)에 따른 여러 갈림길이 존재한다. 따라서, 답을 알고 싶은 문제와 관련하여 여러 질문에 응답하며 선택된 응답에 대응되는 길을 따라가다 보면 종국적으로는 문제의 답을 알 수 있게 된다. According to an embodiment of the present invention, a random tree method may be used among the machine learning techniques. The random tree is a kind of decision tree, and there are various branches in the random tree according to a response to a specific question (for example, yes or no). Thus, responding to questions about the problem you want to know, and following the path to the selected answer, you will eventually know the answer to the problem.

이러한 랜덤 트리를 생성하는 과정은 결국 랜덤 트리 내의 질문들을 결정하는 과정이라 말할 수 있으며, 랜덤 트리 내의 질문들은 다양한 경우의 입력 데이터 및 해당 입력 데이터에 따른 결과를 학습함으로써 결정될 수 있다. 성능 모델 생성부(110) 역시 전술한 바와 같이 실제 응용을 합성 응용과 함께 배치하여 다양한 조건에서 테스트하고, 테스트 과정에서 얻어진 데이터를 이용하여 특정 실제 응용을 위한 랜덤 트리 형태의 성능 모델을 생성할 수 있다. 이러한 성능 모델은 각 실제 응용의 종류별로 하나씩 생성될 수 있음은 앞서 말한 바와 같다.The process of generating the random tree can be said to be a process of determining the questions in the random tree, and the questions in the random tree can be determined by learning the input data in various cases and the result according to the input data. As described above, the performance model generation unit 110 also arranges the actual application with the synthesis application to test it under various conditions and generates a random tree type performance model for a specific practical application using the data obtained in the test procedure have. It is noted that the performance model can be generated one by one for each type of actual application.

단, 지금까지는 랜덤 트리 기법을 예로 들어 성능 모델을 생성하는 과정에 대해 설명하였으나, 이는 하나의 예시일 뿐이므로, 성능 모델 생성에 반드시 랜덤 트리 기법만이 이용될 수 있는 것은 아니고, 일반적으로 알려진 머신 러닝 기법이라면 어떤 것이든 이용될 수 있다. 예컨대, RepTree, ANN(Artificial Neural Network), SVM(Support Vector Machine) 등 다양한 머신 러닝 기법 역시 적용 가능하며, 이들 예시 외에도 다른 기법의 적용도 물론 가능하다.However, since the generation of the performance model using the random tree technique is described as an example only, the random tree technique can not necessarily be used for generating the performance model, Any running technique can be used. For example, various machine learning techniques such as RepTree, ANN (Artificial Neural Network), SVM (Support Vector Machine), and the like can be applied.

전술한 바와 같은 과정을 거쳐 성능 모델의 생성이 완료되면, 전술한 과정에 의해 생성된 성능 모델을, 데이터베이스(120) 또는 가상 머신 배치 선택 장치(100)의 외부에 존재하는 저장 매체에 저장할 수 있다(S120). 물론, 다른 실제 응용을 대상으로 하거나, 합성 응용의 특성을 다르게 설정한 상태에서 실제 응용과 합성 응용을 동작시킴으로써, 상기 저장된 성능 모델에 대한 데이터를 업데이트하는 것 역시 가능할 수 있다.When the generation of the performance model is completed through the above-described process, the performance model generated by the above-described process can be stored in the storage medium existing outside the database 120 or the virtual machine layout selection apparatus 100 (S120). Of course, it is also possible to update data on the stored performance model by operating the actual application and the synthesized application in a state where the actual application is targeted or the characteristics of the synthetic application are set differently.

그 다음으로, 상기 성능 모델을 이용하여, 소정의 실제 응용들을 위한 가상 머신을 특정 방법으로 배치하였을 경우의 컴퓨팅 시스템(10)의 성능을 배치 방법 선택부(130)를 통해 예측할 수 있다(S130). 즉 본 단계 S130에서는, 여러 개의 실제 응용을 컴퓨팅 시스템(10)을 이용하여 동시에 실행시켜야 하는 상황에서, 각 응용의 실행을 위한 각 가상 머신을 컴퓨팅 시스템(10)의 노드에 특정 방법으로 배치한 경우의 시스템 성능을 예측할 수 있다. 본 단계 S130 및 다음의 단계 S140은 실제로 성능 테스트를 수행하는 것이 아닌, 단계 S110에서 실제 수행 결과를 바탕으로 얻어진 성능 모델을 이용하여 성능 예측을 하는 단계가 될 수 있다.Next, using the performance model, performance of the computing system 10 when a virtual machine for predetermined practical applications is arranged in a specific manner can be predicted through the placement method selection unit 130 (S130) . That is, in this step S130, when a plurality of actual applications are simultaneously executed using the computing system 10, when each virtual machine for execution of each application is arranged in a specific manner in a node of the computing system 10 The system performance of the system can be predicted. The step S130 and the following step S140 may be a step of performing the performance prediction using the performance model obtained on the basis of the actual performance result in the step S110 rather than actually performing the performance test.

전체 시스템 성능의 예측을 위하여, 우선 해당 특정 배치 상태에서의 여러 개의 실제 응용 각각의 성능을 개별적으로 구할 수 있다. 각 응용의 성능은 단계 S110에서 해당 응용에 대해 생성된 성능 모델을 이용하여 구할 수 있다. 즉, 컴퓨팅 시스템(10)에 여러 실제 응용들이 배치된 상황을, 상기 여러 실제 응용들 중 특정 응용의 성능 모델에 입력으로 넣으면, 해당 상황에서의 상기 특정 응용의 성능이 출력으로서 산출될 것이다. In order to predict the overall system performance, the performance of each of several actual applications in the specific deployment state can be obtained individually. The performance of each application can be obtained using the performance model generated for the application in step S110. That is, when a situation where various practical applications are arranged in the computing system 10 is input to a performance model of a specific application among the various practical applications, the performance of the specific application in the corresponding situation will be calculated as an output.

전술한 과정을 여러 응용 모두에 대해 각각 수행하면, 상기 특정 배치 상태에서의 각 응용의 성능을 구할 수 있다. 그러면 구해진 각 응용의 성능을 종합적으로 고려하여 전체 시스템 성능을 예측할 수 있다. 예컨대, 각 응용의 성능의 기하평균(geometric mean)을 취함으로써 전체 시스템 성능이라 예측되는 값을 구할 수 있다. 즉, 응용이 n개 존재하고, 상기 특정 배치 상태에서의 k(k는 1 이상 n 이하의 자연수)번째 응용의 성능을 xk라 할 때, 기하 평균을 통해 구할 수 있는 전체 시스템 성능 xs는 다음 수학식 1을 통해 구할 수 있다. When the above-described process is performed for each of various applications, the performance of each application in the specific placement state can be obtained. Then, the overall system performance can be predicted considering the performance of each application comprehensively. For example, by taking the geometric mean of the performance of each application, a predicted value can be obtained from the overall system performance. That is, when there are n applications and the performance of the k- th application (k is a natural number equal to or greater than 1 and n) in the specific placement state is x k , the overall system performance x s obtained through the geometric mean is Can be obtained by the following equation (1).

Figure 112017041731525-pat00001
Figure 112017041731525-pat00001

단, 위에서 수학식 1과 관련된 기하 평균을 통해 전체 시스템 성능을 구하는 방법을 예로 들었지만, 이는 하나의 예시일 뿐이므로, 산술 평균, QoS(Quality of Service), 에너지 사용량 등의 방법을 이용할 수 있다. 물론 언급된 예시 외의 다른 기법 역시 전체 시스템 성능을 구하는 데 이용될 수 있는 것이라면 어떤 것이든 이용될 수 있다.However, arithmetic mean, QoS (Quality of Service), energy consumption, etc. can be used as a method of obtaining the overall system performance through the geometric mean associated with Equation (1) above. Of course, any technique other than the example mentioned can be used as long as it can be used to obtain overall system performance.

끝으로, 배치 방법 선택부(130)를 통해 여러 가지 배치 방법 중 가장 최적의 성능을 보이는 배치 방법을 선택할 수 있다(S140). 임의의 한 배치 방법을 선택하여 해당 배치 방법에서의 시스템 성능을 구한다 해도, 그것이 최적의 시스템 성능을 갖는 최적의 배치 방법인지, 혹은 해당 배치 방법이 최적의 배치 방법과 어느 정도의 차이를 갖는지 등의 정보를 알기는 어렵다. 따라서, 최적의 배치 방법을 찾기 위해 본 발명의 일 실시예에서는 일명 "모의 담금질 기법(simulated annealing)"이라 불리는, 함수의 전역 최적해를 구하기 위한 기법을 이용할 수 있다.Finally, through the placement method selection unit 130, a placement method showing the most optimal performance among various placement methods can be selected (S140). Even if the system performance in the corresponding placement method is obtained by selecting any one placement method, it is necessary to determine whether the optimum placement method has optimum system performance or how the placement method differs from the optimum placement method It is difficult to know the information. Therefore, in order to find an optimal placement method, an embodiment of the present invention can use a technique called a " simulated annealing "to obtain a global optimum solution of a function.

상기 모의 담금질 기법은 금속의 냉각 과정에서 모티브를 차용한 기법으로서, 고온의 물질의 분자가 식어가며 점차 안정화되어 가는 과정을 광역적 최적화 문제에 적용한 알고리즘이다. 모의 담금질 기법의 핵심은, 온도가 높을수록 분자의 자유로운(즉, 이동 폭이 큰) 이동이 가능하며, 온도가 낮을수록 점차 안정화되어 자유롭지 못한(즉, 이동 폭이 작은) 이동만이 가능하다는 것이다. 이러한 모의 담금질 기법의 구체적인 사항에 대해서는 통상의 기술자에게 용이하므로 여기에서는 더 이상의 자세한 설명은 생략한다.The simulated quenching technique is a technique in which the motive is borrowed in cooling the metal, and the process of gradually stabilizing the molecules of the high temperature material is applied to the global optimization problem. The core of the simulated quenching technique is that the higher the temperature, the more freely the molecules can move (ie, the larger the moving width), and the lower the temperature, the more stable they can not move (ie the smaller the moving width) . Specific details of such a simulated quenching technique are easily available to an ordinary technician, so that a detailed description thereof will be omitted here.

이와 같은 모의 담금질 기법을 이용하여, 최적의 가상 머신 배치 방법을 구할 수 있다. 즉, 맨 처음에는 임의의 가상 머신 배치 방법을 랜덤(random)하게 선택하고, 상기 최초로 선택된 임의의 가상 머신 배치 방법에서의 시스템 성능을 구한 후, 모의 담금질 기법에 따라 배치를 바꾸어 가면서 성능을 구하는 과정을 계속할 수 있다. 이와 같은 과정을 거쳐 결과적으로 최적의 성능에 도달했다고 판단되는 경우의 배치 방법을 선택하여 최종적으로 적용할 수 있다.By using the simulated quenching technique, an optimal virtual machine placement method can be obtained. That is, at first, an arbitrary virtual machine placement method is randomly selected, the system performance of the first selected virtual machine placement method is obtained, and then the performance is obtained while changing the placement according to the simulation quenching technique Can continue. After the above-described process, if it is determined that the optimum performance has been reached, the arrangement method can be selected and finally applied.

도 4는 본 발명의 일 실시예에 따른 가상 머신 배치 선택 방법을 개념적으로 설명하기 위한 도면이다. 즉, 도 4는 지금까지 설명한 본 발명의 일 실시예에 따른 가상 머신 배치 선택 방법을 요약하여 개념적으로 보여주기 위한 것이다.4 is a conceptual diagram illustrating a virtual machine layout selection method according to an embodiment of the present invention. That is, FIG. 4 is a conceptual illustration of a virtual machine layout selection method according to an embodiment of the present invention.

도 4에 따르면, N개의 서로 다른 응용이 존재할 시에, 1번부터 N번까지 각 응용의 성능 테스트(프로파일링)를 합성 응용을 이용하여 수행함으로써, 각 응용에 대한 성능 모델을 머신 러닝 기법을 이용하여 생성할 수 있다. 그러면 이들 N개의 응용이 함께 실행되는 경우에 대한 최적의 가상 머신 배치를 각 응용의 성능 모델을 이용하여 도출할 수 있으며, 이 과정에서 모의 담금질 기법 등의 최적화 기법이 적용될 수 있다.Referring to FIG. 4, when there are N different applications, a performance test (profiling) of each application is performed by using a composite application from 1 to N, and a performance model for each application is called a machine learning technique . Then, the optimum virtual machine arrangement for the case where these N applications are executed together can be derived by using the performance model of each application, and an optimization technique such as a simulated quenching technique can be applied in this process.

지금까지 설명한 바와 같은 본 발명의 일 실시예에 의한 가상 머신 배치 선택 방법에 의하면, 머신 러닝을 이용하여 생성된 성능 모델을 통해 각 배치 방법의 성능을 쉽게 예측할 수 있으며, 이로써 시간과 시스템 자원이 지나치게 소모되는 것을 방지할 수 있다.According to the virtual machine placement selection method of the present invention as described above, the performance of each placement method can be easily predicted through the performance model created using the machine learning, Which can be prevented from being consumed.

본 발명에 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.Combinations of each step of the flowchart and each block of the block diagrams appended to the present invention 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 the instructions, which may be executed by a processor of a computer or other programmable data processing apparatus, And means for performing the functions described in each step are created. These computer program instructions may also be stored in a computer usable or computer readable memory capable of directing a computer or other programmable data processing apparatus to implement the functionality in a particular manner so that the computer usable or computer readable memory It is also possible for the instructions stored in the block diagram to produce a manufacturing item containing instruction means for performing the functions described in each block or flowchart of the block diagram. Computer program instructions may also be stored on 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 that the instructions that perform the processing equipment provide the steps for executing the functions described in each block of the block diagram and at each step of the flowchart.

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

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

10: 컴퓨팅 시스템
11: 제 1 노드
12: 제 2 노드
21: 제 1 가상 머신
22: 제 2 가상 머신
100: 가상 머신 배치 선택 장치
110: 성능 모델 생성부
120: 데이터베이스
130: 배치 방법 선택부
10: Computing System
11: First node
12: second node
21: First virtual machine
22: Second Virtual Machine
100: Virtual Machine Placement Selection Device
110: Performance model generation unit
120: Database
130: placement method selection unit

Claims (13)

서로 다른 두 종류 이상의 물리적 노드(node)를 포함하는 컴퓨팅 시스템에 서로 다른 두 종류 이상의 가상 머신을 배치하기 위한 가상 머신 배치 선택 장치에 의해 수행되는 방법으로서,
상기 두 종류 이상의 가상 머신 각각에 대한 성능 모델을 생성하는 제 1 단계;
상기 두 종류 이상의 가상 머신 각각에 대한 성능 모델에 기초하여, 상기 두 종류 이상의 가상 머신을 종류별로 적어도 하나는 포함하는 가상 머신 집합의 각 가상 머신을, 상기 노드 중 하나에 각각 배치할 경우의 모든 경우의 수를 구하고, 상기 모든 경우의 수 각각에 대해 상기 컴퓨팅 시스템의 작업 수행 성능을 예측하는 제 2 단계; 및
상기 예측의 결과에 기초하여, 상기 노드에 대해 상기 가상 머신 집합의 각 가상 머신을 실제로 배치하기 전에, 상기 가상 머신 집합의 각 가상 머신을 상기 노드 중 하나에 각각 배치하는 모든 배치 방법 중 상기 작업 수행 성능이 최대가 될 것으로 예측되는 배치 방법을 선택하는 제 3 단계를 포함하는
가상 머신 배치 선택 방법.
A method performed by a virtual machine placement selection device for placing two or more different virtual machines in a computing system including two or more different physical nodes,
A first step of generating a performance model for each of the two or more kinds of virtual machines;
Each of the virtual machines of the virtual machine set including at least one of the two types of virtual machines based on the performance models for the two or more types of virtual machines, A second step of estimating the performance of the computing system for each of the above cases; And
Executing, based on the result of the prediction, all of the placement methods for placing each virtual machine of the virtual machine set in one of the nodes, before actually placing each virtual machine in the virtual machine set for the node, And a third step of selecting a placement method that is predicted to have the maximum performance
How to choose a virtual machine layout.
삭제delete 제 1 항에 있어서, 상기 제 1 단계는,
상기 두 종류 이상의 가상 머신 중 어느 한 종류의 가상 머신과, 특성 조절이 가능한 합성 응용을 위한 가상 머신이 상기 컴퓨팅 시스템에 함께 배치된 상태에서, 상기 컴퓨팅 시스템의 작업 수행 성능을 측정하는 단계;
상기 어느 한 종류의 가상 머신 및 상기 합성 응용을 위한 가상 머신의 배치 상태, 혹은 상기 합성 응용의 특성을 변화시키며 상기 측정을 반복하는 단계; 및
상기 반복된 측정 결과에 기초하여, 상기 어느 한 종류의 가상 머신에 대한 성능 모델을 생성하는 단계를 포함하는
가상 머신 배치 선택 방법.
2. The method according to claim 1,
Measuring the performance of the computing system in a state where a virtual machine of any one of the two or more types of virtual machines and a virtual machine for a composite application capable of controlling characteristics are co-located in the computing system;
Repeating the measurement while changing the arrangement state of any one of the virtual machines and the virtual machine for the synthetic application or the characteristics of the synthetic application; And
And generating a performance model for the one type of virtual machine based on the repeated measurement result
How to choose a virtual machine layout.
제 3 항에 있어서,
상기 성능 모델을 생성하는 단계는, 머신 러닝(machine learning) 기법을 이용하여 상기 반복된 테스트 결과를 학습함으로써 상기 성능 모델을 생성하는 단계를 포함하는
가상 머신 배치 선택 방법.
The method of claim 3,
Wherein generating the performance model comprises generating the performance model by learning the repeated test results using a machine learning technique
How to choose a virtual machine layout.
제 4 항에 있어서,
상기 머신 러닝 기법은, 랜덤 트리(random tree), RepTree, ANN(Artificial Neural Network), SVM(Support Vector Machine) 중 적어도 하나를 포함하는
가상 머신 배치 선택 방법.
5. The method of claim 4,
The machine learning technique includes at least one of a random tree, RepTree, an artificial neural network (ANN), and a support vector machine (SVM)
How to choose a virtual machine layout.
제 3 항에 있어서,
상기 합성 응용의 특성은, 상기 합성 응용의 네트워크 사용량, 상기 합성 응용의 스토리지(storage) 사용량 중 적어도 하나를 포함하는 가상 머신 배치 선택 방법.
The method of claim 3,
Wherein the characteristics of the composite application include at least one of a network usage of the composite application and a storage usage of the composite application.
제 3 항에 있어서,
상기 컴퓨팅 시스템의 측정 중 적어도 한 번은, 상기 컴퓨팅 시스템의 노드 중 상기 어느 한 종류의 가상 머신과 상기 합성 응용을 위한 가상 머신을 모두 포함하는 노드가 존재할 조건에서 수행되는
가상 머신 배치 선택 방법.
The method of claim 3,
Wherein at least one of the measurements of the computing system is performed under a condition that a node including both the virtual machine of any one of the nodes of the computing system and the virtual machine for the synthesizing application exists
How to choose a virtual machine layout.
제 1 항에 있어서, 상기 제 3 단계는,
상기 배치 방법 중 임의의 배치 방법을 선택하고, 상기 임의의 배치 방법에서의 상기 컴퓨팅 시스템의 작업 수행 성능을 예측하는 단계; 및
전역 최적화 방법을 이용하여, 상기 배치 방법을 변화시켜 가며 상기 컴퓨팅 시스템의 작업 수행 성능이 최대가 되는 배치 방법을 찾는 단계를 포함하는
가상 머신 배치 선택 방법.
2. The method according to claim 1,
Selecting an arbitrary arrangement method among the arrangement methods and predicting performance of the computing system in the arbitrary arrangement method; And
And a step of finding a placement method in which the performance of the computing system is maximized by changing the placement method using a global optimization method
How to choose a virtual machine layout.
제 8 항에 있어서,
상기 전역 최적화 방법은 모의 담금질 기법(simulated annealing)인
가상 머신 배치 선택 방법.
9. The method of claim 8,
The global optimization method may be a simulated annealing
How to choose a virtual machine layout.
제 8 항에 있어서, 상기 성능을 예측하는 단계는,
상기 가상 머신 집합의 각 가상 머신에 대해, 상기 각 가상 머신에 대한 성능 모델을 이용하여, 상기 임의의 배치 방법에서의 상기 각 가상 머신에 대한 작업 수행 성능을 예측하는 단계; 및
상기 각 가상 머신에 대한 작업 수행 성능에 기초하여, 상기 임의의 배치 방법에서의 상기 컴퓨팅 시스템의 작업 수행 성능을 예측하는 단계를 포함하는
가상 머신 배치 선택 방법.
9. The method of claim 8,
Estimating performance of each virtual machine in the arbitrary placement method using a performance model for each virtual machine for each virtual machine in the virtual machine set; And
And predicting performance of the computing system's performance in the arbitrary placement method based on performance of work for each virtual machine
How to choose a virtual machine layout.
서로 다른 두 종류 이상의 물리적 노드(node)를 포함하는 컴퓨팅 시스템에 서로 다른 두 종류 이상의 가상 머신을 배치하기 위한 장치로서,
상기 두 종류 이상의 가상 머신 각각에 대한 성능 모델을 생성하는 성능 모델 생성부; 및
상기 두 종류 이상의 가상 머신 각각에 대한 성능 모델에 기초하여, 상기 두 종류 이상의 가상 머신을 종류별로 적어도 하나는 포함하는 가상 머신 집합의 각 가상 머신을, 상기 노드 중 하나에 각각 배치할 경우의 모든 경우의 수를 구하고, 상기 모든 경우의 수 각각에 대해 상기 컴퓨팅 시스템의 작업 수행 성능을 예측하고, 상기 예측의 결과에 기초하여, 상기 노드에 대해 상기 가상 머신 집합의 각 가상 머신을 실제로 배치하기 전에, 상기 가상 머신 집합의 각 가상 머신을 상기 노드 중 하나에 각각 배치하는 모든 배치 방법 중 상기 작업 수행 성능이 최대가 될 것으로 예측되는 배치 방법을 선택하는 배치 방법 선택부를 포함하는
가상 머신 배치 선택 장치.
An apparatus for placing two or more different virtual machines in a computing system including two or more different physical nodes,
A performance model generating unit for generating a performance model for each of the two or more virtual machines; And
Each of the virtual machines of the virtual machine set including at least one of the two types of virtual machines based on the performance models for the two or more types of virtual machines, Estimating the performance of the computing system for each of the number of all cases, and before actually placing each virtual machine of the set of virtual machines for the node based on a result of the prediction, And a placement method selection unit for selecting a placement method in which the performance of the job is predicted to be the maximum among all the placement methods of placing each virtual machine of the virtual machine set in one of the nodes
Virtual machine batch selection device.
제 1 항 및 제 3 항 내지 제 10 항 중 어느 한 항에 기재된 방법에 따른 각각의 단계를 수행하는, 컴퓨터 판독 가능 기록매체에 저장된 프로그램.A program stored in a computer-readable medium for performing the respective steps according to the method of any one of claims 1 and 3 to 10. 제 1 항 및 제 3 항 내지 제 10 항 중 어느 한 항에 기재된 방법에 따른 각각의 단계를 수행하는 명령어를 포함하는 프로그램이 기록된 컴퓨터 판독 가능 기록매체.11. A computer-readable medium having recorded thereon instructions for performing the respective steps according to the method of any one of claims 1 to 10.
KR1020170054776A 2017-04-28 2017-04-28 Apparatus and method for selecting placement of virtual machine KR101886317B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170054776A KR101886317B1 (en) 2017-04-28 2017-04-28 Apparatus and method for selecting placement of virtual machine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170054776A KR101886317B1 (en) 2017-04-28 2017-04-28 Apparatus and method for selecting placement of virtual machine

Publications (1)

Publication Number Publication Date
KR101886317B1 true KR101886317B1 (en) 2018-08-08

Family

ID=63229900

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170054776A KR101886317B1 (en) 2017-04-28 2017-04-28 Apparatus and method for selecting placement of virtual machine

Country Status (1)

Country Link
KR (1) KR101886317B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10581885B1 (en) 2018-11-28 2020-03-03 Korea Internet & Security Agency Reinforcement learning method in which discount factor is automatically adjusted
KR102109088B1 (en) * 2019-09-05 2020-05-12 오케스트로 주식회사 Calculation method of vitual machine prediction workload and prediction device implementing the same
KR102123117B1 (en) * 2019-01-15 2020-06-15 연세대학교 산학협력단 Apparatus and method for predicting performance and power in multi-node system
KR20210029073A (en) * 2019-09-05 2021-03-15 오케스트로 주식회사 Virtual machine workload prediction method based on multiple prediction models

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110067081A (en) 2009-12-13 2011-06-21 인터내셔널 비지네스 머신즈 코포레이션 Managing remote deployment of a virtual machine in a network environment
KR20150015137A (en) * 2013-07-31 2015-02-10 서울대학교산학협력단 Virtual machine allocation method to minimize performance interference between virtual machines
JP2015138432A (en) * 2014-01-23 2015-07-30 日本電気株式会社 Performance prediction device, performance model generation method and program
KR20150092492A (en) * 2014-02-05 2015-08-13 순천향대학교 산학협력단 System and method for allocating virtual machine for effective use of multi resource in cloud
JP2015165362A (en) * 2014-03-03 2015-09-17 日本電気株式会社 Information processing unit for measuring performance, performance measuring method and program therefor
KR101600129B1 (en) * 2009-04-30 2016-03-04 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 Application efficiency engine
JP5983728B2 (en) * 2012-03-08 2016-09-06 日本電気株式会社 Virtual machine management apparatus and virtual machine management method

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101600129B1 (en) * 2009-04-30 2016-03-04 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 Application efficiency engine
KR20110067081A (en) 2009-12-13 2011-06-21 인터내셔널 비지네스 머신즈 코포레이션 Managing remote deployment of a virtual machine in a network environment
JP5983728B2 (en) * 2012-03-08 2016-09-06 日本電気株式会社 Virtual machine management apparatus and virtual machine management method
KR20150015137A (en) * 2013-07-31 2015-02-10 서울대학교산학협력단 Virtual machine allocation method to minimize performance interference between virtual machines
JP2015138432A (en) * 2014-01-23 2015-07-30 日本電気株式会社 Performance prediction device, performance model generation method and program
KR20150092492A (en) * 2014-02-05 2015-08-13 순천향대학교 산학협력단 System and method for allocating virtual machine for effective use of multi resource in cloud
JP2015165362A (en) * 2014-03-03 2015-09-17 日本電気株式会社 Information processing unit for measuring performance, performance measuring method and program therefor

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10581885B1 (en) 2018-11-28 2020-03-03 Korea Internet & Security Agency Reinforcement learning method in which discount factor is automatically adjusted
KR102123117B1 (en) * 2019-01-15 2020-06-15 연세대학교 산학협력단 Apparatus and method for predicting performance and power in multi-node system
KR102109088B1 (en) * 2019-09-05 2020-05-12 오케스트로 주식회사 Calculation method of vitual machine prediction workload and prediction device implementing the same
KR20210029073A (en) * 2019-09-05 2021-03-15 오케스트로 주식회사 Virtual machine workload prediction method based on multiple prediction models
KR102347375B1 (en) 2019-09-05 2022-01-05 오케스트로 주식회사 Virtual machine workload prediction method based on multiple prediction models

Similar Documents

Publication Publication Date Title
KR101886317B1 (en) Apparatus and method for selecting placement of virtual machine
KR102362157B1 (en) Batch processing in a neural network processor
US20190332422A1 (en) Dynamic accelerator scheduling and grouping for deep learning jobs in a computing cluster
US9569179B1 (en) Modifying models based on profiling information
US10409699B1 (en) Live data center test framework
US9444717B1 (en) Test generation service
JP2021532437A (en) Improving machine learning models to improve locality
US9396160B1 (en) Automated test generation service
US20210209481A1 (en) Methods and systems for dynamic service performance prediction using transfer learning
Branke et al. Evolutionary search for difficult problem instances to support the design of job shop dispatching rules
Truchet et al. Prediction of parallel speed-ups for las vegas algorithms
US20190377606A1 (en) Smart accelerator allocation and reclamation for deep learning jobs in a computing cluster
Sundas et al. An introduction of CloudSim simulation tool for modelling and scheduling
US20160132770A1 (en) Early generation of individuals to accelerate genetic algorithms
Courageux-Sudan et al. Automated performance prediction of microservice applications using simulation
Saleh et al. A dynamic simulation environment for container-based cloud data centers using containercloudsim
Fanjiang et al. Time series QoS forecasting for Web services using multi-predictor-based genetic programming
JPWO2007043144A1 (en) Load test apparatus and method
US11914931B2 (en) Predicting on chip transient thermal response in a multi-chip system using an RNN-based predictor
CN111061618B (en) Cloud platform simulation system, cloud platform performance test method and computer equipment
Gribaudo et al. Analysis of the influence of application deployment on energy consumption
Swain et al. Genetic algorithm-based approach for adequate test data generation
Sapra et al. Exploring multi-core systems with lifetime reliability and power consumption trade-offs
Filianin et al. Develop a Lightweight MEC Platform Simulator
Nasar et al. Testing resource allocation for fault detection process

Legal Events

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