ホスト監視プロセスが Process\Private Bytes のしきい値を超えたときにヘルス サービスを再開します。
このルールは、モニターによって置き換えられたため、既定で無効になっています。
このルールは、MonitoringHost.exe プロセスすべてのインスタンスの Process\Private Bytes 利用率を測定します。 利用率が構成されたしきい値を超えると、アラートが生成されます。
System Center Management ヘルス サービスで実行するように構成されたロールに応じて、異なるしきい値があります。 既定のしきい値の概要を以下に示します。
System Center Management ヘルス サービス ロール | Private Bytes しきい値 |
エージェント | 100 MB |
管理サーバー | 1,500 MB |
System Center Management ヘルス サービスの再起動を試行する応答の構成を以下に示します。
System Center Management ヘルス サービス ロール | 再開の応答動作 |
エージェント | 有効 |
管理サーバー | 再開の応答なし |
考えられる原因の概要:
この System Center Management ヘルス サービスが構成されているすべての管理パックから、過剰なルールおよびモニターがロードされています。 |
ルールまたはモニターが誤って構成されていることが原因で、過剰なデータ コレクションまたは過剰なデータ処理が実行されています (たとえば、パフォーマンス カウンターの収集ルールにより、1 秒ごとにデータが収集されている)。 |
System Center Management ヘルス サービスが多数の管理パックを実行していると、この問題が発生する場合があります。 各管理パックに、リソースをあまり消費しない監視が多数存在する可能性があります。 管理パックの数が増えると、ルールおよびモニターの数が数千になり、各 MonitoringHost.exe インスタンスで消費するリソースが増える場合があります。
System Center Management ヘルス サービスが実行している監視の種類によって、この問題が発生する場合があります。
別の原因としては、1 つまたは複数のルールおよびモニターがベスト プラクティスに沿っていないことが考えられます。 1 秒ごとにパフォーマンス データを収集するパフォーマンス カウンター ルールなどは、その例です。 このように構成されているルールまたはモニターが多すぎると、monitoring host.exe プロセスで消費されるリソースが増えます。
管理サーバー上で実行されるこのルールの既定のアクションは、アラートを発行することです。
このエージェントによって実行されている監視量に対して、リソースの利用率が妥当であると判断した場合は、しきい値を無効にするか、この修復を無効にしてかまいません。
それでも、System Center Management ヘルス サービスと関連する MonitoringHost.exe プロセスが大量のリソースを使用している場合は、Windows の System Center Management ヘルス サービスをいったん停止して再開してみてください。
Target | Microsoft.SystemCenter.ManagementServer | ||
Category | Maintenance | ||
Enabled | False | ||
Instance Name | Process | ||
Counter Name | Private Bytes | ||
Frequency | 120 | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
|
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DataSource | DataSource | System.Performance.DataProvider | Default |
CDAveragerThreshold | ConditionDetection | System.Performance.AverageThresholdCondition | Default |
Alert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SystemCenter.ManagementServer.MonitoringHost.PrivateBytesThreshold" Enabled="false" Target="SCLibrary!Microsoft.SystemCenter.ManagementServer" ConfirmDelivery="false" Remotable="true" Priority="High" DiscardLevel="100">
<Category>Maintenance</Category>
<DataSources>
<DataSource ID="DataSource" TypeID="Performance!System.Performance.DataProvider">
<CounterName>Private Bytes</CounterName>
<ObjectName>Process</ObjectName>
<InstanceName>MonitoringHost*</InstanceName>
<Frequency>120</Frequency>
</DataSource>
</DataSources>
<ConditionDetection ID="CDAveragerThreshold" TypeID="Performance!System.Performance.AverageThresholdCondition">
<NumSamples>5</NumSamples>
<Threshold>1610612736</Threshold>
<Operator>Greater</Operator>
</ConditionDetection>
<WriteActions>
<WriteAction ID="Alert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertName/>
<AlertDescription/>
<AlertOwner/>
<AlertMessageId>$MPElement[Name="Microsoft.SystemCenter.ManagementServer.MonitoringHost.PrivateBytesThreshold.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/InstanceName$</AlertParameter1>
<AlertParameter2>$Data/Value$</AlertParameter2>
</AlertParameters>
<Suppression>
<SuppressionValue>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>