Virtual Machine Manager Maximum Dynamic Memory Monitor

ProHostMaxDynamicMemoryUnitMonitor (UnitMonitor)

This is a unit monitor for checking if the sum total of maximum memory per virtual machine is greater than host's physical memory

Knowledge Base article:

Summary

This monitor tracks the total maximum memory configured for virtual machines on a Hyper-V host and generates an alert should the sum of configured maximum memory exceed the host’s installed physical memory by a user defined percentage. The default thresholds are 125% (warning) and 150% (error).

Causes

The total maximum memory configured for virtual machines on this host exceeds the defined thresholds.

Resolutions

Either migrate virtual machines or adjust the maximum memory assigned to virtual machines to alleviate the condition.

Element properties:

TargetMicrosoft.SystemCenter.VirtualMachineManager.PRO.V2.ManagedHost.HyperV
Parent MonitorSystem.Health.PerformanceState
CategoryCustom
EnabledFalse
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SystemCenter.VirtualMachineManager.PRO.MaxDynMemPerformance.ScriptBasedThresholdType
RemotableTrue
AccessibilityPublic
Alert Message
PRO Maximum Dynamic Memory Usage
Sum total of the maximum dynamic memory allocated to virtual machines for this host has reached warning or critical levels.
RunAsDefault

Source Code:

<UnitMonitor ID="ProHostMaxDynamicMemoryUnitMonitor" Accessibility="Public" Enabled="false" Target="Microsoft.SystemCenter.VirtualMachineManager.PRO.V2.ManagedHost.HyperV" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SystemCenter.VirtualMachineManager.PRO.MaxDynMemPerformance.ScriptBasedThresholdType" ConfirmDelivery="false">
<Category>Custom</Category>
<AlertSettings AlertMessage="ProHostMaxDynamicMemoryUnitMonitor_AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
</AlertSettings>
<OperationalStates>
<OperationalState ID="MaxDynamicMemoryUnitMonitor_StateSuccess" MonitorTypeStateID="ConditionSuccess" HealthState="Success"/>
<OperationalState ID="MaxDynamicMemoryUnitMonitor_StateWarning" MonitorTypeStateID="ConditionWarn" HealthState="Warning"/>
<OperationalState ID="MaxDynamicMemoryUnitMonitor_StateError" MonitorTypeStateID="ConditionError" HealthState="Error"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>900</IntervalSeconds>
<VMNames>$Target/Property[Type="Microsoft.SystemCenter.VirtualMachineManager.PRO.V2.ManagedHost.HyperV"]/VMNames$</VMNames>
<WarningThreshold>125</WarningThreshold>
<ErrorThreshold>150</ErrorThreshold>
</Configuration>
</UnitMonitor>