Universal Linux Processor Percent Processor Time Monitor
The percentage of processor time (for a single processor) is high. System performance may be adversely affected.
Processor time is the time that a single processor spent running a non-idle thread. Each processor has an idle thread that consumes cycles when no other threads are ready to run. This metric is the primary indicator of processor activity, and displays the average percentage of busy time observed.
The monitor threshold is analyzed against an average of values returned in polls to the agent, where the Number of Samples parameter controls the number of samples included in the calculation of the average. The value returned by the agent is the rolling average of the 5 most recent values queried at 1 minute intervals.
Monitoring of individual processors is disabled by default. Enable monitoring by enabling the object discovery named 'Discover Universal Linux Processor.'
Default Configuration
Parameter | Default Value |
Threshold | 95 |
Interval (seconds) | 300 |
Number of Samples | 3 |
Overrides can be used to change the parameter values defined above for all instances or for specific instances or groups.
An unhealthy state indicates that the processor utilization is currently high. This may be caused by an application using excessive processor resources.
To address high processor time conditions choose one or more of the following options:
Identify processes that are running when the processor time is at the highest. Execute the "top" command or execute "Top 10 CPU Processes" Task from the State View. This task provides a listing of the top CPU consuming processes ordered by CPU usage.
Stop or kill any unnecessary identified processes.
Add processors or physical memory to the computer.
Move applications to one or more additional servers.
Target | Microsoft.Linux.Universal.Processor | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.Unix.WSMan.Performance.Filtered.Average.Threshold.MonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.Linux.Universal.Processor.PercentProcessorTime.Monitor" Accessibility="Public" Target="Universal!Microsoft.Linux.Universal.Processor" TypeID="Unix!Microsoft.Unix.WSMan.Performance.Filtered.Average.Threshold.MonitorType" Enabled="true" ParentMonitorID="SystemHealth!System.Health.PerformanceState">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.Linux.Universal.Processor.PercentProcessorTime.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/SCX_ProcessorStatisticalInformation?__cimnamespace=root/scx</Uri>
<Filter/>
<SplitItems>true</SplitItems>
<Interval>300</Interval>
<ObjectName>Processor</ObjectName>
<CounterName>% Processor Time</CounterName>
<InstanceName>$Target/Property[Type="Unix!Microsoft.Unix.Processor"]/PerfmonInstance$</InstanceName>
<InstanceProperty>/DataItem/WsManData/*[local-name(.)='SCX_ProcessorStatisticalInformation']/*[local-name(.)='Name']</InstanceProperty>
<Value>$Data/WsManData/*[local-name(.)='SCX_ProcessorStatisticalInformation']/*[local-name(.)='PercentProcessorTime']$</Value>
<Threshold>95</Threshold>
<NumSamples>3</NumSamples>
</Configuration>
</UnitMonitor>