監視所有代理程式處理序,以識別代理程式可能佔用太多處理器時間的問題。
此監視會計算 Operations Manager 代理程式及其相關處理序的 CPU 總使用率,然後在 CPU 使用率超過指定之連續取樣數的指定閾值時產生警示。
此監視之基礎指令碼運作的方式是尋找及取樣 Operations Manager 代理程式處理程序 (HealthService.exe)、其子監視主機處理程序 (MonitoringHost.exe) 和這些監視主機處理程序的子處理程序 (cscript.exe、PowerShell.exe 等) 的 CPU 使用率。 此指令碼會執行三次計算,並輸出三個連續範例的平均值,供此監視用來判斷重大或狀況良好狀態。
您可以使用覆寫來自訂下列參數,以更改此監視的預設行為:
頻率 (秒)。 這是此監視針對代理程式處理器使用率進行取樣的頻率。 根據預設,此監視每隔 300 秒 (5 分鐘) 就會評估代理程式處理器使用率一次。
重大狀態的連續取樣數。 根據預設,當 6 個連續取樣超過指定的閾值時,此監視就會報告重大狀態。
狀況良好狀態的連續取樣數。 根據預設,當 3 個連續取樣低於指定的閾值時,此監視就會傳回狀況良好狀態。
Threshold. By default, the threshold for CPU utilization is 25%.
所有管理伺服器的這個監視都預設為停用。
不同 Operations Manager 代理程式處理序的 CPU 使用率過高,可能表示代理程式或其中一個基礎相依項目無法正常運作。 如果代理程式和它的基礎相依項目已正確更新,則表示代理程式在受監視系統上的使用率過高。 這可能是因為管理群組近期更新 (例如部署新管理組件) 所造成的暫時現象,或者可能是由於代理程式確實負荷過大,後者的情況可能需要進行調整。
若要確定代理程式及其基礎相依項目是否正常運作,請檢查下列項目:
確認系統已安裝 Operations Manager 代理程式的最新版本。
確認已安裝 知識庫文章 968967 (http://go.microsoft.com/fwlink/?LinkId=181885) 中提供的 MSXML 6.0 更新。
如果系統的作業系統是 Windows XP、Windows 2000 Server 或 Windows Server 2003,請確定系統正在執行 Windows Script Host 5.7 或更新版本。 下列連結提供 Windows Script Host 5.7 的下載位置: http://go.microsoft.com/fwlink/?LinkId=181884。
如果在確認這些設定後狀況仍然存在,則需要更深入調查,以瞭解造成 CPU 使用率提高的原因。 請使用下列步驟的任何組合來進行深入調查:
使用下列檢視,檢閱代理程式處理器使用率、工作流程計數和模組計數最近的歷程: 代理程式效能檢視。 代理程式處理器使用率資料可讓您瞭解這個問題是最近才發生,還是已經持續發生一段時間。 工作流程和模組計數資料則可指出各種規則、監視和探索對代理程式造成的工作負載。 這些資料也應該與狀況良好的代理程式比較,以資對照。
使用 Effective Configuration Viewer (http://go.microsoft.com/fwlink/?LinkId=182300) 之類的工具,瞭解在代理程式上探索到的類別執行個體數目。 類別執行個體越多,工作流程和模組計數可能越高,而可能產生更多工作負載。
Using Performance Monitor, collect more detailed % Processor Time measurements from the Process object. This will give insight as to which processes are contributing the most significantly to overall processor utilization.
檢閱最近進行的任何管理組件更新或變更,確定它們是否符合 CPU 使用率增加的狀況。
在識別出原因之後,您可以採取下列任何一個步驟來解決問題:
如果最近曾變更管理組件或部署新的管理組件,請監視情況,確定問題是否持續發生。
透過覆寫來降低探索的頻率,以分散一天的 CPU 使用率。 這樣做的代價是探索作業可能需要較長的時間來執行。
降低依排程執行規則或監視的頻率,以分散一天的 CPU 使用率。 這樣做的代價是需犠牲監視。
如果代理程式受多個管理群組管理 (這種設定稱為「多路連接」),這種情況也會導致處理序使用率變高。請考慮減少管理代理程式的管理群組數目。
如果上述所有步驟都無法解決此問題,請連絡 Microsoft 客戶服務及支援 (http://support.microsoft.com/).。
此監視的相關診斷工作「收集代理程式處理器使用率診斷」會重新執行 CPU 使用率取樣。預設會停用此診斷工作。
Operations 主控台中也有一項工作 (即「取得代理程式處理器使用率」) 會重新執行 CPU 使用率取樣。 執行「取得代理程式處理器使用率」工作時,您可以設定逾時和範例數參數。此工作會傳回結果資料表。執行「取得代理程式處理器使用率」工作。
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>