ヘルス サービスのハンドル数のしきい値

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

このモニターは、"HealthService.exe" プロセスの "Process\Handle Count" カウンターが、連続するいくつかのサンプルで、設定済みのしきい値が超えていないかどうかを確認します。しきい値を超えた場合は、このモニターの状態が "重大" に変わり、"ヘルス サービスの状態" モニターにロールアップします。"ヘルス サービスの状態" モニターは、その状態が重大になったときに復元処理を実行するように構成されており、自動的に System Center Management ヘルス サービスを再開しようとします。

Knowledge Base article:

概要

このユニット モニターは、ヘルス サービス プロセスの Process\Handle Count 利用率を測定します。利用率が構成済みのしきい値を超えると、コンピューターが過負荷のままにならないように、復元処理によって System Center Management ヘルス サービスが再開されます。

System Center Management ヘルス サービスで実行するように構成されたロールに応じて、異なるしきい値があります。既定のしきい値の概要を以下に示します。

System Center Management ヘルス サービス ロール

Handle Count のしきい値

エージェント

6,000

管理サーバー

10,000

System Center Management ヘルス サービスの再起動を試行する復元処理の構成を以下に示します。

System Center Management ヘルス サービス ロール

再開の復元動作

エージェント

有効

管理サーバー

無効

原因

考えられる原因の概要:

この System Center Management ヘルス サービスが構成されているすべての管理パックから、過剰なルールおよびモニターがロードされています。

ルールまたはモニターが誤って構成されていることが原因で、過剰なデータ コレクションまたは過剰なデータ処理が実行されています (たとえば、パフォーマンス カウンターの収集ルールにより、1 秒ごとにデータが収集されている)。

System Center Management ヘルス サービスが多数の管理パックを実行していると、この問題が発生する場合があります。各管理パックに、リソースをあまり消費しない監視が多数存在する可能性があります。管理パックの数が増えると、ルールおよびモニターの数が数千になり、System Center Management ヘルス サービスで消費するリソースが増える場合があります。

System Center Management ヘルス サービスが実行している監視の種類によって、この問題が発生する場合があります。

別の原因としては、1 つまたは複数のルールおよびモニターがベスト プラクティスに沿っていないことが考えられます。1 秒ごとにパフォーマンス データを収集するパフォーマンス カウンター ルールなどは、その例です。このように、構成されているルールまたはモニターが多すぎると、System Center Management ヘルス サービスと関連プロセスによって消費されるリソースが増える原因になります。

解決方法

エージェント上で動作するこのモニターの既定の動作では、System Center Management ヘルス サービスが再開されます。この復元はエージェント上で既定で有効になっているので、ユーザーの操作は不要です。

それでもこのモニターの状態が "重大" のままである場合は、System Center Management ヘルス サービスが正しく再開されていないか、このエージェントが構成されているアクション アカウントにサービスを再起動する権限がありません。

この場合は、Windows の System Center Management ヘルス サービスを開始してください。

このモニターの状態が "重大" に変わる原因のいくつかは、サポート技術情報の記事 968760 にある修正プログラムで修正することができます。大量のメモリを使用しているすべてのコンピューターに、 サポート技術情報の記事 968760 (http://go.microsoft.com/fwlink/?LinkId=196234) にある修正プログラムがインストールされていることを確認してください。

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.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>30000</Threshold>
<Direction>greater</Direction>
</Configuration>
</UnitMonitor>