KR20190042465A - Apparatus for managing disaggregated memory and method for the same - Google Patents

Apparatus for managing disaggregated memory and method for the same Download PDF

Info

Publication number
KR20190042465A
KR20190042465A KR1020180122434A KR20180122434A KR20190042465A KR 20190042465 A KR20190042465 A KR 20190042465A KR 1020180122434 A KR1020180122434 A KR 1020180122434A KR 20180122434 A KR20180122434 A KR 20180122434A KR 20190042465 A KR20190042465 A KR 20190042465A
Authority
KR
South Korea
Prior art keywords
memory
size
local
page
local memory
Prior art date
Application number
KR1020180122434A
Other languages
Korean (ko)
Other versions
KR102469927B1 (en
Inventor
김강호
고광원
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to US16/162,107 priority Critical patent/US10754547B2/en
Publication of KR20190042465A publication Critical patent/KR20190042465A/en
Application granted granted Critical
Publication of KR102469927B1 publication Critical patent/KR102469927B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

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

Abstract

Disclosed is a method for managing a partition memory. According to the present disclosure, the method may comprise the processes of: allocating at least one memory page to a local memory and a remote memory; confirming an access request of the memory page; determining whether a target performance ratio required by a service is satisfied according to whether the memory page requested for access is allocated to the remote memory; estimating a size of the local memory based on a histogram based on an LRU distance in response to the satisfaction of the target performance ratio; and reallocating the memory page requested for access in consideration of the predicted size of the local memory.

Description

분할 메모리 관리장치 및 방법{APPARATUS FOR MANAGING DISAGGREGATED MEMORY AND METHOD FOR THE SAME}[0001] APPARATUS FOR MANAGING DISAGGREGATED MEMORY AND METHOD FOR THE SAME [0002]

본 개시는 컴퓨팅 시스템에 관한 것이며, 보다 구체적으로는 가상머신에 할당하는 메모리의 크기를 제어하는 방법 및 장치에 대한 것이다.This disclosure relates to computing systems, and more particularly, to a method and apparatus for controlling the size of memory allocated to a virtual machine.

네트워킹 기술의 발전에 따라, 컴퓨팅 자원을 공유하는 클라우드 시스템이 제공되고 있다. 클라우드 시스템은 다양한 물리적인 인프라스트럭처를 다수의 사용자가 공유할 수 있도록 구성될 수 있는데, 물리적인 인프라스트럭처는 프로세서, 메모리, 스토리지, 네트워킹 등을 구비한 하나 이상의 컴퓨팅 시스템을 포함할 수 있다. [0003] With the development of networking technology, a cloud system sharing computing resources is being provided. A cloud system may be configured to allow multiple users to share a variety of physical infrastructures, which may include one or more computing systems with processors, memory, storage, networking, and the like.

응용 프로그램에서 요구하는 작업 부하를 구현 또는 실행하기 위해서는 물리적인 인프라스트럭처를 사용해야 한다. 그런데, 물리적인 인프라스트럭처는 클라우드 시스템 내에서 공유되어야 하므로, 클라우드 시스템은 논리 서버 또는 가상 머신(virtual machine, VM)을 통해 응용 프로그램에서 요구하는 작업 부하를 구현 또는 실행하기 위한 물리적인 인프라스트럭처를 관리하고 있다.The physical infrastructure must be used to implement or execute the workload required by the application. However, since the physical infrastructure must be shared within the cloud system, the cloud system manages the physical infrastructure to implement or execute the workload required by the application through a logical server or virtual machine (VM). .

나아가, 인메모리 데이터베이스(In-memory database), 데이터 캐싱(data caching), 생물 정보학(bioinformatics) 및 그래프 처리(graph processing)와 같은 데이터 집약적(data intensive)인 작업량의 급증으로 인해 클라우드 시스템에서 요구되는 메모리 용량이 증가하고 있다. Furthermore, the surge in data intensive workloads such as in-memory databases, data caching, bioinformatics, and graph processing, Memory capacity is increasing.

이러한 추세에 맞추어, 단일 가상머신(Virtual Machine, VM)에 1TB 이상의 메모리를 사용할 수 있는 대용량 유형의 클라우드 시스템이 제공되고 있다. In line with this trend, a large-capacity type of cloud system is available that can use more than 1TB of memory for a single virtual machine (VM).

전술한 바와 같이, 대용량 유형의 클라우드 시스템을 제공하기 위해서는 대용량 물리 서버 인프라스트럭처가 요구되지만, 이러한 인프라스트럭처를 구축하기 위해서는 많은 비용이 소모되는 문제가 있다.As described above, in order to provide a large-capacity type cloud system, a large-capacity physical server infrastructure is required, but there is a problem that it is expensive to construct such an infrastructure.

대용량 물리 서버 대신 다수의 소용량 볼륨 범용 서버를 사용하여 대용량 메모리를 지원하기 위해, 서로 다른 물리적 컴퓨팅 장치(예, 서버)에 분산된 메모리를 단일 메모리로써 운영하는 분할메모리(disaggregated memory) 구조 기술이 사용될 수 있다.In order to support a large memory using a large number of small volume general purpose servers instead of a large physical server, a disaggregated memory structure technique which operates the memory distributed in different physical computing devices (for example, servers) as a single memory is used .

본 개시의 기술적 과제는 분할 메모리 구조에서, 메모리를 효율적으로 관리할 수 있는 장치 및 방법을 제공하는 것이다. SUMMARY OF THE INVENTION It is an object of the present invention to provide an apparatus and a method for efficiently managing a memory in a divided memory structure.

본 개시의 다른 기술적 과제는 분할 메모리 구조로 구성된 클라우드 시스템에서 요구하는 계약 성능을 보장하면서 메모리를 관리할 수 있는 장치 및 방법을 제공하는 것이다. It is another object of the present invention to provide an apparatus and method for managing memory while ensuring contract performance required in a cloud system configured with a partitioned memory structure.

본 개시의 또 다른 기술적 과제는 LRU 거리 기반의 성능 예측을 통해 요구되는 계약 성능을 보장할 수 있는 메모리를 제공하는 장치 및 방법을 제공하는 것이다. It is another object of the present invention to provide an apparatus and method for providing a memory capable of guaranteeing required contract performance through LRU distance-based performance prediction.

본 개시에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The technical objects to be achieved by the present disclosure are not limited to the above-mentioned technical subjects, and other technical subjects which are not mentioned are to be clearly understood from the following description to those skilled in the art It will be possible.

본 개시의 일 양상에 따르면 분할 메모리 관리방법이 제공될 수 있다. 상기 방법은, 메모리 관리방법에 있어서, 적어도 하나의 메모리 페이지를 로컬 메모리 및 원격 메모리에 할당하는 과정과, 상기 메모리 페이지의 접근 요청을 확인하는 과정과, 접근 요청된 상기 메모리 페이지가 원격 메모리에 할당되어 있음에 따라, 서비스에서 요구하는 목표 성능 비율을 만족하는지 여부를 확인하는 과정과, 상기 목표 성능 비율을 만족하지 않음에 대응하여, LRU 거리 기반의 히스토그램에 기초한 상기 로컬 메모리의 크기를 예측하는 과정과, 예측된 상기 로컬 메모리의 크기를 고려하여, 접근 요청된 상기 메모리 페이지를 재할당하는 과정을 포함할 수 있다. According to an aspect of the present disclosure, a divided memory management method can be provided. The method comprises the steps of: allocating at least one memory page to a local memory and a remote memory; confirming an access request of the memory page; Estimating a size of the local memory based on the LRU distance based histogram in response to the satisfaction of the target performance ratio; And reallocating the requested memory page in consideration of the predicted size of the local memory.

본 개시의 다른 양상에 따르면 분할 메모리 관리장치가 제공될 수 있다. 상기 장치는 로컬 영역의 컴퓨팅 장치에 구비된 로컬 메모리 및 원격지의 컴퓨팅 장치에 구비된 원격 메모리를 포함하는 분할 메모리부와, 응용 프로그램의 구축 또는 실행을 위해 요구되는 적어도 하나의 메모리 페이지를 관리하는 메모리 가상머신부와, 상기 분할 메모리부와 메모리 가상머신부 사이에 구비되며, 상기 적어도 하나의 메모리 페이지를 로컬 메모리 및 원격 메모리에 할당하는 메모리 하이퍼바이저부와, 상기 메모리 페이지의 접근 요청을 확인하고, 접근 요청된 상기 메모리 페이지가 원격 메모리에 할당되어 있음에 따라, 서비스에서 요구하는 목표 성능 비율을 만족하는지 여부를 확인하고, 상기 목표 성능 비율을 만족하지 않음에 대응하여, LRU 거리 기반의 히스토그램에 기초한 상기 로컬 메모리의 크기를 예측하는 성능 예측부를 포함할 수 있다. According to another aspect of the present disclosure, a divided memory management apparatus can be provided. The apparatus includes a partitioned memory unit including a local memory provided in a computing device in a local area and a remote memory included in a remote computing device, a memory for managing at least one memory page required for building or executing an application program, A memory hypervisor unit disposed between the partition memory unit and the memory virtual machine unit and allocating the at least one memory page to a local memory and a remote memory; Based on a histogram based on the LRU distance, in response to the fact that the memory page requested to be accessed is allocated to the remote memory, satisfies a target performance ratio required by the service, And a performance predicting unit for predicting the size of the local memory It can hamhal.

본 개시의 또 다른 양상에 따르면 분할 메모리 관리장치가 제공될 수 있다. 상기 장치는 로컬 영역의 컴퓨팅 장치에 구비된 로컬 메모리 및 원격지의 컴퓨팅 장치에 구비된 원격 메모리를 포함하는 분할 메모리부와, 응용 프로그램의 구축 또는 실행을 위해 요구되는 적어도 하나의 메모리 페이지를 관리하는 메모리 가상머신부와, 상기 분할 메모리부와 메모리 가상머신부 사이에 구비되며, 상기 적어도 하나의 메모리 페이지를 로컬 메모리 및 원격 메모리에 할당하고, 상기 메모리 페이지의 접근 요청을 확인하고, 접근 요청된 상기 메모리 페이지가 원격 메모리에 할당되어 있음에 따라, 서비스에서 요구하는 목표 성능 비율을 만족하는지 여부를 확인하고, 상기 목표 성능 비율을 만족하지 않음에 대응하여, LRU 거리 기반의 히스토그램에 기초한 상기 로컬 메모리의 크기를 예측하고, 예측된 상기 로컬 메모리의 크기를 고려하여, 접근 요청된 상기 메모리 페이지를 재할당하는 메모리 하이퍼바이저부를 포함할 수 있다.According to another aspect of the present disclosure, a divided memory management apparatus can be provided. The apparatus includes a partitioned memory unit including a local memory provided in a computing device in a local area and a remote memory included in a remote computing device, a memory for managing at least one memory page required for building or executing an application program, A virtual machine unit; and a memory unit, which is provided between the divided memory unit and the memory virtual machine unit, allocates the at least one memory page to a local memory and a remote memory, confirms an access request of the memory page, Determining whether the target performance ratio required by the service is satisfied as the page is allocated to the remote memory and determining a size of the local memory based on the LRU distance based histogram, And estimates the size of the local memory And a memory hypervisor unit for reallocating the memory page requested to be accessed.

본 개시에 대하여 위에서 간략하게 요약된 특징들은 후술하는 본 개시의 상세한 설명의 예시적인 양상일 뿐이며, 본 개시의 범위를 제한하는 것은 아니다.The features briefly summarized above for this disclosure are only exemplary aspects of the detailed description of the disclosure which follow, and are not intended to limit the scope of the disclosure.

본 개시에 따르면, 분할 메모리 구조에서, 메모리를 효율적으로 관리할 수 있는 장치 및 방법이 제공될 수 있다. According to the present disclosure, in a divided memory structure, an apparatus and method capable of efficiently managing a memory can be provided.

또한, 본 개시에 따르면, 분할 메모리 구조로 구성된 클라우드 시스템에서 요구하는 계약 성능을 보장하면서 메모리를 관리할 수 있다. Further, according to the present disclosure, it is possible to manage a memory while ensuring contract performance required in a cloud system configured with a divided memory structure.

또한, 본 개시에 따르면, LRU 거리 기반의 성능 예측을 통해 요구되는 계약 성능을 보장할 수 있는 메모리를 제공할 수 있다. In addition, according to the present disclosure, it is possible to provide a memory capable of guaranteeing required contract performance through LRU distance-based performance prediction.

본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects obtainable from the present disclosure are not limited to the effects mentioned above, and other effects not mentioned can be clearly understood by those skilled in the art from the description below will be.

도 1은 본 개시의 일 실시예에 따른 분할 메모리 관리장치가 적용되는 시스템을 예시하는 도면이다.
도 2는 본 개시의 일 실시예에 따른 분할 메모리 관리장치의 구조를 예시하는 블록도이다.
도 3은 본 개시의 일 실시예에 따른 분할 메모리 관리장치에서 생성되는 LRU 거리 히스토그램을 예시하는 도면이다.
도 4는 본 개시의 일 실시예에 따른 분할 메모리 관리방법의 순서를 예시하는 흐름도이다.
도 5는 본 개시의 일 실시예에 따른 분할 메모리 관리방법에 구비된 LRU 거리 기반의 메모리 성능 예측과정의 상세 순서를 예시하는 흐름도이다.
1 is a diagram illustrating a system to which a divided memory management apparatus according to an embodiment of the present disclosure is applied.
2 is a block diagram illustrating the structure of a partitioned memory management device in accordance with one embodiment of the present disclosure;
3 is a diagram illustrating an LRU distance histogram generated in a partitioned memory management device according to an embodiment of the present disclosure;
4 is a flow chart illustrating a sequence of a divided memory management method in accordance with one embodiment of the present disclosure;
FIG. 5 is a flowchart illustrating a detailed procedure of a LRU distance-based memory performance prediction process included in the divided memory management method according to an embodiment of the present disclosure.

이하에서는 첨부한 도면을 참고로 하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나, 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings, which will be easily understood by those skilled in the art. However, the present disclosure may be embodied in many different forms and is not limited to the embodiments described herein.

본 개시의 실시 예를 설명함에 있어서 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그에 대한 상세한 설명은 생략한다. 그리고, 도면에서 본 개시에 대한 설명과 관계없는 부분은 생략하였으며, 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.In the following description of the embodiments 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 disclosure rather unclear. Parts not related to the description of the present disclosure in the drawings are omitted, and like parts are denoted by similar reference numerals.

본 개시에 있어서, 어떤 구성요소가 다른 구성요소와 "연결", "결합" 또는 "접속"되어 있다고 할 때, 이는 직접적인 연결관계뿐만 아니라, 그 중간에 또 다른 구성요소가 존재하는 간접적인 연결관계도 포함할 수 있다. 또한 어떤 구성요소가 다른 구성요소를 "포함한다" 또는 "가진다"고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 배제하는 것이 아니라 또 다른 구성요소를 더 포함할 수 있는 것을 의미한다.In the present disclosure, when an element is referred to as being "connected", "coupled", or "connected" to another element, it is understood that not only a direct connection relationship but also an indirect connection relationship May also be included. Also, when an element is referred to as " comprising " or " having " another element, it is meant to include not only excluding another element but also another element .

본 개시에 있어서, 음성 파라미터, 제2 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용되며, 특별히 언급되지 않는 한 구성요소들간의 순서 또는 중요도 등을 한정하지 않는다. 따라서, 본 개시의 범위 내에서 일 실시 예에서의 음성 파라미터 구성요소는 다른 실시 예에서 제2 구성요소라고 칭할 수도 있고, 마찬가지로 일 실시 예에서의 제2 구성요소를 다른 실시 예에서 음성 파라미터 구성요소라고 칭할 수도 있다. In the present disclosure, terms such as a voice parameter, a second, etc. are used only for the purpose of distinguishing one element from another, and do not limit the order or importance of the elements unless specifically mentioned. Thus, within the scope of this disclosure, a speech parameter component in one embodiment may be referred to as a second component in another embodiment, and similarly a second component in one embodiment may be referred to as a speech parameter component .

본 개시에 있어서, 서로 구별되는 구성요소들은 각각의 특징을 명확하게 설명하기 위함이며, 구성요소들이 반드시 분리되는 것을 의미하지는 않는다. 즉, 복수의 구성요소가 통합되어 하나의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있고, 하나의 구성요소가 분산되어 복수의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있다. 따라서, 별도로 언급하지 않더라도 이와 같이 통합된 또는 분산된 실시 예도 본 개시의 범위에 포함된다. In the present disclosure, the components that are distinguished from each other are intended to clearly illustrate each feature and do not necessarily mean that components are separate. That is, a plurality of components may be integrated into one hardware or software unit, or a single component may be distributed into a plurality of hardware or software units. Thus, unless otherwise noted, such integrated or distributed embodiments are also included within the scope of this disclosure.

본 개시에 있어서, 다양한 실시 예에서 설명하는 구성요소들이 반드시 필수적인 구성요소들은 의미하는 것은 아니며, 일부는 선택적인 구성요소일 수 있다. 따라서, 일 실시 예에서 설명하는 구성요소들의 부분집합으로 구성되는 실시 예도 본 개시의 범위에 포함된다. 또한, 다양한 실시 예에서 설명하는 구성요소들에 추가적으로 다른 구성요소를 포함하는 실시 예도 본 개시의 범위에 포함된다. In the present disclosure, the components described in the various embodiments are not necessarily essential components, and some may be optional components. Thus, embodiments consisting of a subset of the components described in one embodiment are also included within the scope of the present disclosure. Also, embodiments that include other elements in addition to the elements described in the various embodiments are also included in the scope of the present disclosure.

이하, 첨부한 도면을 참조하여 본 개시의 실시 예들에 대해서 설명한다.Hereinafter, embodiments of the present disclosure will be described with reference to the accompanying drawings.

도 1은 본 개시의 일 실시예에 따른 분할 메모리 관리장치가 적용되는 시스템을 예시하는 도면이다. 1 is a diagram illustrating a system to which a divided memory management apparatus according to an embodiment of the present disclosure is applied.

도 1을 참조하면, 분할 메모리 관리장치가 적용되는 시스템(100)은 리소스(110), 하이퍼바이저(120) 및 가상머신(130)을 포함한다. Referring to FIG. 1, a system 100 to which a divided memory management apparatus is applied includes a resource 110, a hypervisor 120, and a virtual machine 130.

리소스(110)는 복수 개의 랙(112-1, 112-2 , ≤. 112-n)을 포함할 수 있다. 각각의 랙(112-1, 112-2 , ≤. 112-n)은 다양한 컴퓨팅 자원을 포함할 수 있다. 이러한 컴퓨팅 자원은 여러 유형의 물리적 자원을 포함할 수 있다. 예컨대, 물리적 자원은 CPU, 메모리(예를 들면, 랜덤 액세스 메모리(Random Access Memory, RAM), 스토리지(예를 들면, 하드 디스크 또는 솔리드 스테이트 드라이브), NW I/O 장치(예를 들면, 네트워크 인터페이스 카드), 전력 장치(예를 들면, 파워 브릭(power brick), 냉각 장치(예를 들면, 팬 또는 냉각제), 또는 기타 유형의 자원(예를 들면, 네트워크 스위치 장치)을 포함할 수 있다. The resource 110 may include a plurality of racks 112-1, 112-2, 112-n. Each rack 112-1, 112-2, 112-n may include various computing resources. Such computing resources may include various types of physical resources. For example, the physical resources may include a CPU, memory (e.g., random access memory (RAM), storage (e.g., hard disk or solid state drive), NW I / O device Card), a power device (e.g., a power brick, a cooling device (e.g., fan or coolant), or other type of resource (e.g., a network switch device).

이러한 컴퓨팅 자원은 하이퍼바이저(120)(예를 들면, 자원 관리자 또는 컨트 롤러에게)를 통해 이용될 수 있다. 하이퍼바이저(120)는 시스템(100)의 자원 관리자, 컨트롤러 또는 스케줄러 등에 의해 가상머신(130)에 할당될 수 있다. 특히, 하이퍼바이저(120)는 복수 개의 컴퓨팅 자원에 대한 점수를 산출하고, 각각의 컴퓨팅 자원에 대한 순위를 평가할 수 있다. 컴퓨팅 자원에 대한 순위 평가는 전력, 성능, 비용, 가용성, 또는 유지관리 요건을 충족할 수 있는 요소에 대해 수행될 수 있다.Such computing resources may be utilized through the hypervisor 120 (e.g., to a resource manager or controller). The hypervisor 120 may be assigned to the virtual machine 130 by a resource manager, controller, or scheduler of the system 100. In particular, the hypervisor 120 may calculate scores for a plurality of computing resources and may evaluate a ranking for each computing resource. Ranking of computing resources can be performed on factors that can meet power, performance, cost, availability, or maintenance requirements.

하이퍼바이저(120)는 가상머신(130)이 작업부하를 구현, 구동 또는 실행하는 동안 가상머신(130)을 구성하거나 배치하기 위해 각각의 컴퓨팅 자원에 대한 복수의 동작 속성을 모니터링할 수 있다. The hypervisor 120 may monitor a plurality of operational attributes for each computing resource to configure or deploy the virtual machine 130 while the virtual machine 130 is implementing, driving, or executing a workload.

또한, 하이퍼바이저(120)는 컴퓨팅 자원의 점수를 기반으로 컴퓨팅 자원을 가상머신(130)에 할당할 수 있다. 예컨대, 하이퍼바이저(120)는 이전의 작업에서 요구되는 부하를 실현거나, 컴퓨팅 자원의 하나 이상의 다른 부분에 대해 결정된 과거 동작 점수와 비교된 그 동작 점수의 순위를 평가할 수 있다. 구체적으로, 제1컴퓨팅 자원의 순위가 다른 컴퓨팅 자원의 과거 동작 점수보다 낮은 순위로 평가되면, 하이퍼바이저(120)는 제1컴퓨팅 자원을 새로운 컴퓨팅 자원으로 대체할 수 있다. In addition, the hypervisor 120 may allocate computing resources to the virtual machine 130 based on scores of computing resources. For example, the hypervisor 120 may evaluate the ranking of its action points compared to the past action scores determined for one or more other parts of the computing resource, or to fulfill the load required in a previous task. Specifically, if the rank of the first computing resource is ranked lower than that of the other computing resources, the hypervisor 120 may replace the first computing resource with new computing resources.

한편, 가상머신(130)는 복수 개의 논리 서버 또는 가상머신(132-1, 132-2, ≤. 132-m)을 포함할 수 있다. 예를 들면, 논리 서버 또는 가상머신(132-1, 132-2, ≤. 132-m)은 작업 부하를 구현하거나 실행하기 위해 구성될 수 있다. 가상머신(130)에 요구되는 각각의 논리 서버는 하나 이상의 가상머신을 포함할 수 있다. 그리고, 각각의 가상머신에는 컴퓨팅 자원의 일부분이 할당될 수 있다. 다른 예로서, 컴퓨팅 자원은 특정 가상머신에 직접 할당될 수도 있다.On the other hand, the virtual machine 130 may include a plurality of logical servers or virtual machines 132-1, 132-2,? 132-m. For example, a logical server or virtual machine 132-1, 132-2,. 132-m may be configured to implement or execute a workload. Each logical server required in the virtual machine 130 may include one or more virtual machines. And, each virtual machine may be allocated a portion of computing resources. As another example, computing resources may be directly allocated to a particular virtual machine.

나아가, 컴퓨팅 자원에 구비된 메모리는 분할 메모리(disaggregated memory) 구조로 구비될 수 있다. 여기서, 분할 메모리(disaggregated memory) 구조는 물리적으로 서로 다른 장치(예, 서버 장치)에 분산된 복수의 메모리를 포함할 수 있다. 그리고, 복수의 메모리는 메모리가 구비된 위치에 기초하여, 컴퓨팅이 수행되는 장치와 동일한 장치에 위치한 로컬 메모리와, 컴퓨팅이 수행되는 장치와 다른 원격지의 장치에 위치한 원격 메모리로 구분할 수 있다.Further, the memory included in the computing resource may be provided in a disaggregated memory structure. Here, a disaggregated memory structure may include a plurality of memories dispersed physically in different apparatuses (e.g., server apparatuses). The plurality of memories can be classified into a local memory located in the same device as the device on which the computing is performed, and a remote memory located in a device other than the device on which computing is performed, based on the location of the memory.

이러한 분할 메모리 구조는 장치에서 사용하지 않는 메모리를 다른 장치에 동적으로 제공하여 메모리 사용량 불균형 문제를 해결할 수 있으며, 동시에 메모리 사용률을 높일 수 있다. 나아가, 이와 같이 복수의 장치가 메모리를 공유하여 사용함으로써, 복수의 장치가 로컬에서 사용할 수 있는 대용량의 메모리를 구비하지 않더라도, 대용량의 메모리를 사용할 수 있다.Such a divided memory structure can solve the memory usage unbalance problem by dynamically providing the memory not used by the device to another device, and at the same time, it can increase the memory usage rate. Further, by using a plurality of devices sharing a memory in this manner, a large-capacity memory can be used even if a plurality of devices do not have a large-capacity memory that can be used locally.

도 2는 본 개시의 일 실시예에 따른 분할 메모리 관리장치의 구조를 예시하는 블록도이다. 2 is a block diagram illustrating the structure of a partitioned memory management device in accordance with one embodiment of the present disclosure;

본 개시의 일 실시예에 따른 분할 메모리 관리장치는 전술한 도 1의 시스템(100)에 기초하여 구성될 수 있다. A partitioned memory management device according to one embodiment of the present disclosure may be configured based on the system 100 of FIG. 1 described above.

전술한 바와 같이 물리적 자원은 CPU, 메모리(예를 들면, 랜덤 액세스 메모리(Random Access Memory, RAM), 스토리지(예를 들면, 하드 디스크 또는 솔리드 스테이트 드라이브), NW I/O 장치(예를 들면, 네트워크 인터페이스 카드), 전력 장치(예를 들면, 파워 브릭(power brick), 냉각 장치(예를 들면, 팬 또는 냉각제), 또는 기타 유형의 자원(예를 들면, 네트워크 스위치 장치) 등을 포함할 수 있으나, 분할 메모리 관리장치는 다양한 물리적 자원 중, 메모리를 관리하기 위해 마련되는 장치로서, 메모리 관리에 필요한 구성을 포함할 수 있다. As described above, the physical resources may be a CPU, a memory (e.g., a random access memory (RAM), a storage (e.g., a hard disk or solid state drive), a NW I / O device (e.g., A network interface card), a power device (e.g., a power brick, a cooling device (e.g., fan or coolant), or other type of resource However, the divided memory management apparatus is an apparatus provided for managing a memory among various physical resources, and may include a configuration necessary for memory management.

도 2를 참조하면, 분할 메모리 관리장치(200)는 분할 메모리부(210), 메모리 하이퍼바이저부(220), 및 메모리 가상머신부(230)를 포함할 수 있다. Referring to FIG. 2, the partitioned memory management device 200 may include a partitioned memory unit 210, a memory hypervisor unit 220, and a memory virtual machine unit 230.

분할 메모리부(210)는 컴퓨팅이 수행되는 장치와 동일한 장치(200)에 위치한 로컬 메모리(211)와, 컴퓨팅이 수행되는 장치와 다른 원격지의 장치(200')에 위치한 원격 메모리(215)를 포함할 수 있다.The partition memory unit 210 includes a local memory 211 located in the same device 200 as the device on which computing is performed and a remote memory 215 located in the device 200 ' can do.

메모리 하이퍼바이저부(220)는 메모리 가상머신부(230)가 분할 메모리부(210)에 구비된 로컬 메모리(211) 및 원격 메모리(215)를 단일의 메모리로서 인식할 수 있도록 메모리 관리를 수행할 수 있다.The memory hypervisor unit 220 performs memory management so that the memory virtual machine unit 230 recognizes the local memory 211 and the remote memory 215 provided in the divided memory unit 210 as a single memory .

메모리 하이퍼바이저부(220)는 페이지 단위의 원격 메모리 액세스를 통해 원격 원격 메모리(215)에 액세스하는 복잡성을 제거할 수 있다. 구체적으로, 메모리 하이퍼바이저부(220)는 메모리 가상머신부(230)에서 접근 요청된 메모리 페이지가 로컬 메모리(211)에 존재하지 않으면, 페이지 폴트(page fault)를 발생시키고, 페이지 폴트 처리를 통해 원격 메모리(215)를 로컬 페이지로 가져(fetch)올 수 있다. 그리고, 메모리 하이퍼바이저부(220)는 페치된 로컬 페이지를 페이지 폴트(page fault)가 발생된 메모리 가상머신부(230)에 할당하여 관리할 수 있다. 이에 따라, 메모리 가상머신부(230)는 해당 메모리로의 접근이 요구될 경우, 페치된 로컬 페이지에 접근하여 처리할 수 있다. The memory hypervisor section 220 can eliminate the complexity of accessing the remote remote memory 215 through remote memory access on a page basis. Specifically, the memory hypervisor unit 220 generates a page fault if the memory page requested to be accessed by the memory virtual machine unit 230 is not present in the local memory 211, and performs page fault processing The remote memory 215 may be fetched to the local page. The memory hypervisor 220 can allocate and manage the fetched local page to the memory virtual machine 230 where a page fault has occurred. Accordingly, when the memory virtual machine unit 230 is requested to access the memory, the memory virtual machine unit 230 can access and process the fetched local page.

다른 예로서, 로컬 메모리(211)에서 사용할 수 있는 페이지가 존재하지 않을 경우, 메모리 하이퍼바이저부(220)는 로컬 메모리 페이지를 원격 메모리(215)로 내보낼(evict) 수 있으며, 이러한 동작을 통해 로컬 메모리 페이지를 확보할 수 있다. As another example, if there is no page available in the local memory 211, the memory hypervisor section 220 may evict the local memory page to the remote memory 215, A memory page can be obtained.

나아가, 메모리 하이퍼바이저부(220)는 메모리 가상머신부(230)에서 요구하는 용량의 메모리를 원할하게 제공하기 위하여, 메모리 가상머신부(230)에서 사용되는 메모리의 크기를 모니터링하고, 메모리 가상머신부(230)에서 요구되는 메모리의 크기를 예측할 필요가 있다.Further, the memory hypervisor unit 220 monitors the size of the memory used in the memory virtual machine unit 230 in order to uniformly provide the memory of the capacity required by the memory virtual machine unit 230, It is necessary to predict the size of the memory required by the unit 230.

이하, 메모리 하이퍼바이저부(220)가 메모리의 크기를 예측하는 동작에 대하여 상세하게 설명한다.Hereinafter, the operation of the memory hypervisor unit 220 for predicting the size of the memory will be described in detail.

메모리 가상머신부(230)를 통해 운영체제나 응용 프로그램이 수행될 수 있는데, 응용 프로그램의 실행시, 원격 메모리(215) 접근 횟수(n)에 비례하여 응용 프로그램의 실행 시간이 늘어날 수 있다. An operating system or an application program may be executed through the memory virtual machine unit 230. The execution time of the application program may be increased in proportion to the number n of accesses to the remote memory 215 when the application program is executed.

이에 기초하여, 원격 메모리(215) 접근 횟수(n)에 대한 응용 프로그램 실행시간(T(n))을 하기의 수학식 1과 같이 나타낼 수 있다. Based on this, the application program execution time T (n) for the access number n of the remote memory 215 can be expressed by the following equation (1).

Figure pat00001
Figure pat00001

여기서, L은 로컬 메모리(211)가 충분한 경우 메모리 가상머신부(230)에서의 응용 프로그램 실행 시간, A는 원격 메모리(215)에 접근하는데 소요되는 평균시간, n은 원격 메모리(215)에 접근한 횟수를 나타낸다. Where L is the application program execution time in the memory virtual machine unit 230 when A is sufficient, A is the average time required to access the remote memory 215, and n is the number of accesses to the remote memory 215 Indicates the number of times.

응용 프로그램 실행 시간(L)은 n과 관계없는 고정된 값으로서, 응용 프로그램을 실행한 후, 그 값을 확인할 수 있다. 이러한, 응용 프로그램 실행 시간(L)은 메모리 모니터링 시간주기(P), 원격 메모리(215) 접근 횟수(N), 원격 메모리(215) 접근 평균 시간(A) 등을 사용하여 하기의 수학식 2와 같이 나타낼 수 있다.The application execution time (L) is a fixed value irrespective of n, and it can be confirmed after executing the application program. The application program execution time L is calculated using the memory monitoring time period P, the number N of accesses to the remote memory 215, the access time average A of the remote memory 215, As shown in Fig.

Figure pat00002
Figure pat00002

한편, 성능 저하 비율은 하기의 수학식 3으로 나타낼 수 있다. On the other hand, the performance degradation ratio can be expressed by the following equation (3).

Figure pat00003
Figure pat00003

전술한 수학식 2를 사용하여 응용 프로그램 실행 시간(L)을 알 수 있으므로, 이를 수학식 1에 대입하여 n에 따른 응용프로그램 실행 시간을 하기의 수학식 4와 같이 계산할 수 있다. Since the application program execution time L can be known using Equation (2) described above, the application program execution time according to n can be calculated as Equation (4) by substituting this into Equation (1).

Figure pat00004
Figure pat00004

한편, 서비스(예, 클라우드 서비스)의 제공시, 서비스(예, 클라우드 서비스)에서 요구하는 성능 비율(이하, '목표 성능 비율' 이라 함.)을 보장할 필요가 있으므로, 메모리 하이퍼바이저부(220)는 메모리의 크기 예측시 목표 성능 비율을 고려할 필요가 있다. On the other hand, when providing a service (e.g., a cloud service), it is necessary to ensure a performance ratio (hereinafter referred to as a target performance ratio) required by a service (e.g., a cloud service) ) Needs to consider the target performance ratio in predicting the size of the memory.

목표 성능 비율(α)은 서비스에서 보장하는 성능 비율을 나타내는 것으로서, 0 내지 1 사이의 값으로 설정될 수 있다. 예컨대, 목표 성능 비율(α)의 값이 0.9일 경우, 서비스에서 계약된 메모리 전체를 메모리 가상머신부(230)에 할당했을 때와 비교하여, 메모리 가상머신부(230)에서 실행하는 응용 프로그램의 성능을 최소 90%이상 보장한다는 의미를 나타낸다. The target performance ratio? Represents a performance ratio guaranteed by the service, and may be set to a value between 0 and 1. For example, in the case where the value of the target performance ratio? Is 0.9, the value of the target performance ratio? Of the application program executed in the memory virtual machine unit 230 is compared with the case where the entire memory contracted by the service is allocated to the memory virtual machine unit 230 It means that the performance is guaranteed at least 90%.

이에 기초하여, 메모리 하이퍼바이저부(220)는 이러한 서비스의 계약 성능을 보장하기 위해서 응용 프로그램의 성능을 측정하고, 부족한 성능을 보완하기 위해서 추가 투입할 메모리 크기를 예측할 필요가 있다.On the basis of this, the memory hypervisor 220 needs to measure the performance of the application program in order to guarantee the contract performance of the service, and to predict the memory size to be added in order to compensate the insufficient performance.

목표 성능 비율(α)을 보장하려면 응용 프로그램의 실행시간이 L/α 보다 상대적으로 작거나 같아야 한다. 응용 프로그램의 실행시간을 P-L/α만큼 줄이려면 하기의 수학식 5가 나타내는 관계에 따라 원격 메모리 접근 횟수를 적어도 N-nt만큼 줄여야 한다. To guarantee the target performance ratio (α), the execution time of the application program must be smaller than or equal to L / α. To reduce the execution time of the application program by PL / ?, the number of remote memory accesses must be reduced by at least Nn t according to the relation represented by Equation (5) below.

Figure pat00005
Figure pat00005

그리고, 전술한 수학식 4 및 5를 참조하여, 줄여야 할 원격 메모리 접근 횟수(N-nt)는 하기의 수학식 6과 같이 나타낼 수 있다. Referring to equations (4) and (5), the number of remote memory accesses (Nn t ) to be reduced can be expressed by Equation (6) below.

Figure pat00006
Figure pat00006

한편, 메모리 하이퍼바이저부(220)는 N-nt 만큼의 원격 메모리 접근 횟수를 줄이기 위해서 추가로 필요한 로컬 메모리(211)의 크기를 계산할 수 있다. Meanwhile, the memory hypervisor unit 220 may calculate the size of the local memory 211, which is further required to reduce the number of remote memory accesses by Nn t .

이때, 메모리 하이퍼바이저부(220)는 원격 메모리(215)에 대한 페이지 LRU 거리 히스토그램(page LRU distance histogram)을 활용하여, 추가로 필요한 로컬 메모리(211)의 크기를 계산할 수 있다.At this time, the memory hypervisor unit 220 can calculate the size of the local memory 211, which is further required, by utilizing the page LRU distance histogram for the remote memory 215. [

구체적으로, 메모리 하이퍼바이저부(220)는 메모리 가상머신부(230)에 할당된 메모리 페이지 중 자주 사용되는 메모리 페이지는 로컬 메모리(211)에 할당할 수 있으며, 자주 사용되지 않는 메모리 페이지는 원격 메모리(215)에 할당할 수 있다. Specifically, the memory hypervisor unit 220 can allocate frequently used memory pages among the memory pages allocated to the memory virtual machine unit 230 to the local memory 211, (215).

또한, 메모리 하이퍼바이저부(220)는 로컬 메모리(211)를 메모리 캐쉬(cache)로서 사용할 수 있다. 그리고, 메모리 하이퍼바이저부(220)는 원격 메모리(215)로 내보내는 페이지(evicted page)의 LRU 거리를 산출할 수 있으며, 산출된 LRU 거리에 기초한 LRU 거리 히스토그램을 생성할 수 있다. In addition, the memory hypervisor unit 220 can use the local memory 211 as a memory cache. The memory hypervisor unit 220 can calculate the LRU distance of the page to be evicted to the remote memory 215 and generate the LRU distance histogram based on the calculated LRU distance.

예컨대, 메모리 가상머신부(230)에 할당된 메모리 페이지가 8개임을 예시하면, 메모리 하이퍼바이저부(220)는 원격 메모리(215)에 4개의 페이지를 할당하고, 로컬 메모리(211)에 4개의 페이지를 할당할 수 있다. For example, the memory hypervisor section 220 may allocate four pages to the remote memory 215 and may store four pages in the local memory 211. For example, You can assign pages.

구체적으로, 할당된 메모리 페이지가 A, B, C, D, E, F, G, H 페이지 일 경우, 메모리 하이퍼바이저부(220)는 로컬 메모리(211)에 A, B, C, D 페이지를 할당하고, 원격 메모리(215)에 E, F, G, H 페이지를 할당할 수 있다. Specifically, when the allocated memory pages are A, B, C, D, E, F, G, and H pages, the memory hypervisor unit 220 stores the A, B, C, and D pages in the local memory 211 And allocates E, F, G, and H pages to the remote memory 215. [

표 1과 같이, 메모리 가상머신부(230)의 페이지 접근 순서가 E, A, D, F, C, H인 경우, 원격 메모리(215)에 대한 LRU 거리는 하기의 표 1과 같이 산출할 수 있다. 표 1에서, 페이지를 나타내는 문자열의 왼쪽이 LRU 리스트에서 MRU 페이지를 나타내고, 문자열의 오른쪽이 LRU 페이지를 나타낸다. LRU 거리 값은 원격 메모리(211) 페이지의 각 위치에 접근한 회수를 나타낸다. As shown in Table 1, when the page access order of the memory virtual machine unit 230 is E, A, D, F, C, and H, the LRU distance to the remote memory 215 can be calculated as shown in Table 1 below . In Table 1, the left side of the string representing the page represents the MRU page in the LRU list, and the right side of the string represents the LRU page. The LRU distance value represents the number of times each location of the remote memory 211 page is accessed.

Figure pat00007
Figure pat00007

메모리 하이퍼바이저부(220)는 전술한 표 1의 LRU 거리 값을 누적 계산하여 도 3에 도시되는 LRU 거리 히스토그램을 생성할 수 있는데, 이러한 LRU 거리 히스토그램을 함수 형태로 나타낼 수 있다. The memory hypervisor 220 can generate the LRU distance histogram shown in FIG. 3 by cumulatively calculating the LRU distance values of Table 1 described above. The LRU distance histogram can be expressed in a function form.

나아가, LRU 거리 히스토그램 함수(H(c))는 LRU 거리에 기초한 원격 메모리(215) 접근 횟수에 대응될 수 있다. Further, the LRU distance histogram function H (c) may correspond to the number of remote memory 215 accesses based on the LRU distance.

원격 메모리(215)의 접근은 로컬 메모리(211)의 부족에 의해 발생될 수 있으므로, 원격 메모리(215) 접근 횟수는 로컬 메모리(211)의 부족량에 대응될 수 있다. 다시 말하면, LRU 거리에 기초한 원격 메모리(215) 접근 횟수 만큼의 메모리 크기(c)가 로컬 메모리(211)에 할당될 경우, 원격 메모리(215) 접근이 발생되지 않을 수 있다. 따라서, LRU 거리 히스토그램 함수(H(c))와 전술한 줄여야 할 원격 메모리 접근 횟수(N-nt)를 동일하게 설정하고, 이로부터 로컬 메모리(211)의 부족량, 즉, 추가할 로컬 메모리(211)의 크기(c)로 설정할 수 있다. 이에 기초하여, 메모리 하이퍼바이저부(220)는 추가할 로컬 메모리(211)의 크기(c)를 하기의 수학식 7의 연산을 통해 산출할 수 있다. Since the access of the remote memory 215 may be caused by the shortage of the local memory 211, the number of accesses of the remote memory 215 may correspond to the shortage of the local memory 211. [ In other words, when the memory size c of the number of times of access to the remote memory 215 based on the LRU distance is allocated to the local memory 211, remote memory 215 access may not occur. Therefore, the LRU distance histogram function H (c) is set equal to the number of times of remote memory access (Nn t ) to be reduced, and the deficit of the local memory 211, that is, (C). Based on this, the memory hypervisor 220 can calculate the size c of the local memory 211 to be added through the operation of Equation (7) below.

Figure pat00008
Figure pat00008

LRU 거리 히스토그램 함수(H(c)), 원격 메모리(215)에 접근하는데 소요되는 평균시간(A), 원격 메모리(215) 접근 횟수(N) 등은 응용 프로그램의 실행을 프로파일링하여 획득할 수 있으므로, 메모리 하이퍼바이저부(220)는 성능 예측을 위해서 미리 정해진 시간 주기 내에서 성능 저하 모니터링을 지속적으로 수행하고, 이에 기초하여 로컬 메모리(211)의 부족량, 즉, 추가할 로컬 메모리(211)의 크기(c)를 예측할 수 있다. The average time (A) for accessing the remote memory 215 and the number of accesses (N) for the remote memory 215 can be obtained by profiling the execution of the application program, such as the LRU distance histogram function H (c) Therefore, the memory hypervisor 220 continuously monitors performance degradation within a predetermined time period for performance prediction, and based on this, the memory hypervisor unit 220 determines the insufficient amount of the local memory 211, that is, The size (c) can be predicted.

전술한 바와 같이, 메모리 하이퍼바이저부(220)는 전술한 수학식 1 내지 7에 기초하여, 추가할 로컬 메모리(211)의 크기(c)를 예측하는 동작을 수행하는 것을 예시하였으나, 본 개시가 이를 한정하는 것은 아니다. 다른 예로서, 분할 메모리 관리장치(200)는 메모리 하이퍼바이저부(220)와 별도록 구성된 성능 예측기(250)를 구비할 수 있으며, 성능 예측기(250)가 전술한 수학식 1 내지 7에 기초하여, 추가할 로컬 메모리(211)의 크기(c)를 예측하는 동작을 수행할 수도 있다.As described above, the memory hypervisor unit 220 illustrated that performing the operation of predicting the size c of the local memory 211 to be added based on the above-described Equations 1 to 7, It is not limited thereto. As another example, the partitioned memory management device 200 may include a performance predictor 250 configured separately from the memory hypervisor portion 220, and the performance predictor 250 may be configured based on Equations 1 to 7 above , And the size (c) of the local memory 211 to be added.

한편, 메모리 하이퍼바이저부(220)는 추가할 로컬 메모리(211)의 크기(c)를 확인하고, 로컬 메모리(211)의 잔여 메모리가 추가할 로컬 메모리(211)의 크기(c)와 같거나 상대적으로 큰 값을 가질 경우, 메모리 페이지를 로컬 메모리(211)에 할당할 수 있다. 반면, 로컬 메모리(211)의 잔여 메모리가 추가할 로컬 메모리(211)보다 상대적으로 작은 값을 가질 경우, 메모리 하이퍼바이저부(220)는 로컬 메모리가 충분한 다른 노드로 가상머신을 이동(migrate)시킬 수 있다.The memory hypervisor unit 220 checks the size c of the local memory 211 to be added and determines whether the remaining memory of the local memory 211 is equal to the size c of the local memory 211 to be added If it has a relatively large value, the memory page can be allocated to the local memory 211. On the other hand, if the remaining memory of the local memory 211 has a relatively smaller value than the local memory 211 to be added, the memory hypervisor unit 220 may migrate the virtual machine to another node having sufficient local memory .

한편, 메모리 가상머신부(230)은 부족한 로컬 메모리의 크기를 메모리 하이퍼바이저부(220)로 전달하므로, 메모리 가상머신부(230)에 할당된 로컬 메모리 페이지의 크기가 응용 프로그램의 작업집합 크기(working set size)보다 크더라도, 분할 메모리 관리장치는 인식하지 못할 수 있다. 이러한 경우, 실제 메모리 가상머신부(230)가 사용하는 메모리 페이지는 메모리 가상머신부(230)에 할당된 메모리 페이지보다 상대적으로 적을 수 있으므로 로컬 메모리 사용 효율이 낮아질 수 있다. Since the memory virtual machine unit 230 transfers the size of the deficient local memory to the memory hypervisor unit 220, if the size of the local memory page allocated to the memory virtual machine unit 230 is smaller than the working set size of the application program working set size, the partitioned memory management device may not be able to recognize it. In this case, the memory page used by the real memory virtual machine unit 230 may be relatively smaller than the memory page allocated to the memory virtual machine unit 230, so that the local memory use efficiency may be lowered.

본 개시의 일 실시예에서, 메모리 하이퍼바이저부(220)는 메모리 가상머신부(230)가 일정시간 동안 원격 메모리에 접근하지 않거나, 가상머신의 vcpu 사용률이 낮을 때 미리 정해진 크기(γ, 0 <γ≤ 1)만큼 로컬 메모리에 할당된 페이지의 크기를 줄일 수 있다. In one embodiment of the present disclosure, the memory hypervisor section 220 determines whether the memory virtual machine section 230 does not access the remote memory for a period of time, or if the vcpu utilization of the virtual machine is low, lt; RTI ID = 0.0 &gt;# 1) &lt; / RTI &gt;

이와 같이, 미리 정해진 크기(γ)만큼 로컬 메모리에 할당된 페이지의 크기를 줄이더라도, 미리 정해진 시간단위 마다, 주기적으로 로컬 메모리의 크기를 확인하여 메모리 페이지가 재할당되므로, 메모리 가상머신부(230)에서 요구되는 만큼의 로컬 메모리를 확보할 수 있다. Even if the size of a page allocated to the local memory is reduced by a predetermined size?, The size of the local memory is periodically checked every predetermined time unit so that the memory page is reallocated. Thus, the memory virtual machine unit 230 It is possible to secure as much local memory as required by the user.

따라서, 분할 메모리 관리장치는 리소스의 사용 상태에 맞게 적응적으로 메모리 페이지를 할당하여 메모리 사용 효율을 높일 수 있으며, 로컬 메모리의 크기 예측을 통해 안정적으로 메모리 페이지를 할당할 수 있다. Accordingly, the partitioned memory management apparatus can adaptively allocate a memory page according to the usage state of the resource to increase the memory use efficiency, and stably allocate the memory page through prediction of the size of the local memory.

도 4는 본 개시의 일 실시예에 따른 분할 메모리 관리방법의 순서를 예시하는 흐름도이다. 4 is a flow chart illustrating a sequence of a divided memory management method in accordance with one embodiment of the present disclosure;

분할 메모리 관리방법은 전술한 분할 메모리 관리장치에 의해 수행될 수 있다. The divided memory managing method can be performed by the above-described divided memory managing apparatus.

우선, 분할 메모리 관리장치는 가상머신에 의해 메모리 페이지의 접근이 요청될 수 있다(S401). First, the divided memory management apparatus can be requested to access the memory page by the virtual machine (S401).

분할 메모리 관리장치에 구비된 메모리는 분할 메모리(disaggregated memory) 구조로 구비될 수 있다. 여기서, 분할 메모리(disaggregated memory) 구조는 물리적으로 서로 다른 장치(예, 서버 장치)에 분산된 복수의 메모리를 포함할 수 있다. 그리고, 복수의 메모리는 메모리가 구비된 위치에 기초하여, 컴퓨팅이 수행되는 장치와 동일한 장치에 위치한 로컬 메모리와, 컴퓨팅이 수행되는 장치와 다른 원격지의 장치에 위치한 원격 메모리로 구분할 수 있다.The memory provided in the divided memory management apparatus may be provided in a disaggregated memory structure. Here, a disaggregated memory structure may include a plurality of memories dispersed physically in different apparatuses (e.g., server apparatuses). The plurality of memories can be classified into a local memory located in the same device as the device on which the computing is performed, and a remote memory located in a device other than the device on which computing is performed, based on the location of the memory.

이에 기초하여, 접근이 요청되는 메모리 페이지가 원격 메모리일 경우(S402-예), 분할 메모리 관리장치는 원격 메모리 페이지를 로컬 메모리 페이지로 가져올 수 있다(S403). 그리고, 분할 메모리 관리장치는 원격 메모리의 접근이 발생하였음을 통지하는 원격 메모리 접근 정보를 생성 및 관리할 수 있다(S404). 여기서, 원격 메모리 접근 정보는 원격 메모리 식별자, 원격 메모리 페이지를 가져올 때의 시간, 원격 메모리 접근 횟수 등을 포함할 수 있다. On the basis of this, if the memory page to which access is requested is remote memory (S402-Yes), the partitioned memory management device may bring the remote memory page to the local memory page (S403). Then, the divided memory management apparatus can generate and manage remote memory access information notifying that access to the remote memory has occurred (S404). Here, the remote memory access information may include a remote memory identifier, a time when the remote memory page is fetched, a number of remote memory accesses, and the like.

다음으로, 분할 메모리 관리장치는 LRU 거리 기반의 메모리 성능 예측을 수행할 수 있다(S405).Next, the partitioned memory management apparatus can perform LRU distance-based memory performance prediction (S405).

LRU 거리 기반의 메모리 성능 예측은, 전술한 수학식 1 내지 7에 기초하여 추가할 로컬 메모리(211)의 크기(c)를 예측하는 동작으로서, 분할 메모리 관리장치에 구비되는 메모리 하이퍼바이저에 의해 수행될 수 있다. 다른 예로서, LRU 거리 기반의 메모리 성능 예측은 메모리 하이퍼바이저와 분리되어 구비되는 성능 예측기에 의해 수행될 수도 있다.The LRU distance-based memory performance prediction is an operation for predicting the size (c) of the local memory 211 to be added based on the above Equations 1 to 7, and is performed by the memory hypervisor provided in the divided memory management device . As another example, the LRU distance-based memory performance prediction may be performed by a performance predictor provided separately from the memory hypervisor.

LRU 거리 기반의 메모리 성능 예측은 후술되는 도 5와 관련된 동작에서 자세하게 설명한다.The LRU distance-based memory performance prediction is described in detail in the operation related to FIG. 5 to be described later.

한편, 접근이 요청되는 메모리 페이지가 로컬 메모리일 경우(S402-아니오), 분할 메모리 관리장치는 S406 단계를 진행할 수 있다. On the other hand, if the memory page to which access is requested is a local memory (S402-No), the divided memory management apparatus can proceed to step S406.

S406 단계에서, 분할 메모리 관리장치는 로컬 메모리(211)의 상태를 확인하여 로컬 메모리(211)의 잔여 메모리가 접근이 요청되는 메모리의 크기만큼 충분하게 확보되어 있는지 확인할 수 있다. 예컨대, 분할 메모리 관리장치는 로컬 메모리(211)의 잔여 메모리 크기가 접근이 요청되는 메모리의 크기와 동일하거나 상대적으로 큰 값을 구비하는지 확인할 수 있다. In step S406, the partitioned memory management device can check the state of the local memory 211 to check whether the remaining memory of the local memory 211 is sufficiently large enough to be accessed. For example, the partitioned memory management apparatus can check whether the remaining memory size of the local memory 211 is equal to or larger than the size of the memory to which access is requested.

로컬 메모리(211)의 잔여 메모리 크기가 접근이 요청되는 메모리의 크기와 동일하거나 상대적으로 큰 값을 나타낼 경우(S407-예), 분할 메모리 관리장치는 접근이 요청되는 메모리 페이지를 로컬 메모리에 할당할 수 있다(S408). 반면, 로컬 메모리(211)의 잔여 메모리의 크기가 접근이 요청되는 메모리 크기보다 상대적으로 작은 값을 나타낼 경우(S407-아니오), 로컬 메모리가 충분한 다른 노드로 가상머신을 이동(migrate)시킬 수 있다(S409).If the remaining memory size of the local memory 211 is equal to or relatively larger than the size of the memory requested to be accessed (S407 - YES), the divided memory management device allocates the memory page to which access is requested to the local memory (S408). On the other hand, if the size of the remaining memory in the local memory 211 indicates a value relatively smaller than the memory size requested for access (S407-No), the virtual memory can be migrated to another node whose local memory is sufficient (S409).

도 5는 본 개시의 일 실시예에 따른 분할 메모리 관리방법에 구비된 LRU 거리 기반의 메모리 성능 예측과정의 상세 순서를 예시하는 흐름도이다. FIG. 5 is a flowchart illustrating a detailed procedure of a LRU distance-based memory performance prediction process included in the divided memory management method according to an embodiment of the present disclosure.

우선, 서비스(예, 클라우드 서비스)의 제공시, 서비스(예, 클라우드 서비스)에서 요구하는 성능 비율(이하, '목표 성능 비율' 이라 함.)을 보장할 필요가 있으므로, 분할 메모리 관리장치는 메모리의 크기 예측시 목표 성능 비율을 고려할 필요가 있다. 이에 기초하여, S501 단계에서, 분할 메모리 관리장치는 목표 성능 비율(α)을 설정할 수 있다. 분할 메모리 관리장치는 목표 성능 비율(α)을 입력할 수 있는 환경(예, 사용자 인터페이스)을 제공할 수 있으며, 이러한 환경을 이용하여 목표 성능 비율(α)을 입력받고, 목표 성능 비율(α)을 설정할 수 있다. First, when providing a service (e.g., a cloud service), it is necessary to guarantee a performance ratio (hereinafter referred to as a target performance ratio) required by a service (e.g., a cloud service) It is necessary to consider the target performance ratio. On the basis of this, in step S501, the divided memory management device can set the target performance ratio?. The divided memory management apparatus can provide an environment (e.g., a user interface) capable of inputting the target performance ratio alpha, receives the target performance ratio alpha using this environment, Can be set.

다음으로, S502 단계에서, 분할 메모리 관리장치는 LRU 거리 기반의 메모리 성능 예측에 사용될 파리미터 값들(시작 시간(S), 메모리 모니터링 시간주기(P), LRU 거리 히스토그램 함수(H), 원격 메모리(215)에 접근하는데 소요되는 평균시간(A), 원격 메모리(215) 접근 횟수(N) 등)의 초기화를 수행할 수 있다.(S), a memory monitoring time period (P), an LRU distance histogram function (H), a remote memory (215) to be used for predicting the memory performance based on the LRU distance in step S502, (A), the number of accesses to the remote memory 215 (N), and the like).

이후, 가상머신에 의해 로컬 메모리 또는 원격 메모리의 접근이 요청될 수 있는데, 원격 메모리 접근 요청이 발생될 경우(S503-예), 원격 메모리의 접근이 발생하였음을 통지하는 원격 메모리 접근 정보가 생성 및 제공될 수 있다. 이에 따라, 분할 메모리 관리장치는 원격 메모리 접근 정보를 확인할 수 있다(S504). 여기서, 원격 메모리 접근 정보는 원격 메모리 식별자, 원격 메모리 페이지를 가져올 때의 시간, 원격 메모리 접근 횟수 등을 포함할 수 있다. When a remote memory access request is generated (S503-Yes), remote memory access information notifying that access of the remote memory has occurred is generated and stored in the virtual memory. Can be provided. Accordingly, the partitioned memory management apparatus can confirm the remote memory access information (S504). Here, the remote memory access information may include a remote memory identifier, a time when the remote memory page is fetched, a number of remote memory accesses, and the like.

이후, 분할 메모리 관리장치는 원격 메모리 접근 횟수에 1을 증가시켜 업데이트할 수 있다(S505). 그리고, 분할 메모리 관리장치는 접근 요청되는 원격 메모리 페이지를 확인하고, 접근 요청되는 원격 메모리 페이지의 LRU 거리를 확인할 수 있다(S506).Thereafter, the divided memory management apparatus can update the number of remote memory accesses by 1 (S505). Then, the partitioned memory management device checks the remote memory page requested to be accessed and can check the LRU distance of the remote memory page requested to be accessed (S506).

다음으로, 분할 메모리 관리장치는 원격 메모리의 LRU 리스트에서 접근 페이지를 제거하고(S507), 로컬 메모리에서 원격 메모리로 내보내는 페이지(evicted page)가 존재할 경우 원격 메모리의 LRU 리스트의 MRU 위치에 추가할 수 있다(S508). Next, the partitioned memory management device removes the access page from the LRU list of the remote memory (S507) and adds it to the MRU location of the LRU list of the remote memory when a page (evicted page) to be exported from the local memory to the remote memory exists (S508).

이후, 분할 메모리 관리장치는 전술한 수학식 2에서 설명한 응용 프로그램 실행 시간(L), 모니터링 시간주기(P), 원격 메모리 접근 횟수(N), 원격 메모리 접근 평균 시간(A) 등의 관계를 고려하여, 원격 메모리 접근 평균 시간(A)을 산출할 수 있다(S509).Then, the divided memory management device considers the relationship between the application program execution time L, the monitoring time period P, the number of remote memory accesses N, and the remote memory access average time A described in the above-mentioned formula (2) , The remote memory access average time A can be calculated (S509).

이후, 분할 메모리 관리장치는 현재 시각을 시작 시간(S) 및 모니터링 시간주기(P)와 비교할 수 있다. 현재 시각이 시작 시간(S) 및 모니터링 시간주기(P)의 합과 같거나 상대적으로 큰 값을 나타낼 경우(S510-예), 분할 메모리 관리장치는 S511 단계를 진행하고, 현재 시각이 시작 시간(S) 및 모니터링 시간주기(P)의 합보다 상대적으로 작은 값을 나타낼 경우(S510-아니오) S503 단계를 진행할 수 있다.Thereafter, the divided memory management apparatus can compare the current time with the start time S and the monitoring time period P. If the current time is equal to or relatively larger than the sum of the start time S and the monitoring time period P (YES in step S510), the divided memory management device proceeds to step S511, S) and the monitoring time period P (S510-No), the flow advances to step S503.

S511 단계에서, 분할 메모리 관리장치는 응용 프로그램 실행 시간(L)을 확인하고, 전술한 수학식 4에서 설명에 기초하여 n에 따른 응용프로그램 실행 시간(T(n))을 산출할 수 있다.In step S511, the partitioned memory management device can confirm the application program execution time L and calculate the application program execution time T (n) according to n based on the description in the above-described equation (4).

S512 단계에서, 분할 메모리 관리장치는 목표 성능 비율(α)을 반영한 응용 프로그램 실행 시간(L)(즉, 응용 프로그램 실행 시간(L)/목표 성능 비율(α))이 모니터링 시간주기(P)와 동일하거나 상대적으로 큰 값을 나타내는지를 확인할 수 있다. In step S512, the divided memory management apparatus determines whether or not the application program execution time L (i.e., the application program execution time L / the target performance ratio?) Reflecting the target performance ratio? It can be confirmed whether they represent the same or a relatively large value.

목표 성능 비율(α)을 반영한 응용 프로그램 실행 시간(L)이 모니터링 시간주기(P)와 동일하거나 상대적으로 큰 값을 가질 경우 목표 성능을 만족한다는 의미이므로 분할 메모리 관리장치는 성능 예측에 사용될 파리미터 값들의 초기화를 수행하는 S502 단계를 진행할 수 있다.Since the application program execution time L reflecting the target performance ratio alpha has the same or relatively large value as the monitoring time period P, it means that the target performance is satisfied. Therefore, The process of step S502 may be performed.

반면, 목표 성능 비율(α)을 반영한 응용 프로그램 실행 시간(L)이 모니터링 시간주기(P)보다 상대적으로 작은 값을 나타낼 경우, 목표 성능을 만족하지 못한다는 의미이므로 분할 메모리 관리장치는 S513 단계를 진행할 수 있다. On the other hand, if the application program execution time L reflecting the target performance ratio alpha is relatively smaller than the monitoring time period P, it means that the target performance is not satisfied, You can proceed.

S513 단계에서, 분할 메모리 관리장치는 전술한 S506 단계에서 확인된 LRU 거리 값을 기반으로 히스토그램 함수(H(c))을 생성할 수 있다. 그리고, S514 단계에서, 분할 메모리 관리장치는 전술한 LRU 거리 히스토그램 함수(H(c))와 줄여야 할 원격 메모리 접근 횟수(N-nt)의 관계에 기초하여 추가할 로컬 메모리의 크기(c)를 산출 및 제공할 수 있다. In step S513, the partitioned memory management device may generate the histogram function H (c) based on the LRU distance value identified in step S506. In step S514, the divided memory management device calculates the size c of the local memory to be added based on the relationship between the above-described LRU distance histogram function H (c) and the number of remote memory accesses Nn t to be reduced And the like.

한편, 분할 메모리 관리장치는 가상머신이 부족한 로컬 메모리의 크기를 하이퍼바이저로 전달하므로, 가상머신에 할당된 로컬 메모리 페이지의 크기가 응용 프로그램의 작업집합 크기(working set size)보다 크더라도, 분할 메모리 관리장치는 인식하지 못할 수 있다. 이러한 경우, 실제 가상머신이 사용하는 메모리 페이지는 가상머신에 할당된 메모리 페이지보다 상대적으로 적을 수 있으므로 로컬 메모리 사용 효율이 낮아질 수 있다. On the other hand, since the split memory management device transfers the size of the local memory that the virtual machine lacks to the hypervisor, even if the size of the local memory page allocated to the virtual machine is larger than the working set size of the application program, The management device may not be able to recognize it. In this case, the memory page used by the actual virtual machine may be relatively smaller than the memory page allocated to the virtual machine, and therefore the local memory use efficiency may be lowered.

본 개시의 일 실시예에서, 분할 메모리 관리장치는는 가상머신이 일정시간 동안 원격 메모리에 접근하지 않거나, 가상머신의 vcpu 사용률이 낮을 때 미리 정해진 크기(γ, 0 <γ≤ 1)만큼 로컬 메모리에 할당된 페이지의 크기를 줄일 수 있다. In one embodiment of the present disclosure, the partitioned memory management device is configured to allocate the virtual memory to the local memory by a predetermined size (gamma, 0 < / = 1) when the virtual machine does not access the remote memory for a certain period of time or when the vcpu utilization rate of the virtual machine is low You can reduce the size of the allocated pages.

이와 같이, 미리 정해진 크기(γ)만큼 로컬 메모리에 할당된 페이지의 크기를 줄이더라도, 미리 정해진 시간단위 마다, 주기적으로 로컬 메모리의 크기를 확인하여 메모리 페이지가 재할당되므로, 가상머신에서 요구되는 만큼의 로컬 메모리를 확보할 수 있다. Even if the size of a page allocated to the local memory is reduced by a predetermined size? As described above, the size of the local memory is periodically checked every predetermined time unit so that the memory page is reallocated. Can be secured.

따라서, 분할 메모리 관리방법은 리소스의 사용 상태에 맞게 적응적으로 메모리 페이지를 할당하여 메모리 사용 효율을 높일 수 있으며, 로컬 메모리의 크기 예측을 통해 안정적으로 메모리 페이지를 할당할 수 있다. Therefore, the divided memory management method can allocate a memory page adaptively according to the use state of a resource to increase the memory use efficiency, and allocate the memory page stably through prediction of the size of the local memory.

본 개시의 예시적인 방법들은 설명의 명확성을 위해서 동작의 시리즈로 표현되어 있지만, 이는 단계가 수행되는 순서를 제한하기 위한 것은 아니며, 필요한 경우에는 각각의 단계가 동시에 또는 상이한 순서로 수행될 수도 있다. 본 개시에 따른 방법을 구현하기 위해서, 예시하는 단계에 추가적으로 다른 단계를 포함하거나, 일부의 단계를 제외하고 나머지 단계를 포함하거나, 또는 일부의 단계를 제외하고 추가적인 다른 단계를 포함할 수도 있다.Although the exemplary methods of this disclosure are represented by a series of acts for clarity of explanation, they are not intended to limit the order in which the steps are performed, and if necessary, each step may be performed simultaneously or in a different order. In order to implement the method according to the present disclosure, the illustrative steps may additionally include other steps, include the remaining steps except for some steps, or may include additional steps other than some steps.

본 개시의 다양한 실시 예는 모든 가능한 조합을 나열한 것이 아니고 본 개시의 대표적인 양상을 설명하기 위한 것이며, 다양한 실시 예에서 설명하는 사항들은 독립적으로 적용되거나 또는 둘 이상의 조합으로 적용될 수도 있다.The various embodiments of the disclosure are not intended to be all-inclusive and are intended to be illustrative of the typical aspects of the disclosure, and the features described in the various embodiments may be applied independently or in a combination of two or more.

또한, 본 개시의 다양한 실시 예는 하드웨어, 펌웨어(firmware), 소프트웨어, 또는 그들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 범용 프로세서(general processor), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다. In addition, various embodiments of the present disclosure may be implemented by hardware, firmware, software, or a combination thereof. In the case of hardware implementation, one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays A general processor, a controller, a microcontroller, a microprocessor, and the like.

본 개시의 범위는 다양한 실시 예의 방법에 따른 동작이 장치 또는 컴퓨터 상에서 실행되도록 하는 소프트웨어 또는 머신-실행가능한 명령들(예를 들어, 운영체제, 애플리케이션, 펌웨어(firmware), 프로그램 등), 및 이러한 소프트웨어 또는 명령 등이 저장되어 장치 또는 컴퓨터 상에서 실행 가능한 비-일시적 컴퓨터-판독가능 매체(non-transitory computer-readable medium)를 포함한다. The scope of the present disclosure is to be accorded the broadest interpretation as understanding of the principles of the invention, as well as software or machine-executable instructions (e.g., operating system, applications, firmware, Instructions, and the like are stored and are non-transitory computer-readable medium executable on the device or computer.

Claims (16)

메모리 관리방법에 있어서,
적어도 하나의 메모리 페이지를 로컬 메모리 및 원격 메모리에 할당하는 과정과,
상기 메모리 페이지의 접근 요청을 확인하는 과정과,
접근 요청된 상기 메모리 페이지가 원격 메모리에 할당되어 있음에 따라, 서비스에서 요구하는 목표 성능 비율을 만족하는지 여부를 확인하는 과정과,
상기 목표 성능 비율을 만족하지 않음에 대응하여, LRU 거리 기반의 히스토그램에 기초한 상기 로컬 메모리의 크기를 예측하는 과정과,
예측된 상기 로컬 메모리의 크기를 고려하여, 접근 요청된 상기 메모리 페이지를 재할당하는 과정을 포함하는 것을 특징으로 하는 분할 메모리 관리방법.
A memory management method comprising:
Allocating at least one memory page to a local memory and a remote memory;
Confirming an access request of the memory page;
Determining whether a target performance ratio required by a service is satisfied, in accordance with whether the memory page requested for access is allocated to a remote memory,
Estimating a size of the local memory based on the LRU distance based histogram in response to the satisfaction of the target performance ratio;
And reallocating the requested memory page in consideration of the predicted size of the local memory.
제1항에 있어서,
상기 로컬 메모리의 크기를 예측하는 과정은,
접근 요청된 상기 메모리 페이지에 대한 LRU 거리를 확인하는 과정과,
상기 LRU 거리를 누적하여 LRU 거리 히스토그램을 생성하는 과정과,
상기 LRU 거리 히스토그램과 원격 메모리 접근 횟수 사이의 관계를 고려하여, 상기 로컬 메모리의 크기를 예측하는 과정을 포함하는 것을 특징으로 하는 분할 메모리 관리방법.
The method according to claim 1,
Wherein the step of predicting the size of the local memory comprises:
Determining an LRU distance for the requested memory page;
Generating an LRU distance histogram by accumulating the LRU distances;
And estimating the size of the local memory in consideration of the relationship between the LRU distance histogram and the number of remote memory accesses.
제1항에 있어서,
상기 로컬 메모리의 크기를 예측하는 과정은,
하기의 수학식 1에 대응되는 연산을 수행하는 과정을 포함하는 것을 특징으로 하는 분할 메모리 관리방법.
[수학식 1]
Figure pat00009

수학식 1에서, C는 예측된 로컬 메모리의 크기, H(c)는 LRU 거리 히스토그램 함수, N-nt는 줄여야 할 원격 메모리 접근 횟수임.
The method according to claim 1,
Wherein the step of predicting the size of the local memory comprises:
And performing an operation corresponding to Equation (1) below.
[Equation 1]
Figure pat00009

In Equation (1), C is the estimated size of the local memory, H (c) is the LRU distance histogram function, and Nn t is the number of remote memory accesses to be reduced.
제1항에 있어서,
상기 목표 성능 비율을 만족하는지 여부를 확인하는 과정은,
메모리 모니터링 시간 주기를 기준으로한 상기 로컬 메모리가 충분한 경우 응용 프로그램 실행 시간의 비율과, 상기 목표 성능 비율을 비교하는 과정과,
상기 메모리 모니터링 시간 주기를 기준으로한 상기 로컬 메모리가 충분한 경우 응용 프로그램 실행 시간의 비율이, 상기 목표 성능 비율과 동일하거나 상대적으로 큰 값을 나타냄에 따라, 상기 목표 성능 비율을 만족하는 것으로 결정하는 과정을 포함하는 것을 특징으로 하는 분할 메모리 관리방법.
The method according to claim 1,
Wherein the step of determining whether the target performance ratio satisfies the target performance ratio comprises:
Comparing the ratio of the application program execution time and the target performance ratio when the local memory based on the memory monitoring time period is sufficient;
Determining that the ratio of the application program execution time when the local memory based on the memory monitoring time period is sufficient is equal to or relatively larger than the target performance ratio, And storing the divided memory management information.
제1항에 있어서,
상기 접근 요청된 상기 메모리 페이지를 재할당하는 과정은,
상기 로컬 메모리에 구비된 잔여 메모리의 크기를 확인하는 과정과,
상기 예측된 로컬 메모리의 크기와 상기 잔여 메모리 크기를 비교하는 과정과,
상기 예측된 로컬 메모리의 크기와 상기 잔여 메모리 크기의 비교 결과를 고려하여, 상기 접근 요청된 상기 메모리 페이지를 상기 로컬 메모리에 재할당하는 과정을 포함하는 것을 특징으로 하는 분할 메모리 관리방법.
The method according to claim 1,
Wherein the step of reallocating the requested memory page comprises:
Determining a size of a remaining memory provided in the local memory;
Comparing the size of the predicted local memory with the size of the remaining memory;
And reassigning the requested memory page to the local memory in consideration of a result of comparison between the predicted local memory size and the remaining memory size.
제1항에 있어서,
상기 원격 메모리에 접근이 발생된 후부터 접근재개시간을 카운팅하는 과정과,
상기 접근재개시간이 미리 정해진 시간을 초과함에 대응하여, 상기 로컬 메모리에 할당된 메모리 페이지의 크기를 미리 정해진 크기만큼 줄이는 과정을 포함하는 것을 특징으로 하는 분할 메모리 관리방법.
The method according to claim 1,
Counting an access resuming time after an access to the remote memory occurs;
And decreasing the size of the memory page allocated to the local memory by a predetermined amount in response to the access resume time exceeding a predetermined time.
제1항에 있어서,
가상 프로세서의 사용률을 모니터링하는 과정과,
상기 가상 프로세서의 사용률을 고려하여, 상기 로컬 메모리에 할당된 메모리 페이지의 크기를 미리 정해진 크기만큼 줄이는 과정을 포함하는 것을 특징으로 하는 분할 메모리 관리방법.
The method according to claim 1,
Monitoring the utilization of the virtual processor,
And decreasing a size of a memory page allocated to the local memory by a predetermined size in consideration of a utilization rate of the virtual processor.
메모리 관리장치에 있어서,
로컬 영역의 컴퓨팅 장치에 구비된 로컬 메모리 및 원격지의 컴퓨팅 장치에 구비된 원격 메모리를 포함하는 분할 메모리부와,
응용 프로그램의 구축 또는 실행을 위해 요구되는 적어도 하나의 메모리 페이지를 관리하는 메모리 가상머신부와,
상기 분할 메모리부와 메모리 가상머신부 사이에 구비되며, 상기 적어도 하나의 메모리 페이지를 로컬 메모리 및 원격 메모리에 할당하는 메모리 하이퍼바이저부와,
상기 메모리 페이지의 접근 요청을 확인하고, 접근 요청된 상기 메모리 페이지가 원격 메모리에 할당되어 있음에 따라, 서비스에서 요구하는 목표 성능 비율을 만족하는지 여부를 확인하고, 상기 목표 성능 비율을 만족하지 않음에 대응하여, LRU 거리 기반의 히스토그램에 기초한 상기 로컬 메모리의 크기를 예측하는 성능 예측부를 포함하는 것을 특징으로 하는 분할 메모리 관리장치.
A memory management device comprising:
A local memory provided in a computing device in a local area, and a remote memory included in a computing device in a remote location;
A memory virtual machine unit for managing at least one memory page required for building or executing an application program;
A memory hypervisor unit provided between the divisional memory unit and the memory virtual machine unit and allocating the at least one memory page to a local memory and a remote memory,
Checking whether an access request of the memory page is satisfied, confirming whether a target performance ratio requested by the service is satisfied or not in accordance with the memory page requested to be accessed is allocated to the remote memory, And a performance predicting unit for predicting the size of the local memory based on the LRU distance based histogram.
제8항에 있어서,
상기 성능 예측부는,
접근 요청된 상기 메모리 페이지에 대한 LRU 거리를 확인하고,
상기 LRU 거리를 누적하여 LRU 거리 히스토그램을 생성하고,
상기 LRU 거리 히스토그램과 원격 메모리 접근 횟수 사이의 관계를 고려하여, 상기 로컬 메모리의 크기를 예측하는 것을 특징으로 하는 분할 메모리 관리장치.
9. The method of claim 8,
The performance estimator may include:
Checking the LRU distance for the requested memory page,
Accumulating the LRU distances to generate an LRU distance histogram,
Wherein the size of the local memory is predicted by considering the relationship between the LRU distance histogram and the number of remote memory accesses.
제8항에 있어서,
상기 성능 예측부는,
하기의 수학식 2에 대응되는 연산을 수행하여 상기 로컬 메모리의 크기를 예측하는 것을 특징으로 하는 분할 메모리 관리장치.
[수학식 2]
Figure pat00010

수학식 2에서, C는 예측된 로컬 메모리의 크기, H(c)는 LRU 거리 히스토그램 함수, N-nt는 줄여야 할 원격 메모리 접근 횟수임.

9. The method of claim 8,
The performance estimator may include:
And the size of the local memory is estimated by performing an operation corresponding to Equation (2) below.
&Quot; (2) &quot;
Figure pat00010

In Equation (2), C is the estimated size of the local memory, H (c) is the LRU distance histogram function, and Nn t is the number of remote memory accesses to be reduced.

제8항에 있어서,
상기 성능 예측부는,
메모리 모니터링 시간 주기를 기준으로한 상기 로컬 메모리가 충분한 경우 응용 프로그램 실행 시간의 비율과, 상기 목표 성능 비율을 비교하고,
상기 메모리 모니터링 시간 주기를 기준으로한 상기 로컬 메모리가 충분한 경우 응용 프로그램 실행 시간의 비율이, 상기 목표 성능 비율과 동일하거나 상대적으로 큰 값을 나타냄에 따라, 상기 목표 성능 비율을 만족하는 것으로 결정하는 것을 특징으로 하는 분할 메모리 관리장치.
9. The method of claim 8,
The performance estimator may include:
Comparing the ratio of the application program execution time with the target performance ratio when the local memory based on the memory monitoring time period is sufficient,
And determining that the target performance ratio is satisfied when the ratio of the application program execution time is equal to or relatively larger than the target performance ratio when the local memory based on the memory monitoring time period is sufficient Characterized in that the memory management device
제8항에 있어서,
상기 메모리 하이퍼바이저부는,
예측된 상기 로컬 메모리의 크기를 고려하여, 접근 요청된 상기 메모리 페이지를 재할당하는 것을 특징으로 하는 분할 메모리 관리장치.
9. The method of claim 8,
Wherein the memory hypervisor unit comprises:
And reallocates the requested memory page in consideration of the predicted size of the local memory.
제12항에 있어서,
상기 메모리 하이퍼바이저부는,
상기 로컬 메모리에 구비된 잔여 메모리의 크기를 확인하고,
상기 예측된 로컬 메모리의 크기와 상기 잔여 메모리 크기를 비교하고,
상기 예측된 로컬 메모리의 크기와 상기 잔여 메모리 크기의 비교 결과를 고려하여, 상기 접근 요청된 상기 메모리 페이지를 상기 로컬 메모리에 재할당하는 것을 특징으로 하는 분할 메모리 관리장치.
13. The method of claim 12,
Wherein the memory hypervisor unit comprises:
Checking a size of a remaining memory provided in the local memory,
Comparing the size of the predicted local memory with the size of the remaining memory,
And allocates the requested memory page to the local memory in consideration of the comparison result of the predicted local memory size and the remaining memory size.
제8항에 있어서,
상기 메모리 하이퍼바이저부는,
상기 원격 메모리에 접근이 발생된 후부터 접근재개시간을 카운팅하고, 상기 접근재개시간이 미리 정해진 시간을 초과함에 대응하여, 상기 로컬 메모리에 할당된 메모리 페이지의 크기를 미리 정해진 크기만큼 줄이는 것을 특징으로 하는 분할 메모리 관리장치.
9. The method of claim 8,
Wherein the memory hypervisor unit comprises:
Counting an access resumption time after an access to the remote memory occurs and decreasing a size of a memory page allocated to the local memory by a predetermined amount in response to the access resumption time exceeding a predetermined time Divided memory management device.
제8항에 있어서,
상기 메모리 하이퍼바이저부는,
가상 프로세서의 사용률을 모니터링하고, 상기 가상 프로세서의 사용률을 고려하여, 상기 로컬 메모리에 할당된 메모리 페이지의 크기를 미리 정해진 크기만큼 줄이는 것을 특징으로 하는 분할 메모리 관리장치.
9. The method of claim 8,
Wherein the memory hypervisor unit comprises:
Wherein the monitoring unit monitors the usage rate of the virtual processor and reduces the size of the memory page allocated to the local memory by a predetermined size in consideration of the utilization rate of the virtual processor.
메모리 관리장치에 있어서,
로컬 영역의 컴퓨팅 장치에 구비된 로컬 메모리 및 원격지의 컴퓨팅 장치에 구비된 원격 메모리를 포함하는 분할 메모리부와,
응용 프로그램의 구축 또는 실행을 위해 요구되는 적어도 하나의 메모리 페이지를 관리하는 메모리 가상머신부와,
상기 분할 메모리부와 메모리 가상머신부 사이에 구비되며, 상기 적어도 하나의 메모리 페이지를 로컬 메모리 및 원격 메모리에 할당하고, 상기 메모리 페이지의 접근 요청을 확인하고, 접근 요청된 상기 메모리 페이지가 원격 메모리에 할당되어 있음에 따라, 서비스에서 요구하는 목표 성능 비율을 만족하는지 여부를 확인하고, 상기 목표 성능 비율을 만족하지 않음에 대응하여, LRU 거리 기반의 히스토그램에 기초한 상기 로컬 메모리의 크기를 예측하고, 예측된 상기 로컬 메모리의 크기를 고려하여, 접근 요청된 상기 메모리 페이지를 재할당하는 메모리 하이퍼바이저부를 포함하는 것을 특징으로 하는 분할 메모리 관리장치.
A memory management device comprising:
A local memory provided in a computing device in a local area, and a remote memory included in a computing device in a remote location;
A memory virtual machine unit for managing at least one memory page required for building or executing an application program;
Wherein the at least one memory page is allocated to the local memory and the remote memory, the memory page is accessed between the partition memory unit and the memory virtual machine unit, Estimates the size of the local memory based on the LRU distance based histogram in correspondence with the satisfaction of the target performance ratio, And a memory hypervisor unit for reallocating the requested memory page in consideration of the size of the local memory.
KR1020180122434A 2017-10-16 2018-10-15 Apparatus for managing disaggregated memory and method for the same KR102469927B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/162,107 US10754547B2 (en) 2017-10-16 2018-10-16 Apparatus for managing disaggregated memory and method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20170133929 2017-10-16
KR1020170133929 2017-10-16

Publications (2)

Publication Number Publication Date
KR20190042465A true KR20190042465A (en) 2019-04-24
KR102469927B1 KR102469927B1 (en) 2022-11-23

Family

ID=66282069

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180122434A KR102469927B1 (en) 2017-10-16 2018-10-15 Apparatus for managing disaggregated memory and method for the same

Country Status (1)

Country Link
KR (1) KR102469927B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210058609A (en) * 2019-11-13 2021-05-24 서강대학교산학협력단 Method for allocating memory bus connected storage in numa system
KR20210155059A (en) * 2020-06-15 2021-12-22 한국전자통신연구원 Method and apparatus for managing memory in memory disaggregation system
KR20220131605A (en) * 2021-03-22 2022-09-29 한국전자통신연구원 Method and apparatus for managing memory integration of cluster system
US11995357B2 (en) 2022-01-17 2024-05-28 Electronics And Telecommunications Research Institute Disaggregation computing system and method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100725412B1 (en) * 2006-02-07 2007-06-07 삼성전자주식회사 Apparatus and method for managing storage space through estimation
US20120030406A1 (en) * 2009-06-29 2012-02-02 Jichuan Chang Hypervisor-based management of local and remote virtual memory pages
KR101740490B1 (en) * 2015-12-29 2017-05-26 경희대학교 산학협력단 Proactive auto scaling system and method in cloud computing environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100725412B1 (en) * 2006-02-07 2007-06-07 삼성전자주식회사 Apparatus and method for managing storage space through estimation
US20120030406A1 (en) * 2009-06-29 2012-02-02 Jichuan Chang Hypervisor-based management of local and remote virtual memory pages
KR101740490B1 (en) * 2015-12-29 2017-05-26 경희대학교 산학협력단 Proactive auto scaling system and method in cloud computing environment

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
W. Zhao, et. al."Dynamic memory balancing for virtual machines.",In VEE ’09. ACM.,2009.03.11.(제37면 내지 제47면)* *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210058609A (en) * 2019-11-13 2021-05-24 서강대학교산학협력단 Method for allocating memory bus connected storage in numa system
KR20210155059A (en) * 2020-06-15 2021-12-22 한국전자통신연구원 Method and apparatus for managing memory in memory disaggregation system
US11586549B2 (en) 2020-06-15 2023-02-21 Electronics And Telecommunications Research Institute Method and apparatus for managing memory in memory disaggregation system
US11947463B2 (en) 2020-06-15 2024-04-02 Electronics And Telecommunications Research Institute Method and apparatus for managing memory in memory disaggregation system
KR20220131605A (en) * 2021-03-22 2022-09-29 한국전자통신연구원 Method and apparatus for managing memory integration of cluster system
US11995357B2 (en) 2022-01-17 2024-05-28 Electronics And Telecommunications Research Institute Disaggregation computing system and method

Also Published As

Publication number Publication date
KR102469927B1 (en) 2022-11-23

Similar Documents

Publication Publication Date Title
Ilager et al. ETAS: Energy and thermal‐aware dynamic virtual machine consolidation in cloud data center with proactive hotspot mitigation
KR102469927B1 (en) Apparatus for managing disaggregated memory and method for the same
US10191771B2 (en) System and method for resource management
US9588789B2 (en) Management apparatus and workload distribution management method
Koller et al. Centaur: Host-side ssd caching for storage performance control
CN108182105B (en) Local dynamic migration method and control system based on Docker container technology
KR101941282B1 (en) Method of allocating a virtual machine for virtual desktop service
US10241836B2 (en) Resource management in a virtualized computing environment
CN116450358A (en) Resource management for virtual machines in cloud computing systems
JP2011258119A (en) Cluster configuration management method, management device and program
US20080168457A1 (en) Method for trading resources between partitions of a data processing system
JP2012226427A (en) Resource management method and computer system
JP2015007942A (en) Program, virtual machine management method, and information processing apparatus
US10871986B2 (en) Virtual server migration after performance deterioration
US10754547B2 (en) Apparatus for managing disaggregated memory and method thereof
US20120290789A1 (en) Preferentially accelerating applications in a multi-tenant storage system via utility driven data caching
KR20190063378A (en) Dynamic cache partition manager in heterogeneous virtualization cloud cache environment
Min et al. Vmmb: Virtual machine memory balancing for unmodified operating systems
JP2018181062A (en) Management apparatus, control method for information processing system, and management program for management apparatus
CN103399791A (en) Method and device for migrating virtual machines on basis of cloud computing
Babu et al. Interference aware prediction mechanism for auto scaling in cloud
US11074111B2 (en) Quality of service scheduling with workload profiles
US9686207B2 (en) Application service level objective aware demand estimation
KR20150007698A (en) Load distribution system for virtual desktop service
US20130290752A1 (en) Operating system support for memory power management

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