Health Service Private Bytes Threshold

Microsoft.SystemCenter.Agent.HealthService.PrivateBytesThreshold (UnitMonitor)

This monitor checks if the average Process\Private Bytes counter for the HealthService.exe process exceeds the configured threshold. When this threshold is reached, a Recovery is automatically triggered to restart the Health Service.

Knowledge Base article:

Summary

This unit monitor measures the Process\Private Bytes utilization for the HealthService.exe process. If it exceeds the configured threshold, a recovery attempts to restart the Health Service to ensure it doesn’t continue to overwhelm the computer.

There are different thresholds depending on the role that Health Service configured to perform. The following summarizes the default thresholds:

Health Service Role

Private Bytes Threshold

Agent

100 MB

Management Server

1,500 MB

Below is the configuration for the recovery that attempts to restart the Health Service:

Health Service Role

Restart Recovery Behavior

Agent

Enabled

Management Server

Disabled

Causes

A brief summary of potential causes are:

Too many rules and monitors are loaded from all the management packs this 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 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, the Health Service may start consuming more resources.

This may be expected for this Health Service depending on the type of monitoring the 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 Health Service and it related process to consume more resources.

Resolutions

The default action for this monitor running on agents is to restart the Health Service. Because this recovery is enabled by default on agents, no user action is required.

If you still see this monitor in a critical state, the Health Service may not have restarted correctly or the action account this agent has been configured with does not have the right permissions to restart the service.

If this is the case, start the HealthService windows service.

Element properties:

TargetMicrosoft.SystemCenter.HealthService
Parent MonitorMicrosoft.SystemCenter.HealthService.ServiceStateRollup
CategoryStateCollection
EnabledTrue
Alert GenerateFalse
Alert Auto ResolveFalse
Monitor TypeMicrosoft.SystemCenter.Agent.Performance.AveragerThresholdWithSingleSampleSuccessState
RemotableTrue
AccessibilityInternal
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.Agent.HealthService.PrivateBytesThreshold" Accessibility="Internal" Enabled="true" Target="SCLibrary!Microsoft.SystemCenter.HealthService" ParentMonitorID="Microsoft.SystemCenter.HealthService.ServiceStateRollup" Remotable="true" Priority="Normal" TypeID="Microsoft.SystemCenter.Agent.Performance.AveragerThresholdWithSingleSampleSuccessState" ConfirmDelivery="false">
<Category>StateCollection</Category>
<OperationalStates>
<OperationalState ID="PrivateBytesUnderThreshold" MonitorTypeStateID="UnderThreshold" HealthState="Success"/>
<OperationalState ID="PrivateBytesOverThreshold" MonitorTypeStateID="OverThreshold" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ObjectName>Process</ObjectName>
<CounterName>Private Bytes</CounterName>
<InstanceName>HealthService*</InstanceName>
<Frequency>120</Frequency>
<NumSamples>5</NumSamples>
<Threshold>104857600</Threshold>
</Configuration>
</UnitMonitor>