다음을 통해 공유


Msvm_MemorySettingData 클래스

가상 머신에 대해 구성된 메모리 상태를 나타냅니다.

다음 구문은 간소화된 MOF(Managed Object Format) 코드이며 상속된 모든 속성을 포함합니다.

구문

[Dynamic, Provider("VmmsWmiInstanceAndMethodProvider"), AMENDMENT]
class Msvm_MemorySettingData : CIM_ResourceAllocationSettingData
{
  string  InstanceID;
  string  Caption = "Memory Default Settings";
  string  Description = "Describes the default settings for the memory resources.";
  string  ElementName;
  uint16  ResourceType = 4;
  string  OtherResourceType;
  string  ResourceSubType = "Microsoft:Hyper-V:Memory";
  string  PoolID;
  uint16  ConsumerVisibility;
  string  HostResource[];
  boolean HugePagesEnabled;
  string  AllocationUnits = "byte * 2^20";
  uint64  VirtualQuantity;
  uint64  Reservation;
  uint64  Limit;
  uint32  Weight;
  boolean AutomaticAllocation = True;
  boolean AutomaticDeallocation = True;
  string  Parent;
  string  Connection[];
  string  Address;
  uint16  MappingBehavior;
  string  AddressOnParent;
  string  VirtualQuantityUnits = "byte * 2^20";
  boolean DynamicMemoryEnabled;
  uint32  TargetMemoryBuffer;
  boolean IsVirtualized = True;
  boolean SwapFilesInUse;
  uint64  MaxMemoryBlocksPerNumaNode;
  uint64  SgxSize;
  boolean SgxEnabled;
};

멤버

Msvm_MemorySettingData 클래스에는 다음과 같은 유형의 멤버가 있습니다.

속성

Msvm_MemorySettingData 클래스에는 이러한 속성이 있습니다.

주소

데이터 형식: 문자열

액세스 유형: 읽기 전용

리소스의 주소입니다. 예를 들어 이더넷 포트의 MAC 주소입니다. 이 속성은 CIM_ResourceAllocationSettingData 상속됩니다.

AddressOnParent

데이터 형식: 문자열

액세스 유형: 읽기 전용

부모의 컨텍스트에서 이 리소스의 주소를 설명합니다. 부모AddressOnParent 속성은 컨트롤러 관계와 컨트롤러의 디바이스 순서를 설명하는 데 사용됩니다. 이 속성은 CIM_ResourceAllocationSettingData 상속됩니다.

AllocationUnits

데이터 형식: 문자열

액세스 유형: 읽기 전용

예약제한 속성에서 사용하는 할당 단위입니다. 이 속성은 CIM_ResourceAllocationSettingData 상속됩니다.

AutomaticAllocation

데이터 형식: boolean

액세스 유형: 읽기 전용

리소스가 자동으로 할당되는지 여부를 나타냅니다. 예를 들어 이 속성이 True설정되고 소비하는 가상 머신의 전원이 켜지면 이 리소스가 할당됩니다. False은 리소스를 명시적으로 할당해야 했음을 나타냅니다. 예를 들어 이 설정은 시작 시 미디어가 없는 이동식 미디어(예: CD-ROM 또는 플로피 디스크)를 나타낼 수 있습니다. 리소스를 할당하려면 명시적 작업이 필요합니다. 이 속성은 CIM_ResourceAllocationSettingData 상속됩니다.

AutomaticDeallocation

데이터 형식: boolean

액세스 유형: 읽기 전용

리소스가 자동으로 할당되는지 여부를 나타냅니다. 예를 들어 이 속성이 True설정되고 소비하는 가상 머신의 전원이 켜지면 이 리소스가 할당됩니다. 이 속성이 False면 리소스를 명시적으로 할당해야 합니다. 예를 들어 이 설정은 시작 시 미디어가 없는 이동식 미디어(예: CD-ROM 또는 플로피 디스크)를 나타낼 수 있습니다. 리소스를 할당하려면 명시적 작업이 필요합니다. 이 속성은 CIM_ResourceAllocationSettingData 상속됩니다.

캡션

데이터 형식: string

액세스 유형: 읽기 전용

한정자: MaxLen(64)

개체에 대한 간단한 설명입니다. 이 속성은 CIM_ManagedElement 상속됩니다.

Connection

데이터 형식: 문자열 배열

액세스 유형: 읽기 전용

이 리소스가 연결된 디바이스입니다. 예를 들어 명명된 네트워크 또는 스위치 포트입니다. 이 속성은 CIM_ResourceAllocationSettingData 상속됩니다.

ConsumerVisibility

데이터 형식: uint16

액세스 유형: 읽기 전용

할당된 리소스에 대한 소비자 가시성을 설명합니다. 이 속성은 CIM_ResourceAllocationSettingData 상속됩니다.

설명

데이터 형식: 문자열

액세스 유형: 읽기 전용

개체에 대한 설명입니다. 이 속성은 CIM_ManagedElement 상속됩니다.

DynamicMemoryEnabled

데이터 형식: boolean

액세스 유형: 읽기 전용

가상 머신에 동적 메모리를 사용할 수 있는지 여부를 나타냅니다.

ElementName

데이터 형식: 문자열

액세스 유형: 읽기 전용

개체의 표시 이름입니다. 이 속성은 CIM_SettingData 상속됩니다.

HostResource

데이터 형식: 문자열 배열

액세스 유형: 읽기 전용

이 배열의 첫 번째 요소는 할당할 기본 호스트 리소스에 대한 참조를 포함합니다. 이 속성은 CIM_ResourceAllocationSettingData 상속되지만 사용되지 않습니다.

HugePagesEnabled

데이터 형식: boolean

액세스 유형: 읽기 전용

메모리가 1GB 페이지로 지원되는지 여부입니다.

InstanceID

데이터 형식: 문자열

액세스 유형: 읽기 전용

한정자: Key

이 클래스의 인스턴스를 고유하게 식별합니다. 이 속성은 CIM_ManagedElement 상속됩니다.

IsVirtualized

데이터 형식: boolean

액세스 유형: 읽기 전용

이 디바이스가 가상화되었는지 아니면 통과되었는지를 나타냅니다. False설정하면 기본 또는 호스트 리소스가 사용됩니다. DeviceID 속성에 하나 이상의 항목이 있어야 합니다. True설정하면 리소스가 가상화되고 기본/호스트 리소스에 직접 매핑되지 않을 수 있습니다. 일부 구현은 가상화된 리소스에 대한 특정 할당을 지원할 수 있으며, 이 경우 DeviceID 속성을 사용하여 호스트 리소스가 노출됩니다. 이 속성은 항상 True로 설정됩니다.

제한

데이터 형식: uint64

액세스 유형: 읽기 전용

가상 머신에서 사용할 수 있는 최대 메모리 양입니다. 동적 메모리를 사용하는 가상 머신의 경우 최대 메모리 설정을 나타냅니다. 이 속성은 CIM_ResourceAllocationSettingData 상속됩니다.

MappingBehavior

데이터 형식: uint16

액세스 유형: 읽기 전용

이 리소스가 기본 리소스에 매핑되는 방법을 지정합니다. 이 속성은 CIM_ResourceAllocationSettingData 상속됩니다.

MaxMemoryBlocksPerNumaNode

데이터 형식: uint64

액세스 유형: 읽기 전용

단일 NUMA 노드에 속하는 것으로 가상 머신 내에서 관찰할 수 있는 최대 메모리 양입니다.

OtherResourceType

데이터 형식: 문자열

액세스 유형: 읽기 전용

잘 정의된 값을 사용할 수 없으며 ResourceType 값이 "Other"인 경우 리소스 유형을 설명하는 문자열입니다. 이 속성은 CIM_ResourceAllocationSettingData 상속됩니다.

부모

데이터 형식: 문자열

액세스 유형: 읽기 전용

리소스의 부모입니다. 예를 들어 현재 할당에 대한 컨트롤러입니다. 이 속성은 CIM_ResourceAllocationSettingData 상속됩니다.

PoolID

데이터 형식: 문자열

액세스 유형: 읽기 전용

이 리소스가 할당된 리소스 풀의 식별자입니다. 이 속성은 CIM_ResourceAllocationSettingData 상속됩니다.

예약

데이터 형식: uint64

액세스 유형: 읽기 전용

이 가상 머신에 사용할 수 있도록 보장되는 메모리 양을 지정합니다. 동적 메모리를 사용하는 가상 머신의 경우 최소 메모리 설정을 나타냅니다. 이 속성은 CIM_ResourceAllocationSettingData 상속됩니다.

ResourceSubType

데이터 형식: 문자열

액세스 유형: 읽기 전용

이 리소스에 대한 구현 특정 하위 형식을 설명하는 문자열입니다. 예를 들어 동일한 리소스 유형의 다른 모델을 구분하는 데 사용할 수 있습니다. 이 속성은 CIM_ResourceAllocationSettingData 상속됩니다.

ResourceType

데이터 형식: uint16

액세스 유형: 읽기 전용

이 할당 설정이 나타내는 리소스의 유형입니다. 이 속성은 CIM_ResourceAllocationSettingData 상속되며 항상 4(메모리)로 설정됩니다.

SgxEnabled

데이터 형식: boolean

액세스 유형: 읽기 전용

SGX를 사용할 수 있는지를 나타냅니다.

참고 항목

이 속성은 Windows 10 버전 1703에 추가되었습니다.

SgxSize

데이터 형식: uint64

액세스 유형: 읽기 전용

VM에 할당할 SGX 메모리 양(MB)입니다.

참고 항목

이 속성은 Windows 10 버전 1703에 추가되었습니다.

SwapFilesInUse

데이터 형식: boolean

액세스 유형: 읽기 전용

두 번째 수준 페이징이 활성 상태이면 true 이고, 그렇지 않으면 false입니다.

TargetMemoryBuffer

데이터 형식: uint32

액세스 유형: 읽기 전용

런타임에 가상 머신에 대해 예약해야 하는 추가 메모리의 양을 가상 머신에 필요한 총 메모리의 백분율로 정의합니다. 동적 메모리를 사용하도록 설정된 가상 머신에만 적용됩니다.

이 속성은 5에서 2000까지의 범위에 있을 수 있습니다.

VirtualQuantity

데이터 형식: uint64

액세스 유형: 읽기 전용

게스트 운영 체제에서 볼 수 있는 가상 머신의 총 RAM 양입니다. 동적 메모리가 활성화된 가상 머신의 경우 시작 시 사용할 수 있는 초기 메모리를 나타냅니다. 이 속성은 CIM_ResourceAllocationSettingData 상속됩니다.

VirtualQuantityUnits

데이터 형식: 문자열

액세스 유형: 읽기 전용

이 리소스 할당에 대한 측정 단위를 지정합니다. 이 속성의 값은 DSP0004 V2.5 이상의 부록 C.1에 정의된 프로그래밍 단위 한정자의 법적 값이어야 합니다. 이 속성은 CIM_ResourceAllocationSettingData 상속됩니다.

가중치

데이터 형식: uint32

액세스 유형: 읽기 전용

각 가상 머신에 대한 메모리 할당 가중치 값을 정의합니다. 모든 예약이 충족되면 호스팅 플랫폼의 다시 기본 메모리가 상대 가중치에 따라 가상 머신에 할당됩니다(Limit 속성에 지정된 값을 초과하지 않음). 이 속성은 CIM_ResourceAllocationSettingData 상속됩니다.

설명

Msvm_MemorySettingData 클래스에 대한 액세스는 UAC 필터링에 의해 제한될 수 있습니다. 자세한 내용은 사용자 계정 컨트롤 및 WMI를 참조하세요.

예제

function WaitForResult
{
  param($result)
  if ($result.ReturnValue -eq 4096)
  {
    while($true)
    {
      $result.Job
      if ($result.Job -ne $null)
      {
        if ($result.Job.JobState -gt 4)
        {
          return $result.Job.ErrorCode
        }
      }
      start-sleep 1
    }
  }
  else
  {
    return $result.ReturnValue
  }
}

if ($($args.count) -ne 2)
{
  Write-Host "EnableHugePages.ps1 VMName SizeInMB"
  return
}

$vmName = $args[0]
$sizeInMB = $args[1]
 
$namespace = "root\virtualization\v2"
$vm = Get-WmiObject -class MSVM_ComputerSystem -filter "ElementName='$vmName'" -namespace $namespace
$settings = Get-WmiObject -query "Associators of {$vm} where ResultClass = Msvm_VirtualSystemSettingData" -namespace $namespace
$vmSettings = $settings | ? VirtualSystemType -eq "Microsoft:Hyper-V:System:Realized"
$memorySettings = Get-WmiObject -query "Associators of {$vmSettings} where ResultClass = Msvm_MemorySettingData" -namespace $namespace

$memorySettings.MaxMemoryBlocksPerNumaNode = $sizeInMB
$memorySettings.Reservation = $sizeInMB
$memorySettings.Limit = $sizeInMB
$memorySettings.VirtualQuantity = $sizeInMB
$memorySettings.HugePagesEnabled = $True

$vmSvc = Get-WmiObject -class Msvm_VirtualSystemManagementService -namespace $namespace
$res = $vmSvc.ModifyResourceSettings($memorySettings.GetText(2))
if (WaitForResult($res) -ne 0)
{
  Write-Host "Failed."
}

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows 8 [데스크톱 앱만 해당]
지원되는 최소 서버
Windows Server 2012 [데스크톱 앱만 해당]
네임스페이스
Root\Virtualization\V2
MOF
WindowsVirtualization.V2.mof
DLL
Vmms.exe

참고 항목