Utilización del procesador de los agentes

Microsoft.SystemCenter.HealthService.SCOMpercentageCPUTimeMonitor (UnitMonitor)

Supervisa todos los procesos de agente para identificar problemas potenciales en los que el agente usa demasiado tiempo de procesador.

Knowledge Base article:

Resumen

Este monitor calcula el uso de CPU total del agente de Operations Manager y sus procesos relacionados y genera una alerta cuando el uso de CPU supera un umbral específico para un número determinado de muestras consecutivas.

La secuencia de comandos subyacente del monitor funciona localizando y realizando un muestreo del uso de CPU por parte del proceso de agente de Operations Manager (HealthService.exe), su proceso de host de supervisión secundario (MonitoringHost.exe) y los procesos secundarios de esos procesos de host de supervisión (cscript.exe, PowerShell.exe, etc.). La secuencia de comandos ejecuta el cálculo tres veces obteniendo el promedio de las tres muestras consecutivas, que este monitor usa entonces para determinar el estado crítico o correcto.

Configuración

Puede usar invalidaciones para personalizar los parámetros siguientes y modificar así el comportamiento predeterminado de este monitor:

Este monitor está deshabilitado de forma predeterminada para todos los servidores de administración.

Causas

El uso excesivo de CPU de los distintos procesos de agente de Operations Manager puede indicar que el agente o una de sus dependencias subyacentes no está funcionando correctamente. Si el agente y sus dependencias subyacentes están actualizados correctamente, significa que el agente se está usando por encima de su capacidad en el sistema que se está supervisando. Esta circunstancia puede ser temporal debido a una actualización reciente en el grupo de administración, como la implementación de un nuevo módulo de administración, o a que el agente está sometido verdaderamente a una carga excesiva; en cuyo caso, puede que sea necesario realizar un ajuste.

Soluciones

Para asegurarse de que el agente y sus dependencias subyacentes están funcionando correctamente, compruebe lo siguiente:

Si la condición persiste después de comprobar esas configuraciones, se deberá realizar una investigación más profunda para comprender a qué se debe el uso de CPU. Investigue más a fondo combinando los pasos siguientes como desee:

Una vez identificadas la causa o las causas, cualquiera de los pasos siguientes puede ser válido para solucionar el problema:

Si los pasos anteriores no solucionan el problema, póngase en contacto con el Servicio y soporte técnico de Microsoft (http://support.microsoft.com/).

Adicional

Este monitor tiene una tarea de diagnóstico relacionada, “Recopilar diagnóstico de utilización del procesador de los agentes”, que vuelve a ejecutar el muestreo de uso de CPU. De forma predeterminada, la tarea de diagnóstico está deshabilitada.

Existe también una tarea en la consola del operador, “Obtener la utilización del procesador de los agentes”, que vuelve a ejecutar el muestreo de uso de CPU. Cuando ejecute la tarea “Obtener la utilización del procesador de los agentes”, puede establecer el tiempo de espera y el número de parámetros de muestra. La tarea devuelve una tabla de resultados. Ejecutar la tarea "Obtener la utilización del procesador de los agentes"

Element properties:

TargetMicrosoft.SystemCenter.HealthService
Parent MonitorMicrosoft.SystemCenter.HealthService.PerformanceHealthRollup
CategoryCustom
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SystemCenter.HealthService.SCOMpercentageCPUTimeCounterMonitorType
RemotableFalse
AccessibilityPublic
Alert Message
Los procesos de agente de Operations Manager usan demasiado tiempo de procesador
El uso total de procesador en el equipo {0} de todos los procesos de agente ha superado el umbral de {1} en varias muestras.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.HealthService.SCOMpercentageCPUTimeMonitor" Accessibility="Public" Enabled="onEssentialMonitoring" Target="SCLibrary!Microsoft.SystemCenter.HealthService" ParentMonitorID="Microsoft.SystemCenter.HealthService.PerformanceHealthRollup" Remotable="false" Priority="Normal" TypeID="Microsoft.SystemCenter.HealthService.SCOMpercentageCPUTimeCounterMonitorType" ConfirmDelivery="true">
<Category>Custom</Category>
<AlertSettings AlertMessage="Microsoft.SystemCenter.HealthService.SCOMpercentageCPUTimeMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</AlertParameter1>
<AlertParameter2>$Data/Context/SampleValue$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="CPUTimeOverThreshold" MonitorTypeStateID="OverThreshold" HealthState="Error"/>
<OperationalState ID="CPUTimeUnderThreshold" MonitorTypeStateID="UnderThreshold" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>321</IntervalSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<SyncTime>00:00</SyncTime>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</ComputerName>
<Threshold>25</Threshold>
<ConsecutiveSampleCountCritical>6</ConsecutiveSampleCountCritical>
<ConsecutiveSampleCountHealthy>3</ConsecutiveSampleCountHealthy>
</Configuration>
</UnitMonitor>