Available Megabytes of Memory

Microsoft.Windows.Server.10.0.OperatingSystem.MemoryAvailableMBytes (UnitMonitor)

Monitors the available memory level.

Knowledge Base article:

Summary

The Available MBytes (Memory\Available MBytes) for the system has fallen below threshold. Overall system performance may significantly diminish which will result in poor operating system and application performance.

Available MBytes is the amount of physical memory that is available for use by applications and processes.

The default memory threshold value is 100MB

Causes

The amount of available physical memory can become low under the following circumstances:

Resolutions

To view recent history for the Memory\Available MBytes counter you can use the following view:

Start Memory Available MBytes Performance View

To address a low physical memory condition an administrator may chose one or more of the following options:

If the system has been adequately provisioned with physical memory and application load but it continually exceeds the available physical memory threshold over time, it is possible that an application is leaking memory. To identify an application that is leaking memory, do the following:

Open System Monitor and monitor the following system wide performance counters over time:

If any one of these counters continually increase over time, it is possible that an application may be leaking memory.

If the system appears to be leaking memory, the specific application can be identified by monitoring the following counters for each running process:

If you observe a consistent and significant increase in any of these counters, it may be necessary to contact the application vendor for support.

Additional

For more information about monitoring memory counters, see the Microsoft® Windows® 2000 Server Documentation Web site at: http://go.microsoft.com/fwlink/?LinkId=27750.

For more information about memory objects, see the MSDN Web site at: http://go.microsoft.com/fwlink/?LinkId=27751.

For more information about evaluating memory and cache usage, see the Microsoft Windows 2000 Resource Kit Web site at: http://go.microsoft.com/fwlink/?LinkId=27681.

Element properties:

TargetMicrosoft.Windows.Server.10.0.OperatingSystem
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.Server.10.0.MemoryAvailableMBytes.Monitortype
RemotableTrue
AccessibilityPublic
Alert Message
Available Megabytes of Memory is too low
The threshold for the Memory\Available MBytes performance counter has been exceeded. The value that exceeded the threshold is: {0}.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.Server.10.0.OperatingSystem.MemoryAvailableMBytes" Accessibility="Public" Enabled="true" Target="ServervNext!Microsoft.Windows.Server.10.0.OperatingSystem" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.Windows.Server.10.0.MemoryAvailableMBytes.Monitortype" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.Windows.Server.10.0.OperatingSystem.MemoryAvailableMBytes.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='AvailableMBytes']$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="OverThreshold" MonitorTypeStateID="MemoryAvailableMBytesNormal" HealthState="Success"/>
<OperationalState ID="UnderThreshold" MonitorTypeStateID="MemoryAvailableMBytesLow" HealthState="Error"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>900</IntervalSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<TargetComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</TargetComputerName>
<MemoryThreshold>100</MemoryThreshold>
<NumSamples>3</NumSamples>
<CounterName>Available MBytes</CounterName>
<ObjectName>Memory</ObjectName>
<InstanceName/>
<AllInstances>false</AllInstances>
</Configuration>
</UnitMonitor>