CPU Utilization

ozsoft.sap.Monitor.AppServer.CPU.Utilization (UnitMonitor)

Average usage of the CPU in a host system; the value shows how intensively the CPU is used and how much processing capacity is still available

Knowledge Base article:

Summary

CPU Utilization is often considered to be one of the few Key Indicators that lets to understands how a system is performing and utilized. While high CPU Utilization does not necessarily mean that there is a problem, the situations when the value approaches 100% does indicate that the system (an application server in our case) is saturated and can’t handle more load. In such dynamic environment as SAP this is generally not a good thing as application servers need some spare capacity for system functions etc

Configuration

The best practice indicates that the CPU Utilization of above 97% are problematic. However in some applications, you might consider even the lower value as the threshold to generate the alert.

Causes

There are many reasons for the CPU utilization to spike. Please use standard SAP Tools like SM50 etc to find the root cause of the problem

Resolutions

The resolution will depend on the cause, some of the actions may include changing the load-balancing parameters of the Message Server, switching Operation Mode or provisioning additional application server

Additional

N/A

External

Please refer to SAP Documentations and Notes

Element properties:

Targetozsoft.sap.AppServer
Parent MonitorSystem.Health.PerformanceState
CategoryOperations
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor Typeozsoft.sap.CCMSMetricMonitorType2
RemotableTrue
AccessibilityPublic
Alert Message
App Server CPU Utilization
{0} : {1} has a value {2}
RunAsDefault

Source Code:

<UnitMonitor ID="ozsoft.sap.Monitor.AppServer.CPU.Utilization" Accessibility="Public" Enabled="true" Target="ozsoft.sap.AppServer" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="ozsoft.sap.CCMSMetricMonitorType2" ConfirmDelivery="false">
<Category>Operations</Category>
<AlertSettings AlertMessage="ozsoft.sap.Monitor.AppServer.CPU.Utilization.AlertMessageResourceID">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/ObjectName$</AlertParameter1>
<AlertParameter2>$Data/Context/CounterName$</AlertParameter2>
<AlertParameter3>$Data/Context/Value$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Under" MonitorTypeStateID="SDKMetricUnderLowThreshold" HealthState="Success"/>
<OperationalState ID="Between" MonitorTypeStateID="SDKMetricUnderHighOverLowThreshold" HealthState="Warning"/>
<OperationalState ID="Over" MonitorTypeStateID="SDKMetricOverHighThreshold" HealthState="Error"/>
</OperationalStates>
<Configuration>
<CounterName>CPU_Utilization</CounterName>
<ObjectName>CPU</ObjectName>
<Frequency>60</Frequency>
<HighThreshold>95</HighThreshold>
<LowThreshold>85</LowThreshold>
</Configuration>
</UnitMonitor>