Apache HTTP Server Pct Busy Workers

Microsoft.ApacheHTTPServer.ManagedServer.Unix.PctBusyWorkers.Monitor (UnitMonitor)

Knowledge Base article:

Summary

The percent of the Apache processes that are currently servicing incoming HTTP requests is high. Apache HTTP performance may be adversely affected, and incoming HTTP requests may have to wait for current requests to complete to be serviced.

Causes

An unhealthy state indicates that the percentage of busy workers is currently high. This is likely caused by an excessive number of HTTP requests made on the Apache HTTP Server.

Resolutions

Apache workers handle incoming HTTP requests. Workers that are currently servicing HTTP requests are considered ‘busy’ while workers that are waiting are considered ‘idle’. The Apache process will continue to fork or kill processes until they meet requirements set for the following directives. Consider adjustments to the process configuration with the settings:

Configuration

Default Configuration

Parameter

Default Value

Threshold

80

Number of Samples

3

Overrides can be used to change the parameter values defined above for all instances or for specific instances or groups.

Element properties:

TargetMicrosoft.ApacheHTTPServer.ManagedServer.Unix
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Oss.WSMan.Performance.Average.Filtered.Threshold.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Apache HTTP Server Pct Busy Workers
The current percentage of busy workers ({0}\%) for the Apache HTTP Server is high
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.ApacheHTTPServer.ManagedServer.Unix.PctBusyWorkers.Monitor" Accessibility="Public" Target="Microsoft.ApacheHTTPServer.ManagedServer.Unix" TypeID="Oss!Microsoft.Oss.WSMan.Performance.Average.Filtered.Threshold.MonitorType" ParentMonitorID="Health!System.Health.PerformanceState" Enabled="onStandardMonitoring">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.ApacheHTTPServer.ManagedServer.Unix.PctBusyWorkers.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Value$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState HealthState="Success" MonitorTypeStateID="UnderThreshold" ID="UnderThreshold"/>
<OperationalState HealthState="Error" MonitorTypeStateID="OverThreshold" ID="OverThreshold"/>
</OperationalStates>
<Configuration>
<TargetSystem>$Target/Host/Property[Type="Unix!Microsoft.Unix.Computer"]/NetworkName$</TargetSystem>
<Uri>http://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/Apache_HTTPDServerStatistics?__cimnamespace=root/apache</Uri>
<Filter/>
<SplitItems>true</SplitItems>
<Interval>300</Interval>
<ObjectName>Apache Server</ObjectName>
<CounterName>Percent Busy Workers</CounterName>
<InstanceName>$Target/Property[Type="Microsoft.ApacheHTTPServer.Installation"]/ConfFile$</InstanceName>
<InstanceProperty>/DataItem/WsManData/*[local-name(.)='Apache_HTTPDServerStatistics']/*[local-name(.)='ConfigurationFile']</InstanceProperty>
<Value>$Data/WsManData/*[local-name(.)='Apache_HTTPDServerStatistics']/*[local-name(.)='PctBusyWorkers']$</Value>
<Threshold>80</Threshold>
<NumSamples>3</NumSamples>
</Configuration>
</UnitMonitor>