健全狀況服務私用位元組閾值

Microsoft.SystemCenter.Agent.HealthService.PrivateBytesThreshold (UnitMonitor)

此監視可確保 "HealthService.exe" 處理序的 "HealthService.exe" 計數器在經過一系列的連續取樣後,不會超過所設定的閾值。如果符合條件,此監視將會變更為重大狀態,接著該狀態將彙總至「健全狀況服務狀態」監視。"Health Service State" 監視已設定成要在其狀態為重大時執行復原作業,以自動嘗試重新啟動 System Center 管理健全狀況服務。

Knowledge Base article:

摘要

此單位監視會測量健全狀況服務處理序的 [Process\Private Bytes] 使用率。如果它超過設定的閾值,復原會嘗試重新啟動健全狀況服務,確保電腦處理量不再超過負荷。

依據設定健全狀況服務執行的角色,會有多種不同閾值。以下是預設閾值摘要:

System Center 管理健全狀況服務角色

私用位元組閾值

代理程式

300 MB

管理伺服器

1,500 MB

以下是會嘗試重新啟動 System Center 管理健全狀況服務的復原之設定:

System Center 管理健全狀況服務角色

重新啟動復原行為

代理程式

已啟用

管理伺服器

已停用

原因

可能原因的簡短摘要如下:

從設定此 System Center 管理健全狀況服務的所有管理組件載入太多規則與監視。

設定錯誤的規則或監視收集太多資料或處理太多資料 (例如效能計數器集合規則會每 1 秒收集一次資料)

這可能是由執行多個管理組件的 System Center 管理健全狀況服務所造成。每個管理組件可能有許多使用少量資源的監視。由於 System Center 管理健全狀況服務具有總計達數千個規則與監視的多個管理組件,可能會消耗更多資源。

視 System Center 管理健全狀況服務所執行的監視類型而定,這是此 System Center 管理健全狀況服務可能會發生的狀況。

另一個原因可能是有一個或多個規則與監視不符合某些最佳作法。例如嘗試每 1 秒收集一次效能資料的效能計數器規則。如果如此設定的規則與監視太多,會導致 System Center 管理健全狀況服務及其相關處理程序消耗更多資源。

解決方式

代理程式上執行的此監視之預設動作為重新啟動 System Center 管理健全狀況服務。因為此復原在代理程式上預設為啟用,使用者不須採取任何動作。

如果您仍發現此監視為重大狀態,System Center 管理健全狀況服務可能未正確重新啟動,或設定此代理程式的動作帳戶沒有正確權限重新啟動服務。

如果情況如此,請啟動 HealthService Windows 服務。

知識庫文章 968760 提供的 Hotfix 可解決導致此監視變更為重大狀態的一些問題。請確定已在使用過多記憶體的任何電腦上安裝 知識庫文章 968760 (http://go.microsoft.com/fwlink/?LinkId=196234) 提供的 Hotfix。

Element properties:

TargetMicrosoft.SystemCenter.HealthService
Parent MonitorMicrosoft.SystemCenter.HealthService.ServiceStateRollup
CategoryPerformanceHealth
EnabledTrue
Alert GenerateFalse
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SystemCenter.Agent.Performance.ConsecutiveSamplesThreshold.MonitorType
RemotableTrue
AccessibilityPublic
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.Agent.HealthService.PrivateBytesThreshold" Accessibility="Public" Enabled="true" Target="SCLibrary!Microsoft.SystemCenter.HealthService" ParentMonitorID="Microsoft.SystemCenter.HealthService.ServiceStateRollup" Remotable="true" Priority="Normal" TypeID="Microsoft.SystemCenter.Agent.Performance.ConsecutiveSamplesThreshold.MonitorType" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<OperationalStates>
<OperationalState ID="PrivateBytesUnderThreshold" MonitorTypeStateID="UnderThreshold" HealthState="Success"/>
<OperationalState ID="PrivateBytesOverThreshold" MonitorTypeStateID="OverThreshold" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</ComputerName>
<ObjectName>Process</ObjectName>
<CounterName>Private Bytes</CounterName>
<InstanceName>HealthService</InstanceName>
<AllInstances>false</AllInstances>
<Frequency>120</Frequency>
<NumSamples>5</NumSamples>
<Threshold>314572800</Threshold>
<Direction>greater</Direction>
</Configuration>
</UnitMonitor>