VM 메모리
중요:
Citrix Hypervisor 8.2 누적 업데이트 1은 2025년 6월 25일에 수명이 종료됩니다. 원활한 전환과 지속적인 지원을 위해 지금 XenServer 8로의 업그레이드를 계획하십시오. 자세한 내용은 업그레이드.
Citrix Virtual Apps and Desktops 라이센스 파일을 사용하여 Citrix Hypervisor 8.2 누적 업데이트 1 호스트에 라이센스를 부여하는 경우 이러한 라이센스 파일은 XenServer 8과 호환되지 않습니다. 업그레이드하기 전에 XenServer 8에서 사용할 XenServer Premium Edition 소켓 라이센스 파일을 얻어야 합니다. 이러한 소켓 라이센스 파일은 Citrix 워크로드를 실행하기 위한 Citrix for Private Cloud, Citrix Universal Hybrid Multi-Cloud, Citrix Universal MSP 및 Citrix Platform License 구독의 자격으로 사용할 수 있습니다. 아직 이러한 새로운 서브스크립션으로 전환하지 않은 Citrix 고객은 XenServer Premium Edition 소켓 라이센스 10,000개에 대한 무료 프로모션에 참여를 요청할 수 있습니다. 자세한 내용은 XenServer 서버.
업그레이드하기 전에 XenServer 8에 대한 호환 라이센스를 얻지 못한 경우 호스트를 업그레이드할 때 90일 평가판으로 되돌아갑니다. 평가판은 Premium Edition과 동일한 기능을 제공하지만 몇 가지 제한 사항이 있습니다. 자세한 내용은 XenServer 8 라이센스 개요.
VM을 만들 때 고정된 양의 메모리가 VM에 할당됩니다. DMC (동적 메모리 제어) 를 사용하여 Citrix Hypervisor 환경에서 실제 메모리의 사용률을 높일 수 있습니다. DMC는 VM 간에 메모리를 동적으로 재할당할 수 있는 메모리 관리 기능입니다.
XenCenter는 메모리 사용량을 그래픽으로 표시합니다. 기억 탭. 자세한 내용은 XenCenter 설명서.
DMC(동적 메모리 제어)는 다음과 같은 이점을 제공합니다.
-
VM을 다시 시작하지 않고도 메모리를 추가하거나 삭제할 수 있으므로 사용자에게 원활한 환경을 제공할 수 있습니다.
-
서버가 꽉 차면 DMC를 사용하면 이러한 서버에서 더 많은 VM을 시작할 수 있으므로 실행 중인 VM에 비례하여 할당되는 메모리 양을 줄일 수 있습니다.
동적 메모리 제어(DMC)란 무엇입니까?
Citrix Hypervisor DMC는 실행 중인 VM의 메모리를 자동으로 조정하고, 각 VM에 할당된 메모리 양을 지정된 최소 및 최대 메모리 값 사이로 유지하고, 성능을 보장하고, 서버당 VM 밀도를 높이는 방식으로 작동합니다.
DMC가 없으면 서버가 가득 차면 “메모리 부족” 오류와 함께 추가 VM을 시작할 수 없습니다. 기존 VM 메모리 할당을 줄이고 더 많은 VM을 위한 공간을 확보하려면 각 VM의 메모리 할당을 편집한 다음 VM을 다시 시작합니다. DMC를 사용할 때 Citrix Hypervisor는 정의된 메모리 범위 내에서 실행 중인 VM의 현재 메모리 할당을 자동으로 줄여 메모리를 회수하려고 시도합니다. Citrix Hypervisor는 서버가 가득 찬 경우에도 메모리를 회수하려고 시도합니다.
노트:
동적 메모리 제어는 가상 GPU가 있는 VM에서 지원되지 않습니다.
다이나믹 레인지의 개념
관리자는 각 VM에 대해 동적 메모리 범위를 설정할 수 있습니다. 동적 메모리 범위는 다시 시작할 필요 없이 VM에서 메모리를 추가/제거할 수 있는 범위입니다. VM이 실행 중일 때 관리자는 동적 범위를 조정할 수 있습니다. Citrix Hypervisor는 항상 동적 범위 내에서 VM에 할당된 메모리 양을 유지하도록 보장합니다. 따라서 VM이 실행되는 동안 조정하면 Citrix Hypervisor가 VM에 할당된 메모리 양을 조정할 수 있습니다. 가장 극단적인 경우는 관리자가 동적 최소/최대를 동일한 값으로 설정하여 Citrix Hypervisor가 이 양의 메모리가 VM에 할당되도록 하는 경우입니다. 새 VM을 “전체” 서버에서 시작해야 하는 경우 실행 중인 VM은 새 VM을 시작하기 위해 메모리를 ‘압착’합니다. 필요한 추가 메모리는 미리 정의된 동적 범위 내에서 비례적으로 실행 중인 기존 VM을 압축하여 얻을 수 있습니다
DMC를 사용하면 동적 최소 및 최대 메모리 수준을 구성하여 VM이 작동하는 DMR(동적 메모리 범위)을 만들 수 있습니다.
-
동적 최소 메모리: VM에 할당하는 하한 메모리 제한입니다.
-
동적 상한: VM에 할당하는 메모리 상한입니다.
예를 들어 동적 최소 메모리가 512MB로 설정되고 동적 최대 메모리가 1,024MB로 설정된 경우 VM에 512-1024MB의 DMR(동적 메모리 범위)이 제공되며 이 범위 내에서 작동합니다. Citrix 하이퍼바이저 보장 DMC를 사용할 때 항상 지정된 DMR 내에서 각 VM 메모리를 할당합니다.
정적 범위의 개념
Citrix Hypervisor가 지원하는 많은 운영 체제는 메모리를 동적으로 추가하거나 삭제하는 개념을 완전히 ‘이해’하지 못합니다. 따라서 Citrix Hypervisor는 VM이 다시 시작될 때 사용하도록 요청되는 최대 메모리 양을 선언해야 합니다. 최대 메모리 양을 선언하면 게스트 운영 체제가 페이지 테이블 및 기타 메모리 관리 구조의 크기를 적절하게 조정할 수 있습니다. Citrix Hypervisor 내에서 정적 메모리 범위의 개념을 소개합니다. 정적 메모리 범위는 VM이 실행 중일 때 조정할 수 없습니다. 특정 부팅의 경우 동적 범위는 항상 이 정적 범위 내에 포함되도록 제한됩니다. 정적 최소값 (정적 범위의 하한)은 관리자를 보호하며 OS가 Citrix Hypervisor로 실행할 수 있는 가장 낮은 메모리 양으로 설정됩니다.
메모:
정적 최소 수준은 운영 체제별로 지원되는 수준으로 설정되므로 정적 최소 수준을 변경하지 않는 것이 좋습니다. 자세한 내용은 메모리 제약 조건 표를 참조하십시오.
정적 최대값 수준을 동적 최대값보다 높게 설정하면 나중에 VM을 다시 시작하지 않고도 VM에 더 많은 메모리를 할당할 수 있습니다.
DMC 동작
자동 VM 쥐어짜기
-
DMC를 사용하도록 설정하지 않은 경우 호스트가 꽉 차면 ‘메모리 부족’ 오류와 함께 새 VM 시작이 실패합니다.
-
DMC를 사용하도록 설정하면 호스트가 가득 찬 경우에도 Citrix Hypervisor는 정의된 동적 범위 내에서 실행 중인 VM의 메모리 할당을 줄여 메모리를 회수하려고 시도합니다. 이러한 방식으로 실행 중인 VM은 호스트의 모든 VM에 대한 동적 최소값과 동적 최대값 사이의 동일한 거리에서 비례적으로 압축됩니다
DMC가 활성화된 경우
-
호스트의 메모리가 충분한 경우 - 실행 중인 모든 VM은 동적 최대 메모리 수준을 받습니다.
-
호스트의 메모리가 부족한 경우 - 실행 중인 모든 VM은 동적 최소 메모리 수준을 받습니다.
DMC를 구성할 때는 VM에 적은 양의 메모리만 할당하면 VM에 부정적인 영향을 줄 수 있습니다. 예를 들어 메모리를 너무 적게 할당하면 다음과 같습니다.
-
동적 메모리 제어를 사용하여 VM에서 사용할 수 있는 실제 메모리의 양을 줄이면 VM이 느리게 시작될 수 있습니다. 마찬가지로 VM에 너무 적은 메모리를 할당하면 시작 속도가 느려질 수 있습니다.
-
VM의 동적 메모리 최소값을 너무 낮게 설정하면 VM을 시작할 때 성능 저하 또는 안정성 문제가 발생할 수 있습니다.
DMC는 어떻게 작동하나요?
DMC를 사용하면 다음 두 가지 모드 중 하나로 게스트 가상 머신을 작동할 수 있습니다.
-
대상 모드: 관리자는 게스트의 메모리 대상을 지정합니다. Citrix Hypervisor는 대상에 맞게 게스트의 메모리 할당을 조정합니다. 대상을 지정하는 것은 가상 서버 환경에서, 그리고 게스트가 사용할 메모리의 양을 정확히 알고 있는 상황에서 유용합니다. Citrix Hypervisor는 사용자가 지정한 목표에 맞게 게스트의 메모리 할당을 조정합니다.
-
다이나믹 레인지 모드: 관리자는 게스트에 대한 동적 메모리 범위를 지정합니다. Citrix Hypervisor는 범위에서 대상을 선택하고 대상에 맞게 게스트의 메모리 할당을 조정합니다. 동적 범위를 지정하면 Citrix Hypervisor가 게스트 수 변경 또는 호스트 메모리 압력 변경에 따라 호스트 메모리를 동적으로 다시 분할하려는 모든 상황에서 유용합니다. Citrix Hypervisor는 범위 내에서 대상을 선택하고 대상에 맞게 게스트의 메모리 할당을 조정합니다.
메모:
실행 중인 게스트에 대해 언제든지 대상 모드와 다이나믹 레인지 모드 사이를 변경할 수 있습니다. 새 대상 또는 새 동적 범위를 지정하면 Citrix Hypervisor가 나머지를 처리합니다.
메모리 제약 조건
Citrix Hypervisor를 사용하면 관리자가 모든 게스트 운영 체제에서 모든 메모리 제어 작업을 사용할 수 있습니다. 그러나 Citrix Hypervisor는 모든 게스트에 대해 다음과 같은 메모리 속성 순서 제약 조건을 적용합니다.
0 < memory-static-min <= memory-dynamic-min <= memory-dynamic-max <= memory-static-max
Citrix Hypervisor를 사용하면 관리자가 유효성 검사에 따라 게스트 메모리 속성을 이 제약 조건을 충족하는 값으로 변경할 수 있습니다. 그러나 이전 제약 조건 외에도 지원되는 각 운영 체제에 대해 특정 게스트 메모리 구성만 지원합니다. 지원되는 구성의 범위는 사용 중인 게스트 운영 체제에 따라 다릅니다. Citrix Hypervisor는 관리자가 지원되는 제한을 초과하도록 게스트를 구성하는 것을 방지하지 않습니다. 그러나 고객은 성능 또는 안정성 문제를 방지하기 위해 메모리 속성을 지원되는 제한 내로 유지하는 것이 좋습니다. 지원되는 각 운영 체제의 최소 및 최대 메모리 제한에 대한 자세한 지침은 다음을 참조하십시오. 게스트 운영 체제 지원.
경고:
게스트 메모리를 구성할 때는 운영 체제에서 주소를 지정할 수 있는 물리적 메모리의 최대 양을 초과하지 않는 것이 좋습니다. 운영 체제에서 지원하는 제한보다 큰 메모리 최대값을 설정하면 게스트 내에서 안정성 문제가 발생할 수 있습니다.
동적 최솟값은 지원되는 모든 운영 체제에 대해 정적 최댓값의 75% 이상이어야 합니다. 하한은 안정성 문제로 이어질 수 있습니다. 관리자는 VM의 크기를 신중하게 조정하고 작업 중인 애플리케이션 집합이 동적 최소값으로 안정적으로 작동하는지 확인하는 것이 좋습니다.
xe CLI 명령
VM의 정적 메모리 속성 표시
-
필요한 VM의 UUID를 찾습니다.
xe vm-list <!--NeedCopy-->
-
uuid를 기록한 다음 명령을 실행합니다.
param-name=메모리 정적 (Automatic Translation)
xe vm-param-get uuid=uuid param-name=memory-static-{min,max} <!--NeedCopy-->
예를 들어 다음은 UUID가 ec77로 시작하는 VM의 정적 최대 메모리 속성을 표시합니다.
xe vm-param-get uuid= \ ec77a893-bff2-aa5c-7ef2-9c3acf0f83c0 \ param-name=memory-static-max; 268435456 <!--NeedCopy-->
이 예제에서는 이 VM의 정적 최대 메모리가 268,435,456바이트(256MB)임을 보여 줍니다.
VM의 동적 메모리 속성 표시
동적 메모리 속성을 표시하려면 위와 같은 절차를 따르되 다음 명령을 사용합니다 param-name=메모리 동적 (Automatic Translation)
:
-
필요한 VM의 UUID를 찾습니다.
xe vm-list <!--NeedCopy-->
-
uuid를 기록한 다음 명령을 실행합니다.
param-name=메모리 동적 (Automatic Translation)
:xe vm-param-get uuid=uuid param-name=memory-dynamic-{min,max} <!--NeedCopy-->
예를 들어 다음은 UUID가 ec77로 시작하는 VM의 동적 최대 메모리 속성을 표시합니다
xe vm-param-get uuid= \ ec77a893-bff2-aa5c-7ef2-9c3acf0f83c0 \ param-name=memory-dynamic-max; 134217728 <!--NeedCopy-->
이 예제에서는 이 VM의 동적 최대 메모리가 134,217,728바이트(128MB)임을 보여 줍니다.
메모리 속성 업데이트
경고:
정적/동적 최소값/최대 매개변수를 설정할 때 올바른 순서를 사용하십시오. 또한 다음 제약 조건을 무효화해서는 안 됩니다.
0 < memory-static-min <= memory-dynamic-min <= memory-dynamic-max <= memory-static-max
가상 머신의 정적 메모리 범위를 업데이트합니다.
xe vm-memory-static-range-set uuid=uuid min=value max=value
<!--NeedCopy-->
가상 머신의 동적 메모리 범위를 업데이트합니다.
xe vm-memory-dynamic-range-set \
uuid=uuid min=value \
max=value
<!--NeedCopy-->
대상을 지정하는 것은 가상 서버 환경에서, 그리고 게스트가 사용할 메모리의 양을 정확히 알고 있는 모든 상황에서 유용합니다. Citrix Hypervisor는 사용자가 지정한 목표에 맞게 게스트의 메모리 할당을 조정합니다. 예를 들어:
xe vm-memory-target-set target=value vm=vm-name
<!--NeedCopy-->
가상 머신의 모든 메모리 제한(정적 및 동적)을 업데이트합니다.
xe vm-memory-limits-set \
uuid=uuid \
static-min=value \
dynamic-min=value \
dynamic-max=value static-max=value
<!--NeedCopy-->
노트:
- 변경되지 않는 VM에 특정 양의 메모리를 할당하려면 동적 최대값 및 동적 최소값을 동일한 값으로 설정합니다.
- VM의 동적 메모리는 정적 최대값을 초과하여 늘릴 수 없습니다.
- VM의 정적 최대값을 변경하려면 VM을 종료해야 합니다.
개별 메모리 속성 업데이트
경고:
정적 최소 수준은 운영 체제별로 지원되는 수준으로 설정되므로 변경하지 마십시오. 자세한 내용은 메모리 제약 조건.
VM의 동적 메모리 속성을 업데이트합니다.
-
필요한 VM의 UUID를 찾습니다.
xe vm-list <!--NeedCopy-->
-
uuid를 기록한 다음 다음 명령을 사용합니다.
메모리 다이나믹-{min,max}=값
xe vm-param-set uuid=uuid memory-dynamic-{min,max}=value <!--NeedCopy-->
다음 예제에서는 동적 최대값을 128MB로 변경합니다.
xe vm-param-set uuid=ec77a893-bff2-aa5c-7ef2-9c3acf0f83c0 memory-dynamic-max=128MiB
<!--NeedCopy-->