Monitor the performance counter Memory\\% Committed Bytes in Use
The % Committed Bytes In Use (Memory\% Committed Bytes In Use) for the system has exceeded the threshold. Overall system performance may significantly diminish which will result in poor operating system and application performance.
The % Committed Bytes In Use performance counter represents the ratio of Memory\Committed Bytes to the Memory\Commit Limit. Committed Bytes is the amount of committed virtual memory while Commit Limit is the amount of virtual memory that can be committed without having to extend the paging file(s).
When this performance threshold has been exceeded, it often indicates that the page file could not be expanded, or expanded fast enough, to satisfy application memory requirements.
The amount of available physical memory can become low under the following circumstances:
Too many applications are running simultaneously on the computer.
An application may be leaking memory over time.
To confirm whether excessive paging is occurring, add the Avg. Disk sec/Transfer (a physical disk counter) and Pages/sec counter values. If the product of these counters exceeds 0.1, paging is taking more than 10 percent of disk access time. If this occurs over a long period, you probably need more memory.
Next, check for excessive paging due to running applications. If possible, stop the application with the highest working set value, and see if that dramatically changes the paging rate. If you suspect excessive paging, check the Pages/sec counter in System Monitor. This counter, which is part of the Memory object type, shows the number of pages that had to be read from disk because they were not in physical memory. (Notice the difference between this counter and Page Faults/sec, which indicates only that data was not immediately available in the specified working set in memory.)
To address a low physical memory condition an administrator may chose one or more of the following options:
Close or stop one or more applications, services, processes
Add additional Physical Memory to the computer
Move applications to one or more additional computers (applicable to Servers only)
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’s possible that an application is leaking memory. To identify an application that is leaking memory an administrator can do the following:
Open up System Monitor and monitor the following system wide performance counters over time:
Paging File\% Usage
Paging File\%
Memory\Pool Nonpaged Bytes
Memory\Pool Paged Bytes
If any one of these counters continually increase over time it is possible that an application may be leaking memory. To view recent history for these performance counters you can use the following view:
If the system appears to be leaking memory, the specific application can be identified by monitoring the following counters for each running process using System Monitor:
Process\Page File Bytes
Process\Pool Nonpaged Bytes
Process\Pool Paged Bytes
Process\Private Bytes
Process\Thread Count
If a consistent and significant increase in any of these counters is observed it may be necessary to contact the application vendor for support.
Target | Microsoft.Windows.Server.10.0.OperatingSystem | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | False | ||
Instance Name | Memory | ||
Counter Name | \% Committed Bytes In Use | ||
Frequency | 120 | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | System.Performance.ConsecutiveSamplesThreshold | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.Windows.Server.10.0.OperatingSystem.PercentCommittedBytesInUse" Accessibility="Public" Enabled="false" Target="ServervNext!Microsoft.Windows.Server.10.0.OperatingSystem" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="SystemPerf!System.Performance.ConsecutiveSamplesThreshold" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.Windows.Server.10.0.OperatingSystem.PercentCommittedBytesInUse.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters/>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UnderThreshold" MonitorTypeStateID="ConditionFalse" HealthState="Success"/>
<OperationalState ID="OverThreshold" MonitorTypeStateID="ConditionTrue" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>% Committed Bytes In Use</CounterName>
<ObjectName>Memory</ObjectName>
<InstanceName/>
<Frequency>120</Frequency>
<Threshold>80</Threshold>
<Direction>greater</Direction>
<NumSamples>3</NumSamples>
</Configuration>
</UnitMonitor>