여기에 문제가되는 ESXi 이상의 것이 많이 있습니다.
- 각 VM은 최대 4GB + "오버 헤드"를 소비하며 여기 에 설명되어 있습니다 . 이것은 vCPU, + 메모리 할당에 따라 다릅니다. 최소한 각 VM은 4261.98MB (4096 + 165.98)를 사용합니다.
- ESXi의 자체 메모리 오버 헤드는 하드웨어에 따라 다릅니다. 가장 쉬운 옵션은 vSphere 클라이언트에서 시스템 메모리 사용량 을 보는 것 입니다. 메모리에서 나는 1.3GB 마크 주위에 있지만 하드웨어에 매우 의존 한다는 것을 기억합니다 .
메모리 할당 및 초과 할당 설명
하이퍼 바이저 가 해당 메모리를 모두 사전에 할당하지는 않으며 VM 사용에 따라 다릅니다. 그러나 VM이 할당 된 모든 메모리를 할당하고 사용하려고하면 어떻게 될지 이해하는 것이 좋습니다.
당신의 VM + 호스트가 사용하려고하는 최대 약이 될 것이다, 55 GB를은 사용량이 다를 수 있습니다
- ESXi에서 사용되는 1.3GB
- VM에서 사용하는 4261.98MB * 13
고려해야 할 또 다른 측면이 있으며 메모리 임계 값입니다. 기본적으로 VMware는 6 % 사용 가능 (높은 메모리 임계 값)을 목표로합니다. 따라서 55GB 의 사용 된 메모리를 ~ 45GB로 줄여야합니다.
즉, VM에 할당 된 메모리를 사용하는 경우 호스트에서 약 10,500MB의 메모리를 회수해야합니다. ESX가 추가 10.5GB를 찾기 위해 수행하는 세 가지 작업이 있습니다.
메모리 교정 방법
- 투명한 페이지 공유
- 메모리 벌룬
- 하이퍼 바이저 스와핑
VMware® ESX ™ 서버의 메모리 자원 관리 이해를 읽고 이해해야 합니다.
많은 요인에 따라, 세 가지 의지의 조합이 초과 커밋 된 호스트에서 발생할 수 있습니다. 초과 커밋의 영향을 이해하려면 환경을 테스트하고 이러한 메트릭을 모니터링해야합니다.
알만한 가치가있는 몇 가지 거친 규칙 (위의 논문과 다른 출처에서 모두).
- 2 / 4MB 페이지를 사용하는 VM에서는 투명한 페이지 공유 가 발생하지 않습니다. Windows VM에 4096MB를 할당하면 기본적으로 2 / 4MB 페이지가 사용됩니다 (PAE에 따라 다름). 메모리가 부족한 경우에만 VMware는 큰 페이지를 공유 할 수있는 4KB 페이지로 나눕니다. TPS는 유휴 CPU주기 사용 및 특정 속도로 메모리 페이지 검색에 의존합니다. 메모리를 비교적 느리게 반환합니다 (분이 아닌 1 시간을 생각하십시오). 따라서 부트 스톰은 TPS가 도움이되지 않음을 의미합니다. 이 세 가지 중에서 성능에 미치는 영향이 가장 낮습니다. 문서에서 더 많은
하드웨어 지원 메모리 가상화 (예 : Intel EPT Hardware Assist 및 AMD RVI Hardware Assist [6]) 시스템에서 ESX는 다음과 같은 작업을 위해 호스트 물리적 페이지가 큰 게스트 물리적 페이지 (일반 페이지의 경우 4KB가 아닌 2MB 연속 메모리 영역)를 자동으로 백업합니다. TLB 누락이 적어 성능이 향상되었습니다. 이러한 시스템에서 ESX는 다음과 같은 이유로 큰 페이지를 공유하지 않습니다. 1) 동일한 내용을 가진 두 개의 큰 페이지를 찾을 확률이 낮고 2) 2MB 페이지에 대한 비트 단위 비교를 수행하는 오버 헤드가 4KB 페이지 그러나 ESX는 여전히 각 큰 페이지 내에서 4KB 페이지에 대한 해시를 생성합니다. ESX는 큰 페이지를 스왑하지 않기 때문에 호스트 스와핑 중 큰 페이지는 작은 페이지로 나뉘어 미리 생성 된 해시를 사용하여 작은 페이지를 교체하기 전에 작은 페이지를 공유 할 수 있습니다. 요컨대, 호스트 메모리가 초과 커밋 될 때까지 하드웨어 지원 메모리 가상화 시스템에 대한 페이지 공유가 관찰되지 않을 수 있습니다.
다음 번에 열기 가 시작됩니다 (임계 값을 구성 할 수 있습니다. 기본적으로 호스트에 6 % 미만의 메모리가없는 경우 (높음과 소프트웨어 간)). 드라이버를 설치하고 일반적으로 Java 및 관리되는 응용 프로그램을주의하십시오. OS는 가비지 콜렉터가 다음에 수행 할 작업에 대한 통찰력이 없으며 디스크로 스왑 된 페이지에 도달하게됩니다. Java 애플리케이션을 독점적으로 실행하는 서버가 스왑을 완전히 비활성화하여 발생하지 않는 것을 보장하는 것은 드문 일이 아닙니다. vSphere Memory Management SPECjbb 17 페이지를 살펴보십시오.
세 가지 방법 중 하이퍼 바이저 스와핑 은 정해진 시간 내에 하이퍼 바이저가 "메모리"를 사용할 수 있도록 보장 하는 유일한 방법입니다 . 1 & 2가 하드 임계 값 (기본 2 % 사용 가능한 메모리) 미만으로 유지하기에 충분한 메모리를 제공하지 않는 경우에 사용됩니다 . 성능 지표 (독자적으로 수행)를 읽으면 이것이 세 가지 중 최악의 성능임을 알 수 있습니다. 거의 모든 응용 프로그램에서 두 자리 수의 백분율로 성능에 미치는 영향이 눈에 띄기 때문에 모든 비용을 피해야합니다.
낮음을 알아야 할 상태가 하나 더 있습니다 (기본적으로 1 %). 이 매뉴얼을 통해 성능을 크게 떨어 뜨리고
드문 경우이지만 호스트 사용 가능한 메모리가 낮은 임계 값 아래로 떨어지면 하이퍼 바이저는 스와핑 및 메모리 압축을 통해 메모리를 계속 회수하고 대상 메모리 할당보다 많은 메모리를 소비하는 모든 가상 머신의 실행을 추가로 차단합니다.
요약
스트레스의 핵심은 백서에서 환경의 작동 방식을 예측하는 것이 불가능하다는 것입니다.
- TPS가 얼마를 줄 수 있습니까? (VM이 OS, 서비스 팩 및 실행중인 응용 프로그램과 얼마나 유사한 지에 따라 다름)
- VM이 얼마나 빨리 메모리를 할당합니까? 메모리 속도가 빠를수록 영향을 덜받는 메모리 교정 체계가 현재 임계 값을 유지하는 데 성공하기 전에 다음 임계 값으로 이동할 가능성이 높아집니다.
- 응용 프로그램에 따라 각 메모리 교정 체계는 다양한 영향을 미칩니다.
평균 시나리오를 테스트하고 95 % 백분위 수 시나리오이며 마지막으로 환경이 어떻게 실행되는지 이해하기위한 최대 값입니다.
편집 1
vSphere 4 (또는 4.1에서 호출 할 수 없음)를 사용하면 하이퍼 바이저 스왑을 로컬 디스크에 배치 할 수 있지만 여전히 VM을 vmotion 할 수 있습니다. 공유 스토리지를 사용하는 경우 기본적으로 하이퍼 바이저 스왑 파일을 로컬 디스크에 있도록 이동하는 것이 좋습니다. 따라서 하나의 호스트에 메모리 가중이 발생하더라도 동일한 공유 스토리지의 다른 모든 vSphere 호스트 / VM에 영향을 미치지 않습니다.
편집 2
의견을 바탕으로 ESX가 굵은 글씨로 메모리를 미리 할당하지 않는다는 사실을 확인했습니다 ...
편집 3
메모리 임계 값에 대해 조금 더 설명했습니다.