Agentens processorutnyttjande

Microsoft.SystemCenter.HealthService.SCOMpercentageCPUTimeMonitor (UnitMonitor)

Övervaka alla agentprocesser för att identifiera problem med att agenten förbrukar för mycket processortid.

Knowledge Base article:

Sammanfattning

Den här övervakaren beräknar den totala CPU-belastningen för Operations Managers agent och dess tillhörande processer och genererar en avisering när CPU-belastningen överskrider ett angivet tröskelvärde för ett visst antal beräkningar.

Övervakarens underliggande skript hittar och samlar in CPU-belastningen för Operations Managers agentprocess (HealthService.exe), och dess underordnade skript övervakar värdprocess (MonitoringHost.exe) samt de underordnade processerna till dessa övervakande värdprocesser (cscript.exe, PowerShell.exe, etc.). Skriptet kör beräkningen tre gånger och anger medelvärdet av de tre på varandra följande beräkningarna, som sedan används av den här övervakaren för att avgöra om tillståndet är kritiskt eller felfritt.

Konfiguration

Du kan med hjälp av åsidosättningar anpassa följande parametrar för att ändra övervakarens standardbeteende:

Den här övervakaren är som standard inaktiverad för alla hanteringsservrar.

Orsaker

Alltför hög CPU-belastning av de olika agentprocesserna i Operations Manager kan ange att agenten eller en av dess underliggande beroenden inte fungerar korrekt. Om agenten och dess underliggande beroenden är korrekt uppdaterade överanvänds agenten i det övervakade systemet. Det kan vara kortvarigt och bero på en nyligen genomförd uppdatering i hanteringsgruppen, till exempel ett nytt hanteringspaket, eller också kan det bero på att agenten verkligen används för mycket. I så fall kan finjustering krävas.

Lösningar

Gör följande för att kontrollera att agenten och dess underliggande beroenden fungerar korrekt:

Om tillståndet är detsamma efter att dessa konfigurationer har kontrollerats krävs en mer ingående undersökning för att förstå vad som påverkar CPU-belastningen. Fortsätt undersökningen med hjälp av dessa steg:

När orsaken eller orsakerna är identifierade kan något av följande steg vidtas för att åtgärda problemet:

Om stegen ovan inte leder till en lösning kan du kontakta Microsofts kundservice och support (http://support.microsoft.com/).

Mer information

Den här övervakaren har en relaterad diagnostikuppgift, “Samla in diagnostik om agentprocessorbelastning” som kör beräkningarna av CPU-belastning på nytt. Diagnostikuppgiften är som standard inaktiverad.

Det finns också en uppgift i driftkonsolen, “Ta fram agentprocessorbelastningen”, som kör beräkningarna av CPU-belastning på nytt. När du kör uppgiften ”Ta fram agentprocessorbelastningen” kan du ställa in parametrarna för tidsgräns och antal beräkningar. Uppgiften returnerar en resultattabell. Kör uppgiften Ta fram agentprocessorbelastningen

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
Operations Manager-agentprocesserna förbrukar för mycket processortid
Den totala processorbelastningen för alla agentprocesser på datorn {0} överskrider tröskelvärdet {1} vid flera insamlingar.
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/>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</ComputerName>
<Threshold>25</Threshold>
<ConsecutiveSampleCountCritical>6</ConsecutiveSampleCountCritical>
<ConsecutiveSampleCountHealthy>3</ConsecutiveSampleCountHealthy>
</Configuration>
</UnitMonitor>