此監視會檢查 MonitoringHost.exe 處理程序的「處理程序\控制碼計數」平均計數器是否超過設定的閾值。當達到此閾值時,系統會自動觸發復原程序,以重新啟動健全狀況服務。
此規則會測量 MonitoringHost.exe 處理程序所有執行個體的 [Process\Handle Count] 使用量。如果它超過設定的閾值,回應會嘗試重新啟動健全狀況服務,確保電腦處理量不再超過負荷。
依據設定健全狀況服務執行的角色,會有多種不同閾值。以下是預設閾值摘要:
健全狀況服務角色 | 控制碼計數閾值 |
代理程式 | 2,000 |
管理伺服器 | 10,000 |
以下是會嘗試重新啟動健全狀況服務的回應之設定:
健全狀況服務角色 | 重新啟動回應行為 |
代理程式 | 已啟用 |
管理伺服器 | 無重新啟動回應 |
可能原因的簡短摘要如下:
從設定此健全狀況服務的所有管理組件載入太多規則與監視。 |
設定錯誤的規則或監視收集太多資料或處理太多資料 (例如效能計數器集合規則會每 1 秒收集一次資料) |
這可能是由執行多個管理組件的健全狀況服務所造成。每個管理組件可能有許多使用少量資源的監視。由於每個 MonitoringHost.exe 執行個體具有總計達數千個規則與監視的多個管理組件,可能會消耗更多資源。
視健全狀況服務所執行的監視類型而定,這是此健全狀況服務可能會發生的狀況。
另一個原因可能是有一個或多個規則與監視不符合某些最佳作法。例如嘗試每 1 秒收集一次效能資料的效能計數器規則。如果如此設定的規則與監視太多,會導致 MonitoringHoste.exe 處理程序消耗更多資源。
代理程式上執行的此規則之預設動作為重新啟動健全狀況服務。因為此復原在代理程式上預設為啟用,使用者不須採取任何動作。
請注意,如果設定此代理程式的動作帳戶沒有正確權限重新啟動服務,健全狀況服務可能無法正確重新啟動。
如果情況如此,請啟動 HealthService Windows 服務。
如果您認為此代理程式執行之監視數量所使用的資源很適當,可以覆寫閾值或停用規則。
Target | Microsoft.SystemCenter.Agent |
Parent Monitor | Microsoft.SystemCenter.HealthService.ServiceStateRollup |
Category | StateCollection |
Enabled | True |
Alert Generate | False |
Alert Auto Resolve | False |
Monitor Type | Microsoft.SystemCenter.Agent.Performance.AveragerThresholdWithSingleSampleSuccessState |
Remotable | False |
Accessibility | Internal |
RunAs | Default |
<UnitMonitor ID="Microsoft.SystemCenter.Agent.MonitoringHost.HandleCountThreshold" Accessibility="Internal" Enabled="true" Target="SCLibrary!Microsoft.SystemCenter.Agent" ParentMonitorID="Microsoft.SystemCenter.HealthService.ServiceStateRollup" Remotable="false" Priority="High" TypeID="Microsoft.SystemCenter.Agent.Performance.AveragerThresholdWithSingleSampleSuccessState" ConfirmDelivery="false">
<Category>StateCollection</Category>
<OperationalStates>
<OperationalState ID="HandleCountUnderThreshold" MonitorTypeStateID="UnderThreshold" HealthState="Success"/>
<OperationalState ID="HandleCountOverThreshold" MonitorTypeStateID="OverThreshold" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ObjectName>Process</ObjectName>
<CounterName>Handle Count</CounterName>
<InstanceName>MonitoringHost*</InstanceName>
<Frequency>120</Frequency>
<NumSamples>5</NumSamples>
<Threshold>2000</Threshold>
</Configuration>
</UnitMonitor>