이 모니터는 HealthService.exe 프로세스의 "Process\Handle Count" 카운터가 일련의 연속 샘플 수 이상의 설정된 임계값을 초과하지 않는지 확인합니다. 조건이 충족되면 이 모니터는 위험 상태로 변경한 다음 "Health Service State" 모니터로 롤업합니다. "Health Service State" 모니터는 위험 상태인 경우 복구를 실행하도록 구성되어 있으며 상태 관리 서비스를 자동으로 다시 시작합니다.
이 유닛 모니터는 HealthService.exe 프로세스에 대한 Process\Handle Count 사용량을 측정합니다. 이 사용량이 구성된 임계값을 초과하면 복구는 컴퓨터에 과도한 부하가 걸리지 않도록 상태 관리 서비스를 다시 시작하려고 합니다.
상태 관리 서비스가 수행하도록 구성된 역할에 따라 여러 임계값이 있습니다. 다음은 기본 임계값을 요약한 것입니다.
상태 관리 서비스 역할 | Handle Count 임계값 |
에이전트 | 6,000 |
관리 서버 | 10,000 |
다음은 상태 관리 서비스의 다시 시작을 시도하는 복구 구성입니다.
상태 관리 서비스 역할 | 다시 시작 복구 동작 |
에이전트 | 사용 |
관리 서버 | 사용 안 함 |
다음은 가능한 원인을 간단히 요약한 것입니다.
이 상태 관리 서비스가 구성된 모든 관리 팩에서 너무 많은 규칙 및 모니터가 로드되었습니다. |
규칙 또는 모니터가 잘못 구성되어 너무 많은 데이터를 수집하거나 처리하고 있습니다(예: 성능 카운터 수집 규칙이 1초 간격으로 데이터를 수집하도록 설정됨). |
이 문제는 상태 관리 서비스에서 실행되는 관리 팩이 너무 많아 발생한 것일 수 있습니다. 각 관리 팩에 소량의 리소스를 사용하는 모니터링 작업이 많을 수 있습니다. 많은 관리 팩에서 수많은 규칙 및 모니터를 진행하게 되면서 상태 관리 서비스가 더 많은 리소스를 소비할 수 있습니다.
상태 관리 서비스에서 수행되는 모니터링 유형에 따라 이 상태 관리 서비스에서 이러한 문제가 발생할 수 있습니다.
또 다른 원인으로는 하나 이상의 규칙 및 모니터가 최상의 방식에 부합되지 않을 수도 있습니다. 1초 간격으로 성능 데이터를 수집하려고 하는 성능 카운터 규칙이 한 예가 될 수 있습니다. 이러한 방식으로 구성된 규칙이나 모니터가 너무 많으면 상태 관리 서비스 및 관련 프로세스가 더 많은 리소스를 소비하게 됩니다.
에이전트에서 실행되는 이 모니터는 기본적으로 상태 관리 서비스를 다시 시작합니다. 이 복구는 에이전트에서 기본으로 설정되어 있으므로 사용자 작업이 필요하지 않습니다.
이 모니터가 위험 상태로 계속 표시되면 상태 관리 서비스가 제대로 다시 시작되지 않았거나, 이 에이전트를 구성한 작업 계정에 서비스를 다시 시작할 수 있는 적절한 권한이 없는 것입니다.
이 경우 HealthService Windows 서비스를 시작하십시오.
Target | Microsoft.SystemCenter.HealthService |
Parent Monitor | Microsoft.SystemCenter.HealthService.ServiceStateRollup |
Category | PerformanceHealth |
Enabled | True |
Alert Generate | False |
Alert Auto Resolve | True |
Monitor Type | Microsoft.SystemCenter.Agent.Performance.ConsecutiveSamplesThreshold.MonitorType |
Remotable | True |
Accessibility | Public |
RunAs | Default |
<UnitMonitor ID="Microsoft.SystemCenter.Agent.HealthService.HandleCountThreshold" 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="HandleCountUnderThreshold" MonitorTypeStateID="UnderThreshold" HealthState="Success"/>
<OperationalState ID="HandleCountOverThreshold" MonitorTypeStateID="OverThreshold" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</ComputerName>
<ObjectName>Process</ObjectName>
<CounterName>Handle Count</CounterName>
<InstanceName>HealthService</InstanceName>
<AllInstances>false</AllInstances>
<Frequency>120</Frequency>
<NumSamples>5</NumSamples>
<Threshold>6000</Threshold>
<Direction>greater</Direction>
</Configuration>
</UnitMonitor>