VM 전용 Hyper-V 2012 호스트 파티션에 RAM을 예약하려면 어떻게 해야 합니까?

VM 전용 Hyper-V 2012 호스트 파티션에 RAM을 예약하려면 어떻게 해야 합니까?

Hyper-V 2012 클러스터 노드가 2개의 VM을 지원해야 한다고 생각하는데도 지원하지 못하는 상황이 발생했습니다. 현재 저는 96GB RAM을 사용하고 있으며 2개의 47GB VM(정적 RAM)을 실행하고 싶습니다. 그러면 호스트에 2GB가 남는데, 이는 넉넉할 것으로 예상됩니다. 그러나 소프트웨어에서 메모리가 부족하다고 불평하기 때문에 두 번째 VM을 실행할 수 없습니다.

다음으로 각 VM을 46GB로 줄였지만 여전히 2개의 VM을 지원하지 않습니다. 노드에서 "taskmgr"을 실행하면 "44.9GB"가 사용 가능한 상태에서 51GB "사용 중"이 보고됩니다. 46GB VM이 호스트 파티션에서 5GB 오버헤드를 발생시키는 이유를 이해할 수 없습니다. 실행 중인 프로세스를 살펴보면 나열된 RAM이 최대 500MB 미만까지 추가됩니다.

2GB를 제외한 모든 공간을 VM 사용을 위해 명시적으로 예약하도록 Hyper-V에 지시하고 싶습니다.

또한 하이퍼바이저에 5GB가 "필요"한 이유를 아는 것이 더 좋습니다. Hyper-V가 RAM을 사용하여 내부적으로 무엇을 하는지 알 수 있는 방법이 있나요? 아니면 호스트에 실제로 필요한 RAM 양에 대한 Hyper-V 2012에 대한 새로운 계산이 있습니까(2GB로는 부족하므로)?

편집 - 2014-02-14

4개의 서로 다른 Hyper-V Server 2012r2 호스트와 2008r2를 검토한 후 비페이징 풀은 물리적으로 설치된 RAM에 따라 선형적으로 증가합니다. CPU가 AMD인지 Intel인지는 중요하지 않습니다. 호스트가 Windows 클러스터의 일부인지 여부는 중요하지 않습니다. 호스트가 도메인에 가입되어 있는지 여부는 중요하지 않습니다. 그리고 호스트에서 실행 중인 VM 수(또는 해당 VM이 소비하는 RAM의 양)는 중요하지 않습니다. 마지막으로, 저는 이것이 2012r1의 동작이라고 생각합니다. 왜냐하면 2012r2 호스트가 모두 2012r1이었을 때 이러한 증상이 있었기 때문입니다.

모든 경우에 설치된 RAM 용량(GB 단위)에 0.0425를 곱하면 비페이징 풀에서 손실되는 RAM 용량(GB 단위)을 알 수 있습니다. (그것은매우대략적인 추정입니다.)

따라서 Microsoft가 소프트웨어를 수정하거나 이 동작이 의도적으로 발생했음을 공식적으로 인정할 때까지 대답은 모든 사람이 일반적으로 사용하는 계산(아래 답변 참조)을 사용한 다음 위 계산 결과를 추가하여 설명하는 것입니다. RAM은 비페이징 풀로 인해 손실됩니다. (또는 원하신다면 여기에 예시가 포함된 요약이 있습니다.)

추신: "GB"라고 썼지만 Windows에서 보고하는 내용을 사용하고 있다는 점을 기억하는 것이 중요하다고 생각합니다. Windows 및 RAMMap에서 보고된 숫자는 GB/KB가 아니라 실제로 GiB/KiB이므로 Nonpaged Pool 계산 결과에 1024를 곱하여 RAMMap에서 보고된 "K" 숫자와 비교합니다.

답변1

원천

하이퍼바이저용 300MB + 각 가상 머신에 할당된 첫 번째 RAM용 32MB + 각 가상 머신에 할당된 추가 RAM마다 8MB + 루트 파티션에서 실행되는 호스트 운영 체제용 512MB

일반적으로 I/O 가상화, 스냅샷 파일 지원, 하위 파티션 관리와 같은 서비스를 제공하려면 루트 파티션에 최소 512MB 메모리를 할당하도록 계획하십시오.

첫 번째 VM의 경우 300+32+(45*8)=692MB

두 VM 모두에 대해 692+32+(45*8)=1084

경험상 총 1084+512=1596MB 계산

따라서 이것은 단지 하이퍼바이저 소비일 뿐입니다. 이제 첫 번째 VM이 프로비저닝된 경우에도 5GB 이상을 사용했다고 가정해 보겠습니다. 명령 프롬프트에서 tasklist의 출력을 살펴보고 RAM을 소비하는 서버 프로세스를 찾는 것이 좋습니다.

관련 정보