Memory Pages Per Second

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

Monitor the performance counter Memory\MemoryPagesPerSecond

Knowledge Base article:

Summary

The rate at which the system is paging memory to and/or from disk is too high. This monitoring is based on the “Memory\Pages/sec” counter, which is a primary indicator of the kinds of faults that cause system-wide delays. Overall system performance may significantly diminish.

Pages/sec is the rate at which pages are read from or written to disk to resolve hard page faults.

Causes

One or more applications are using memory heavily, and the system is having to page data to and from disk to meet the demand.

Resolutions

To identify which processes are driving up the overall memory utilization on the system, and the paging rates use the following counters from the “Process” object in performance monitor:

Based on the findings from further investigation resolutions will vary and could include one of the following:

Element properties:

TargetMicrosoft.Windows.Server.10.0.OperatingSystem
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Instance NameMemory
Counter NamePages/Sec
Frequency300
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeSystem.Performance.ConsecutiveSamplesThreshold
RemotableTrue
AccessibilityPublic
Alert Message
Memory Pages Per Second is too High.
The threshold for the Memory\Pages\sec performance counter has been exceeded.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.Server.10.0.OperatingSystem.MemoryPagesPerSecond" Accessibility="Public" Enabled="true" 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.MemoryPagesPerSecond.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters/>
</AlertSettings>
<OperationalStates>
<OperationalState ID="OverThreshold" MonitorTypeStateID="ConditionTrue" HealthState="Warning"/>
<OperationalState ID="UnderThreshold" MonitorTypeStateID="ConditionFalse" HealthState="Success"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>Pages/Sec</CounterName>
<ObjectName>Memory</ObjectName>
<InstanceName/>
<Frequency>300</Frequency>
<Threshold>5000</Threshold>
<Direction>greaterequal</Direction>
<NumSamples>12</NumSamples>
</Configuration>
</UnitMonitor>