Monitoraggio di tutti i processi dell'agente al fine di individuare possibili problemi se l'agente utilizza troppo tempo processore.
Questo monitoraggio calcola l'utilizzo CPU totale dell'agente Operations Manager e dei relativi processi, quindi genera un avviso nel caso in cui l'utilizzo CPU superi una soglia specificata per un numero specificato di campioni consecutivi.
Lo script sottostante del monitoraggio funziona individuando e campionando l'utilizzo CPU per il processo dell'agente Operations Manager (HealthService.exe), il relativo processo host di monitoraggio (MonitoringHost.exe) e i processi figli di tali processi host di monitoraggio (cscript.exe, PowerShell.exe e così via). Lo script esegue il calcolo tre volte e restituisce la media dei tre campioni consecutivi, la quale verrà utilizzata dal monitoraggio per determinare stati critici o integri.
È possibile utilizzare le sostituzioni per personalizzare i seguenti parametri per modificare il comportamento predefinito di questo monitoraggio.
Frequenza (in secondi). Si tratta della frequenza utilizzata dal monitoraggio per campionare l'utilizzo del processore agente. Per impostazione predefinita, il monitoraggio valuta l'utilizzo del processore agente ogni 300 secondi (5 minuti).
Numero di campioni consecutivi per stato critico. Per impostazione predefinita, questo monitoraggio segnala uno stato critico nel caso in cui 6 campioni consecutivi superino la soglia specificata.
Numero di campioni consecutivi per stato integro. Per impostazione predefinita, questo monitoraggio segnala uno stato integro nel caso in cui 3 campioni consecutivi siano al di sotto della soglia specificata.
Soglia. Per impostazione predefinita, la soglia dell'utilizzo CPU è 25%.
Questo monitoraggio viene disabilitato per impostazione predefinita per tutti i server di gestione.
L'utilizzo eccessivo della CPU dei diversi processi degli agenti di Operations Manager può indicare che l'agente o una delle dipendenze sottostanti non sta funzionando in modo corretto. Se l'agente e le relative dipendenze sottostanti vengono aggiornati in modo corretto, l'agente è in sovraccarico nel sistema oggetto di monitoraggio. Questa condizione potrebbe essere di breve durata, a causa di un aggiornamento recente nel gruppo di gestione, come, ad esempio, la distribuzione di un nuovo Management Pack, oppure potrebbe essere dovuta al fatto che l'agente ha veramente un carico eccessivo, nel qual caso potrebbe essere utile una regolazione.
Per assicurare che l'agente e le dipendenze sottostanti funzionino nel modo corretto, eseguire i seguenti controlli:
Verificare che nel sistema sia installata la versione più recente dell'agente Operations Manager.
Verificare che sia installato l'aggiornamento per MSXML 6.0 fornito nell' articolo 968967 della Knowledge Base all'indirizzo http://go.microsoft.com/fwlink/?LinkId=181885.
Se il sistema operativo del sistema è Windows XP, Windows 2000 Server o Windows Server 2003, assicurarsi che nel sistema sia in esecuzione Windows Script Host 5.7 o versioni successive. Percorsi utili per scaricare Windows Script Host 5.7 sono disponibili al seguente indirizzo http://go.microsoft.com/fwlink/?LinkId=181884.
Se la condizione persiste dopo la verifica delle configurazioni, è necessario eseguire ulteriori ricerche per capire cosa determina l'utilizzo CPU. È possibile eseguire ulteriori analisi utilizzando qualsiasi combinazione dei seguenti passaggi:
Esaminare la cronologia recente dell'utilizzo processore agente, il numero dei flussi di lavoro e il numero dei moduli utilizzando la seguente vista: Vista Prestazioni agente. I dati di utilizzo processore agente indicheranno se il problema è recente o se si verifica da molto tempo. I numeri di moduli e di flussi di lavoro forniranno indicazioni sul carico di lavoro imposto all'agente dai diversi monitoraggi, regole e individuazioni. Tali dati dovrebbero inoltre essere confrontati con agenti integri.
Utilizzare uno strumento, come, ad esempio, lo strumento Effective Configuration Viewer disponibile all'indirizzo http://go.microsoft.com/fwlink/?LinkId=182300, per comprendere il numero di istanze della classe individuate dall'agente. Più istanze della classe possono portare a un numero di moduli e flussi di lavoro maggiore e quindi a un carico di lavoro maggiore.
Usare Monitoraggio prestazioni per raccogliere misurazioni più dettagliate della percentuale del tempo del processore dall'oggetto del processo. In questo modo si otterranno informazioni approfondite sui processi che contribuiscono in modo più significativo all'utilizzo complessivo del processore.
Esaminare eventuali aggiornamenti o modifiche al Management Pack per visualizzare se corrispondono al maggior utilizzo CPU.
Una volta individuate le cause, è possibile eseguire uno dei seguenti passaggi per risolvere il problema:
Se di recente è stata apportata una modifica a un Management Pack o se è stato distribuito un nuovo Management Pack, monitorare la situazione per verificare se il problema continua.
Ridurre la frequenza delle individuazioni tramite sostituzioni per distribuire il relativo utilizzo CPU durante il giorno. In questo modo si arriva all'equilibrio rispetto a un potenziale prolungamento del tempo necessario all'individuazione.
Ridurre la frequenza di regole o monitoraggi eseguiti in base a un piano per distribuire il relativo utilizzo CPU durante il giorno. In questo modo si arriva all'equilibrio del monitoraggio.
Se l'agente è gestito da più gruppi di gestione (una configurazione indicata come "multihomed"), questo contribuirà a un utilizzo processore maggiore. Valutare l'opportunità di ridurre il numero di gruppi di gestione da cui è gestito l'agente.
Se i passaggi sopra riportati non portano a una soluzione, contattare il Servizio Supporto Tecnico Clienti Microsoft all'indirizzo http://support.microsoft.com/.
Questo monitoraggio ha una relativa attività di diagnostica, "Raccolta diagnostica utilizzo processore agente", la quale esegue nuovamente il campionamento dell'utilizzo CPU. Per impostazione predefinita, l'attività di diagnostica è disabilitata.
Nella console operatore è presente inoltre l'attività "Ottenere utilizzo processore agente", la quale esegue nuovamente il campionamento dell'utilizzo CPU. Quando viene eseguita l'attività "Ottenere utilizzo processore agente", è possibile impostare il timeout e il numero dei parametri dei campioni. L'attività restituisce una tabella di risultati. Eseguire l'attività Ottenere utilizzo processore agente
Target | Microsoft.SystemCenter.HealthService | ||
Parent Monitor | Microsoft.SystemCenter.HealthService.PerformanceHealthRollup | ||
Category | Custom | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SystemCenter.HealthService.SCOMpercentageCPUTimeCounterMonitorType | ||
Remotable | False | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<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>