ESXi 서버에서 메모리는 어떻게 할당됩니까?


17

RAM이 48GB 인 ESXi 4.1 서버가 있습니다.

각 VM마다 4GB의 메모리를 할당합니다. 서버에는 13 개의 가상 머신이 있으므로 관리자는 이것이 잘못되었다고 생각합니다.

ESXi가 실제로 메모리 자체를 관리 할 것이라고 설명하지만 ESXi 서버 자체에 얼마나 많은 메모리를 할당했는지 묻습니다.

나는 아무것도 할당하지 않았다 (ESXi 서버 자체에 메모리를 할당하는 옵션조차 들어 본 적이 없다).

ESXi 서버에 메모리가 어떻게 할당됩니까? 가상 머신간에 RAM을 어떻게 초과 할당 / 배포합니까?

답변:


26

여기에 문제가되는 ESXi 이상의 것이 많이 있습니다.

  1. 각 VM은 최대 4GB + "오버 헤드"를 소비하며 여기 에 설명되어 있습니다 . 이것은 vCPU, + 메모리 할당에 따라 다릅니다. 최소한 각 VM은 4261.98MB (4096 + 165.98)를 사용합니다.
  2. 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를 찾기 위해 수행하는 세 가지 작업이 있습니다.

메모리 교정 방법

  1. 투명한 페이지 공유
  2. 메모리 벌룬
  3. 하이퍼 바이저 스와핑

VMware® ESX ™ 서버의 메모리 자원 관리 이해를 읽고 이해해야 합니다.

많은 요인에 따라, 세 가지 의지의 조합이 초과 커밋 된 호스트에서 발생할 수 있습니다. 초과 커밋의 영향을 이해하려면 환경을 테스트하고 이러한 메트릭을 모니터링해야합니다.

알만한 가치가있는 몇 가지 거친 규칙 (위의 논문과 다른 출처에서 모두).

  1. 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는 큰 페이지를 스왑하지 않기 때문에 호스트 스와핑 중 큰 페이지는 작은 페이지로 나뉘어 미리 생성 된 해시를 사용하여 작은 페이지를 교체하기 전에 작은 페이지를 공유 할 수 있습니다. 요컨대, 호스트 메모리가 초과 커밋 될 때까지 하드웨어 지원 메모리 가상화 시스템에 대한 페이지 공유가 관찰되지 않을 수 있습니다.

  1. 다음 번에 열기 가 시작됩니다 (임계 값을 구성 할 수 있습니다. 기본적으로 호스트에 6 % 미만의 메모리가없는 경우 (높음과 소프트웨어 간)). 드라이버를 설치하고 일반적으로 Java 및 관리되는 응용 프로그램을주의하십시오. OS는 가비지 콜렉터가 다음에 수행 할 작업에 대한 통찰력이 없으며 디스크로 스왑 된 페이지에 도달하게됩니다. Java 애플리케이션을 독점적으로 실행하는 서버가 스왑을 완전히 비활성화하여 발생하지 않는 것을 보장하는 것은 드문 일이 아닙니다. vSphere Memory Management SPECjbb 17 페이지를 살펴보십시오.

  2. 세 가지 방법 중 하이퍼 바이저 스와핑 은 정해진 시간 내에 하이퍼 바이저가 "메모리"를 사용할 수 있도록 보장 하는 유일한 방법입니다 . 1 & 2가 하드 임계 값 (기본 2 % 사용 가능한 메모리) 미만으로 유지하기에 충분한 메모리를 제공하지 않는 경우에 사용됩니다 . 성능 지표 (독자적으로 수행)를 읽으면 이것이 세 가지 중 최악의 성능임을 알 수 있습니다. 거의 모든 응용 프로그램에서 두 자리 수의 백분율로 성능에 미치는 영향이 눈에 띄기 때문에 모든 비용을 피해야합니다.

  3. 낮음을 알아야 할 상태가 하나 더 있습니다 (기본적으로 1 %). 이 매뉴얼을 통해 성능을 크게 떨어 뜨리고

드문 경우이지만 호스트 사용 가능한 메모리가 낮은 임계 값 아래로 떨어지면 하이퍼 바이저는 스와핑 및 메모리 압축을 통해 메모리를 계속 회수하고 대상 메모리 할당보다 많은 메모리를 소비하는 모든 가상 머신의 실행을 추가로 차단합니다.

요약

스트레스의 핵심은 백서에서 환경의 작동 방식을 예측하는 것이 불가능하다는 것입니다.

  1. TPS가 얼마를 줄 수 있습니까? (VM이 OS, 서비스 팩 및 실행중인 응용 프로그램과 얼마나 유사한 지에 따라 다름)
  2. VM이 얼마나 빨리 메모리를 할당합니까? 메모리 속도가 빠를수록 영향을 덜받는 메모리 교정 체계가 현재 임계 값을 유지하는 데 성공하기 전에 다음 임계 값으로 이동할 가능성이 높아집니다.
  3. 응용 프로그램에 따라 각 메모리 교정 체계는 다양한 영향을 미칩니다.

평균 시나리오를 테스트하고 95 % 백분위 수 시나리오이며 마지막으로 환경이 어떻게 실행되는지 이해하기위한 최대 값입니다.


편집 1

vSphere 4 (또는 4.1에서 호출 할 수 없음)를 사용하면 하이퍼 바이저 스왑을 로컬 디스크에 배치 할 수 있지만 여전히 VM을 vmotion 할 수 있습니다. 공유 스토리지를 사용하는 경우 기본적으로 하이퍼 바이저 스왑 파일을 로컬 디스크에 있도록 이동하는 것이 좋습니다. 따라서 하나의 호스트에 메모리 가중이 발생하더라도 동일한 공유 스토리지의 다른 모든 vSphere 호스트 / VM에 영향을 미치지 않습니다.

편집 2

의견을 바탕으로 ESX가 굵은 글씨로 메모리를 미리 할당하지 않는다는 사실을 확인했습니다 ...

편집 3

메모리 임계 값에 대해 조금 더 설명했습니다.


1
VMware는 사용되지 않는 메모리를 할당 하지 않습니다 . 오버 커밋이 작동하는 실제 이유는 VM이 요청할 때 최대 메모리 양만 할당 하기 때문 입니다. 모든 것이 할당되면 추가 메모리 요청이 스왑에서 발생합니다.
adaptor

1
주석을 추가하기 전에이 비트를 보셨습니까? "하이퍼 바이저가 모든 메모리를 사전에 할당하지는 않으며 VM 사용에 따라 다릅니다. 그러나 VM이 할당 된 모든 메모리를 할당하고 사용하려고하면 어떻게 될지 이해하는 것이 좋습니다."
M Afifi

그것은 분명히 OP OP의 주요 관심사 중 하나 였기 때문에 (VMware는 내가 가지고 있지 않은 메모리를 어떻게 활용합니까?), 나중에 생각하지 말고 목록에서 높은 것으로 나타났습니다. 교정을 설명하여 메모리 사용을 거꾸로 설명하고 있습니다. 왜 ?
어댑터 1

거꾸로 어때요? 답은 할당 한 메모리 용량입니다. 미리 할당하지 않습니다. VM 메모리 사용량을 기반으로하는 경우 그 영향이 있습니다. 누군가 걱정하지 않는다고 말할 수는 없습니다. 메모리를 초과 커밋하는 경우 그 영향을 알아야합니다.
M Afifi

4

VMware (및 기타 가상화 기술) 다양한 알고리즘에 따라 VM간에 리소스 (메모리, 프로세서 시간, 다양한 종류의 I / O )를 공유 합니다.

모든 VM이 항상 필요한 모든 처리, 메모리 또는 I / O를 사용하는 것은 아니기 때문에 리소스 를 초과 커밋 할 수 있습니다. VMware의 리소스 관리 가이드 는 아마도 ESXi에서 가능한 것을 읽을 수있는 가장 좋은 장소 일 것입니다.

리소스마다 다른 VM에 가중치를 부여하여 알고리즘의 효과를 관리 할 수도 있습니다. 예를 들어, 응용 프로그램 서버 VM에 프로세서에 대한 파일 서버 VM보다 높은 가중치를 부여 할 수 있습니다. 그러나 기본 설정은 대부분의 요구 사항을 잘 처리합니다. 경우에 따라 여기에서 일부 구성을 수행하면 관리자 권한을 갖지 못하는 관리자를 배치하기에 충분하지만 물론 VMware 버전에 대한 문서를 읽고주의 사항을 이해해야합니다. 당신의 매니저가 더 이상의 배치를 필요로하지 않는다면, 기본값을 사용하십시오.

특히 단일 서버에서 가상화 한 경우 초과 커밋이 항상 좋은 생각은 아닙니다. ESXi 영역에서 리소스 사용을 모니터링하고 필요한 경우 하나 이상의 리소스를 모두 자주 사용하는 경우 추가 호스트 / 리소스를 추가해야합니다.


2

VMWare ESXi 설치가 처리하도록하십시오. 메모리 벌룬, 압축 및 중복 제거 기술을 사용하여 VMWare 시스템에서 RAM 리소스를 초과 커밋 할 수 있습니다 .

가상 머신이 유사한 운영 체제를 사용하는 경우 약간의 비용이 절약됩니다. 이러한 기능을 최대한 활용하려면 게스트 VM 내부에서 VMWare 도구를 활성화해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.