CPU

1. CPU리소스 로드 밸런싱: 물리 서버에 존재하는 복수의 논리 CPU의 부하를 동적으로 로드 밸런싱. 각각의 VM은 하이퍼바이저를 통해 가상 CPU를 할당 받아 동작.

VM에 할당되는 CPU는 물리적인 CPU의 리소스를 사용하는데 ESXi가 물리적인 CPU, 코어를 실시간으로 여러 대의 VM에 동적 분배.

2. VM이 사용하는 CPU 리소스를 동적으로 분배하여 특정 CPU에 부하가 집중되는 것을 방지.

ESXi 는 동적으로 물리적인 CPU와 논리적인 가상 CPU에 대해 모니터링을 하여 적절하게 리소스 분배, 과도한 부하 발생 시 Time-Slice 방식을 통해 프로세스 처리.

 

Hyper-Threading

물리상 실행 장치 한 개에 가상 실행 장치 두 개를 할당.

운영체제는 코어 한 개 당 스레드가 두 개씩 추가되어 싱글코어-> 듀얼코어로 인식

1U서버 2소켓 16코어 CPU가 하이퍼 쓰레딩을 사용하면 서버는 총 64쓰레드까지 지원 가능.

 

NUMA(Non-Uniform Memory Access)

NUMA구조에서 프로세서는 자기의 로컬메모리에 접근할 때가 원격 메모리에 접근할 때보다 더 빠름. 원격 메모리 = 다른 프로세서에 연결되어 있는 메모리

 

 

Memory

효율적인 메모리 가상화 기술 지원

1. Transparent Page Sharing: 게스트 OS의 시스템 영역 등, 가상 머신 사이에서 동일한 정적 페이지를 공유하는 기술. 페이지의 중복 사본을 제거하는 방법으로 동일한 종류의 가상 머신이 운용될 때 동일한 페이지를 사용하게 됨. 하이퍼바이저가 물리적 하드웨어의 페이지를 동일하게 참조하도록 하여 메모리를 확보.

 

2. Memory Ballooning: 동작이 멈추고 있는 상태의 가상 머신이 보유하고 있는 메모리 영역을 회수하여 다른 가상 머신에게 할당해주는 기능.

1) Host Physical Memory: ESXi호스트 서버가 가지고 있는 실제 물리 메모리

2) Guest Physical Memory: Guest OS에서 볼 수 있는 메모리

3) Guest Virtual Memory: Guest OS에서 응용프로그램에 제공하는 연속 가상 주소 공간.

  

3. 메모리 압축: 메모리에 동일한 데이터가 있다면 동일한 데이터를 메모리 안에서 압축. VM에 메모리 요구가 발생하고 메모리를 회수할 수 없는 상황이 되면 발생.

 

 

4. VMKernel 스왑: Physical 메모리가 부족한 경우, VMKernel은 가상 머신의 메모리를 디스크의 스왑 파일에 스왑 아웃. 메모리 벌루닝은 VM이 메모리에 스왑아웃을 하는 기능이며 VMKernel 스왑은 모든 VM busy하여 메모리를 하드디스크에 스왑 아웃할 때 발생하는 현상으로 성능에 영향을 끼치며, 3가지 형태의 기능이 모두 힘든 상황일 때 어쩔 수 없이 메모리의 내용을 디스크로 스왑 아웃 시킴.

Memory Swapping: 현재 사용되지 않는 메모리의 내용을 다른 응용 프로그램이나 프로세스에서 사용할 수 있도록 디스크로 스왑하는 메모리 교정 방법. 파일이나 프로그램을 로드할 때 파일은 RAM에 저장. RAM자원은 한정되기 때문에 프로그램 종료 후 OS에서 메모리 관리를 위해 이 파일을 하드 디스크에 SWAP FILE이라는 특수 세션으로 저장. 프로세스가 메모리에서 임시로 swap되어 백업 저장소로 전환하는 것을 swap out, 전환된 프로세스를 메모리로 다시 가져오는 것을 swap in이라고 함.

 

 

 

 

 

 

 

Posted by jk.jeong
,