Restarts the Health service when the Monitoring Host process exceeds the Process\Private Bytes threshold.
This rule is disabled by default because it has been replaced by a monitor.
This rule measures the Process\Private Bytes utilization for all instances of the MonitoringHost.exe process. If it exceeds the configured threshold, an alert is generated.
There are different thresholds depending on the role that System Center Management Health Service configured to perform. The following summarizes the default thresholds:
System Center Management Health Service Role | Private Bytes Threshold |
Agent | 100 MB |
Management Server | 1,500 MB |
Below is the configuration for the response that attempts to restart the System Center Management Health Service:
System Center Management Health Service Role | Restart Response Behavior |
Agent | Enabled |
Management Server | No restart response |
A brief summary of potential causes are:
Too many rules and monitors are loaded from all the management packs this System Center Management Health Service has been configured with. |
A misconfigured rule or monitor collecting too much data or processing too much data (e.g. performance counter collection rule collecting data every 1 second) |
This can be caused by the System Center Management Health Service running many management packs. Each Management Pack may have a lot of monitoring that uses a small amount of resources. With many management packs that add up to many thousands of rules and monitors, each MonitoringHost.exe instance may start consuming more resources.
This may be expected for this System Center Management Health Service depending on the type of monitoring the System Center Management Health Service is performing.
Another cause could be one or more rules and monitors that are not conforming to some best practices. An example is a performance counter rule that attempts to collect performance data every 1 second. Too many rules or monitors configured this way will cause the monitoring host.exe process to consume more resources.
The default action for this rule running on Management Servers is to alert.
If you feel that the resource utilization is appropriate for the amount of monitoring being performed by this agent, you can override the threshold or disable the recovery.
If the System Center Management Health Service and its associated MonitoringHost.exe process are still consuming too many resources, you can restart the System Center Management Health Service windows service to mitigate this problem.
Target | Microsoft.SystemCenter.ManagementServer | ||
Category | Maintenance | ||
Enabled | False | ||
Instance Name | Process | ||
Counter Name | Private Bytes | ||
Frequency | 120 | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
|
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DataSource | DataSource | System.Performance.DataProvider | Default |
CDAveragerThreshold | ConditionDetection | System.Performance.AverageThresholdCondition | Default |
Alert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SystemCenter.ManagementServer.MonitoringHost.PrivateBytesThreshold" Enabled="false" Target="SCLibrary!Microsoft.SystemCenter.ManagementServer" ConfirmDelivery="false" Remotable="true" Priority="High" DiscardLevel="100">
<Category>Maintenance</Category>
<DataSources>
<DataSource ID="DataSource" TypeID="Performance!System.Performance.DataProvider">
<CounterName>Private Bytes</CounterName>
<ObjectName>Process</ObjectName>
<InstanceName>MonitoringHost*</InstanceName>
<Frequency>120</Frequency>
</DataSource>
</DataSources>
<ConditionDetection ID="CDAveragerThreshold" TypeID="Performance!System.Performance.AverageThresholdCondition">
<NumSamples>5</NumSamples>
<Threshold>1610612736</Threshold>
<Operator>Greater</Operator>
</ConditionDetection>
<WriteActions>
<WriteAction ID="Alert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertName/>
<AlertDescription/>
<AlertOwner/>
<AlertMessageId>$MPElement[Name="Microsoft.SystemCenter.ManagementServer.MonitoringHost.PrivateBytesThreshold.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/InstanceName$</AlertParameter1>
<AlertParameter2>$Data/Value$</AlertParameter2>
</AlertParameters>
<Suppression>
<SuppressionValue>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>