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 |