代理程式處理器使用率

Microsoft.SystemCenter.HealthService.SCOMpercentageCPUTimeMonitor (UnitMonitor)

監視所有代理程式處理序,以識別代理程式可能佔用太多處理器時間的問題。

Knowledge Base article:

摘要

此監視會計算 Operations Manager 代理程式及其相關處理序的 CPU 總使用率,然後在 CPU 使用率超過指定之連續取樣數的指定閾值時產生警示。

此監視之基礎指令碼運作的方式是尋找及取樣 Operations Manager 代理程式處理序 (HealthService.exe)、其子監視主機處理序 (MonitoringHost.exe) 和這些監視主機處理序的子處理序 (cscript.exe、PowerShell.exe 等) 的 CPU 使用率。 此指令碼會執行三次計算,並輸出三個連續取樣的平均值,供此監視用來判斷重大或狀況良好狀態。

設定

您可以使用覆寫來自訂下列參數,以更改此監視的預設行為:

所有管理伺服器的這個監視都預設為停用。

原因

不同 Operations Manager 代理程式處理序的 CPU 使用率過高,可能表示代理程式或其中一個基礎相依項目無法正常運作。 如果代理程式和它的基礎相依項目已正確更新,則表示代理程式在受監視系統上的使用率過高。 這可能是因為管理群組近期更新 (例如部署新管理組件) 所造成的暫時現象,或者可能是由於代理程式確實負荷過大,後者的情況可能需要進行調整。

解決方式

若要確定代理程式及其基礎相依項目是否正常運作,請檢查下列項目:

如果在確認這些設定後狀況仍然存在,則需要更深入調查,以瞭解造成 CPU 使用率提高的原因。 請使用下列步驟的任何組合來進行深入調查:

在識別出原因之後,您可以採取下列任何一個步驟來解決問題:

如果上述所有步驟都無法解決此問題,請連絡 Microsoft 客戶服務及支援 (http://support.microsoft.com/).。

其他

此監視的相關診斷工作「收集代理程式處理器使用率診斷」會重新執行 CPU 使用率取樣。 預設會停用此診斷工作。

Operations 主控台中也有一項工作 (即「取得代理程式處理器使用率」) 會重新執行 CPU 使用率取樣。 執行「取得代理程式處理器使用率」工作時,您可以設定逾時和樣本數參數。 此工作會傳回結果資料表。 執行「取得代理程式處理器使用率」工作。

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 代理程式處理序佔用太多處理器時間
所有代理程式處理序在電腦 {0} 上的處理器總使用率已超過多個範例的閾值 {1}。
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>