티스토리 뷰

Dynamic Memory Balancing for Virtual Machines

Weiming Zhao† Zhenlin Wang†‡

†Department of Computer Science, Michigan Technological University


Abstract

가상화 짱짱 좋음 >> 핵심은 하드웨어 자원을 어떻게 효율적으로 나누는가 임 >> 크게 3가지가 관건임 CPU, I/O, Memory >>

CPU와 I/O는 시간적인 분활이 가능하다 (스케쥴링 주기적) >> 하지만 Memory는 각각의 어플리케이션이 나눠 쓸수가 없다 >> 그렇기 때문에 가상화 에서 메인 메모리의 분할 문제는 매우 중요한 문제이다 >> 그렇기 위해서는 각각의 VM의  메모리 할당을 동적으로 조절 할 수 있어야 하고 >> 요구되는 메모리 사용량을 예측하는것이 필요하다. >> 그래서 이들은 MED를 제안하게 된다. 


MED(Memory balancer)는 각각의 VM의 메모리 사용을 모니터링한다. 정확하게 메모리 need를 예측하여 주기적으로 호스트 메모리를 재 할당한다. 

  

정확하게 예측하며 오버해드가 없으며 메이징 패널티도 줄여 주게 된다. 그리하여 전체 시스템의 throughput이 상승 하게 된다. 


1. Introduction 

보통 가상화 메모리는 시작할때 정적으로 할당된다.

Xen과 VMware에서는 ballooning drive제공한다. 동적으로 호스트 메모리 할당을 조정한다. existing studies are insufficient to tell when toreallocate and how much memory a virtual machine needs or iswilling to give up to maintain the performance of the applications running on it


이논문에서는 s MEmory Balancer (MEB)를 재안한다. 이것은 동적으로 각 VM의 메모리 사용을 측정하고 정확하게 메모리 요구를 예측한다. 그리고 주기적으로 호스트 메모리를 재 할당한다. 샘플링 방식의 단점은 VM의 Free Memory만을 예측할 수 있다. 


Recent studies have used Mattson et al.’s LRU stack distancebased profiling (Mattson et al. 1970) to calculate page miss ratio of a process with respect to memory allocation (Zhou et al. 2004; Yang et al. 2006). These studies either require tracking virtual addresses or need interaction between processes and the OS 가상 머신 코드의 수정이 필요 하지 않다.


하드디스크의 가상화 지원을 사용하면 작은 오버 해드로 측정이 가능하다. ( previous process-level memory predictor )


MEB uses a simple predictor to monitor the swap space usage and uses it as a guide to increase the memory allocation for a virtual machine.


2. Background and Related Work 

2.1 LRU Histogram 

LRU histogram은 널리 사용된다. cache와 memory 크기에 대하여 cache와 page miss rate 를 추정하는데 많이 사용된다. 

대부분 페이지와 캐시의 교체가 일어나면 LRU histogram 의 변화가 생긴다. We instead implement an LRU histogram in the hypervisor and track host physical (machine) addresses. Therefore the scale of the memory size cannot be greater

than the host memory size allocated to a virtual machine. // 이들은 가상주소가 아니라 호스트 주소를 추적해서 LRU를 구성한다. 

2.2 Memory Management

일반적으로 VM이 시작될때 하이퍼 바이저에 의하여 고정된 메모리를 VM이 할당 받게 되며 게스트 OS는 명목상의 메모리 사이즈를 가지게 된다. 이 값은 게스트 OS가 관리 할 수 있는 최대 메모리 크기로 사용된다. VM의 대부분의 메모리 접근은 하이퍼바이저의 참가 없이 실행 하게 딘다. 그것은 게스트 OS의 책임이다 효율적으로 할당된 메모리를 사용하는 책임 하지만 일반적으로 페이지 테이블은 privilege data이다. 관련된 오퍼레이션의 예로 새로운 페이지 테이블ㅇ나 페이지 테이블은 업데이트 할때 이것은 하이퍼 바이저가 우선 적으로 확인해야 한다. (그이유는 privilege 오퍼레이션은 가상화에서 변환이 필요하므로 게스트는 운영체제 이지만 운영체제 권한이 안되어있기때문에 운영체제 권한인 하이퍼 바이저가 관리 하여 실행이 가능하다 그렇지 않은면 권한 문제로 VM이 죽게 된다. )Typically, the page table area will be protected by setting a higher access permission.


ballooning mechanism // 게스트 OS의 수정이 필요하다. 

게스트 OS가 자신이 가지고 있는 메모리량ㅇ보다 많은 메모리를 가지고 있다고 환상을 가지게 하고 게스트에서 가져 올수 있는 메모리 회수에 대해서 도 알수 가 있다., 

'


3. Memory Monitoring and Automatic Resizing

MEB 두가지 파트로 구성되어있다: estimator and a balancer 

estimator 는 LRU histogram 를 구성하게 한다 for 각각의 가상 머신그리고 각각의 게스트 OS의 swap space 사용을 모니터링한다.

balancers는 주기적으로 estimator의 정보를 바탕으로 메모리를 재 할당한다. 





1. VM의 메모리  VMM이 인터셉터 해서 각각의 VM의 히스토그램을 업데이트 하는데 사용한다. 

2. 선택적으로 각각의 VM은 백그라운드 프로세서로 Mon을 가질수 있다, 이건 중앙 데이터 저장소로 부터 스왑사용량 통계와 OS사용량 통계를 얻을수 있다. 

3. estimator는 히스토 그램과 데이터 센터의 데이터를 주기적으로 가져와서 각각의 VM 에 필요한 크기를 예측한다. 

4. balancer는 충돌을 중재한다 , 만약 충돌이 존재하면 VM의 메모리 사이즈를 ballooning 을 통하여 조절 한다. 


3.2 The LRU-based Predictor

운영체제가 메모리 사용량을 추적하지만 If the WSS is smaller than the actual host memory size, the guest OS can give up some host memory accordingly.

3.2.1 Intercepting Memory Accesses

LRU를 생성 하기 위해서는 타겟의 메모리 접근 고자 하는 주소를 알아야 한다. 이것은 VMM에 의해서 트렌스 된다. 

Trapping all memory accesses would incur prohibitive cost.nstead, we logically divide host pages into two sets, a hot page set H and a cold page set C.Only accesses to cold pages are trapped.// 이전 한국 논문와 비슷하게 핫과 콜드 셋으로 나누어서 콜드에 해당하는 접근만을 인터 셉터해서 오버 해드를 줄인다. Initially, all pages are marked as cold when a new page table is populated 그리고 VMM은 모든 항목에서 사용 권한을 제거합니다. 콜드 페이지 에 접근 하게되면 작은 페이지 폴트가 발생하게 된다 이것은 VMM안에 트랩이 발생하는것이다. 

// 여기 부터 중요 

 트랩 핸들링에서는 가상주소와 할당주소의 주소를 제공하게 된다. from which the PTE and the machine address can be located in O(1) time. 그리고 그건 핫 페이지로 변환한다. 




 




공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함