Hyper-V MPE 2012 R2 Dynamic Memory Balancer Average Pressure (Critical)

HyperVMPE2012R2.SRHV.DMBalancerAveragePressure.Critical.Monitor (UnitMonitor)

Knowledge Base article:

Summary

This gives you a very simple view of the overall memory allocation of your system. As long as this counter is under 100, there is enough memory in your system to service your virtual machines. Ideally this value should be at 80 or lower. The closer this gets to 100, the closer you are to running out of memory. Once this number goes over 100 then you can pretty much guarantee that you have virtual machines that are paging in the guest operating system.

External

http://blogs.msdn.com/b/virtual_pc_guy/archive/2010/09/01/looking-at-dynamic-memory-performance-counters.aspx

Element properties:

TargetMicrosoft.Windows.HyperV.2012.R2.ServerRole
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Instance NameHyper-V Dynamic Memory Balancer
Counter NameAverage Pressure
Frequency60
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeSystem.Performance.ConsecutiveSamplesThreshold
RemotableTrue
AccessibilityPublic
Alert Message
Dynamic Memory Balancer Average Pressure (Critical)
Instance {0}
Object {1}
Counter {2}
Has a value {3}
RunAsDefault

Source Code:

<UnitMonitor ID="HyperVMPE2012R2.SRHV.DMBalancerAveragePressure.Critical.Monitor" Accessibility="Public" Enabled="true" Target="MSWinHV2012R2Dis!Microsoft.Windows.HyperV.2012.R2.ServerRole" ParentMonitorID="SHLib!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="SPerf!System.Performance.ConsecutiveSamplesThreshold" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="HyperVMPE2012R2.SRHV.DMBalancerAveragePressure.Critical.Monitor_AlertMessageResourceID">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/InstanceName$</AlertParameter1>
<AlertParameter2>$Data/Context/ObjectName$</AlertParameter2>
<AlertParameter3>$Data/Context/CounterName$</AlertParameter3>
<AlertParameter4>$Data/Context/SampleValue$</AlertParameter4>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="ConditionFalse" MonitorTypeStateID="ConditionFalse" HealthState="Success"/>
<OperationalState ID="ConditionTrue" MonitorTypeStateID="ConditionTrue" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="MSWinLib!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>Average Pressure</CounterName>
<ObjectName>Hyper-V Dynamic Memory Balancer</ObjectName>
<InstanceName>System Balancer</InstanceName>
<AllInstances>false</AllInstances>
<Frequency>60</Frequency>
<Threshold>100</Threshold>
<Direction>greater</Direction>
<NumSamples>5</NumSamples>
</Configuration>
</UnitMonitor>