Performance Threshold: Memory < 50 MB

Performance_Threshold__Memory__50_MB_1_Rule.AdvancedAlertCriteriaMonitor (UnitMonitor)

Knowledge Base article:

Management Pack
Summary

This alert is generated in MOM when the memory that is available to processes running on the specified Data Protection Manager (DPM) server falls below 50 megabytes. This could indicate a memory shortage that is affecting the performance of the DPM server.

Available memory is measured by sampling the Memory/Available MBytes performance counter once every 15 minutes. The Available MBytes value is the sum of memory assigned to the standby (cached), free, and zero paged lists.

The repeat count for this alert is incremented for each successive interval during which memory remains below the 50 MB threshold. When more than 50 MB of memory again becomes available, the alert becomes inactive.

Low memory conditions can slow the operation of applications and services on a computer and have an impact on the performance of other resources. For example, when the computer is low on memory, paging can be prolonged, resulting in more work for the disks; this, in turn, can affect the load on the processor.

 
Causes

Possible causes of low memory on a DPM server include:

  • One or more applications are consuming large amounts of memory.
  • Multiple DPM jobs are running simultaneously.
  • The DPM server does not have sufficient memory to handle the current DPM workload.
 
Resolutions

If the performance of the DPM server is unacceptably slow, and you determine that a shortage of memory is a contributing factor, perform the following steps to isolate and resolve the memory shortage.

To get more information about a memory shortage

  • On the DPM server, use Task Manager to determine which processes are consuming the most memory. (On the Processes tab, review memory usage.) If those processes do not return to their normal performance ranges, you may need to perform additional, application-specific diagnostics to identify the cause.

    In DPM, three processes are of interest:

    • DPM File Agent (MsDpmFsAgent.exe)
    • DPM service (MsDpm.exe)
    • DPM Administrator Console (an instance of Mmc.exe)

    DPM jobs affect the amount of memory that the DPM File Agent uses. DPM Administrator Console also can be a significant factor in high memory usage.

    Note that memory usage for the DPM instance of the SQL Server™ service (Sqlservr.exe) is expected to be comparatively high. (The DPM instance has the user name Microsoft$DPM$Acct.) This does not indicate a problem. The service normally uses a large amount of memory for caching, but releases memory when available memory is low.

To resolve the immediate problem

  1. Close DPM Administrator Console.
  2. You may want to consider canceling some non-critical DPM jobs and running them later, when more memory is available. Do this with care: canceling a protection job can compromise data protection. For more information, see "How to cancel a job" in DPM Help at http://go.microsoft.com/fwlink/?linkid=46350.
  3. Stop and restart the DPM service and the SQL Server service. In Administrative Tools, open Services, and then restart the services by performing the following steps:
    1. Stop the DPM service if it is running. (The service stops automatically when not in use.)
    2. Stop the SQL Server service (MSSQL$Microsoft$DPM$).
    3. Start the SQL Server service (MSSQL$Microsoft$DPM$).
    4. The DPM service will start automatically the next time that it is needed.

To resolve a long-term memory shortages related to DPM jobs

  1. Modify protection schedules for protection groups in order to stagger protection jobs. Consider offsetting some synchronization jobs from the beginning of the hour. For more information, see "How to modify protection schedules" in DPM Help at http://go.microsoft.com/fwlink/?linkid=46350.
  2. If high memory usage associated with DPM jobs continues to be a factor in degraded performance, consider either adding memory or offloading some of the protection workload to another DPM server. For information about memory requirements for a DPM server, see the " Planning a Deployment" chapter in the Microsoft® System Center Data Protection Manager 2006 Planning and Deployment Guide at http://go.microsoft.com/fwlink/?LinkId=46355.
 
External Knowledge Sources
  • For information about monitoring and resolving memory bottlenecks, in addition to other factors in the performance of a computer running the Microsoft® Windows Server™ 2003 operating system, see "Solving performance problems" in Help and Support for Windows Server 2003.
  • For information about managing memory on a Windows Server 2003-based server, see "Managing your computer’s performance" in Help and Support for Windows Server 2003.
  • For information about evaluating memory shortages on a server that is running a Windows operating system, see " Evaluating Memory and Cache Usage" in the Microsoft® Windows® 2000 Server Resource Kit at http://go.microsoft.com/fwlink/?LinkId=46484.
  • For information about performance counters that are available for monitoring memory usage in the Windows operating system, see " Memory Object" in the Microsoft® Windows 2000® Performance Counters Reference at http://go.microsoft.com/fwlink/?LinkId=27751.
 
© 2000-2004 Microsoft Corporation, all rights reserved.

Element properties:

TargetMicrosoft.SystemCenter.DPM.DPM_Class
Parent MonitorPerformance
CategoryStateCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeSystem.Mom.BackwardCompatibility.PerformanceThreshold.TwoStateMonitorType
RemotableTrue
AccessibilityInternal
Alert Message
Performance Threshold: Memory < 50 MB
{1}
RunAsDefault
CommentMom2005ID='{26B2E0D9-3FBD-44F2-86ED-AE5817681272}'

Source Code:

<UnitMonitor ID="Performance_Threshold__Memory__50_MB_1_Rule.AdvancedAlertCriteriaMonitor" TypeID="MomBackwardCompatibility!System.Mom.BackwardCompatibility.PerformanceThreshold.TwoStateMonitorType" Accessibility="Internal" Target="Microsoft.SystemCenter.DPM.DPM_Class" Enabled="true" ParentMonitorID="Performance" Comment="Mom2005ID='{26B2E0D9-3FBD-44F2-86ED-AE5817681272}'">
<Category>StateCollection</Category>
<AlertSettings AlertMessage="Performance_Threshold__Memory__50_MB_1_Rule.AdvancedAlertCriteriaMonitor.StringResource">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Name$</AlertParameter1>
<AlertParameter2>$Data/Context/Description$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState HealthState="Warning" MonitorTypeStateID="ConditionTrue" ID="AlertConditionTrue"/>
<OperationalState HealthState="Success" MonitorTypeStateID="ConditionFalse" ID="AlertConditionFalse"/>
</OperationalStates>
<Configuration>
<ServerRole>DPM</ServerRole>
<Component>Performance</Component>
<ServerRoleInstance>$Target/Property[Type="Microsoft.SystemCenter.DPM.DPM_Class"]/Name$</ServerRoleInstance>
<RuleId>$MPElement[Name="Performance_Threshold__Memory__50_MB_1_Rule"]$</RuleId>
<Threshold>50</Threshold>
<Operator>Less</Operator>
</Configuration>
</UnitMonitor>