エージェントのプロセッサ使用率

Microsoft.SystemCenter.HealthService.SCOMpercentageCPUTimeMonitor (UnitMonitor)

大量のプロセッサ時間を使用しているエージェントによって発生する可能性のある問題を見つけるために、エージェントのすべてのプロセスを監視します。

Knowledge Base article:

概要

このモニターは、Operations Manager エージェント、およびその関連プロセスの CPU 使用率の合計を計算し、指定された数の連続サンプルの CPU 使用率が指定されたしきい値を超えた場合にアラートを生成します。

このモニターの基礎となっているスクリプトは、Operations Manager エージェントのプロセス (HealthService.exe)、その子のホスト監視プロセス (MonitoringHost.exe)、およびこのホスト監視プロセスの子プロセス (cscript.exe や PowerShell.exe など) を見つけ、CPU 使用率をサンプリングします。計算は 3 回行われ、3 つの連続するサンプルの平均が出力されます。この出力は、このモニターの状態が "重大" か "正常" であるかを判別するために使用されます。

構成

このモニターの既定の動作を変更するには、上書きを使用して、次のパラメーターをカスタマイズします。

このモニターは、既定で、すべての管理サーバーで無効になっています。

原因

Operations Manager エージェントのさまざまなプロセスの CPU 使用率が高い場合は、エージェント、またはそれに依存しているコンポーネントが正しく機能していない可能性があります。エージェント、およびそれに依存しているコンポーネントが正しく更新されている場合は、監視されているシステムにあるエージェントが過剰に使用されています。これは、管理グループを更新して間もない (新しい管理パックを展開した場合など) ときに一時的に発生することがあります。ただし、エージェントが実際に過負荷になっていることもあり、この場合は調整が必要になります。

解決方法

エージェント、およびそれに依存しているコンポーネントが正しく機能していることを確認するには、次の手順に従います。

これらの構成を確認しても状況が変わらない場合は、CPU 使用率が高い原因を詳しく調査する必要があります。このためには、次の操作の 1 つまたは複数を行います。

問題の原因を突き止めたら、次の 1 つまたは複数の操作を行って問題を解決します。

上記の方法をすべて試しても問題が解決しない場合は、 Microsoft カスタマー サポート (http://support.microsoft.com/) に問い合わせてください。

追加情報

このモニターには、"エージェントのプロセッサ使用率の診断データの収集" という関連する診断タスクがあります。このタスクは、CPU 使用率のサンプリングを再実行します。この診断タスクは、既定で無効になっています。

また、オペレーション コンソールにも、CPU 使用率のサンプリングを再実行する "エージェントのプロセッサ使用率の取得" というタスクがあります。"エージェントのプロセッサ使用率の取得" タスクを実行するときは、タイムアウトとサンプル数のパラメーターを設定します。このタスクは、結果のテーブルを返します。エージェントのプロセッサ使用率の取得タスクの実行

Element properties:

TargetMicrosoft.SystemCenter.HealthService
Parent MonitorMicrosoft.SystemCenter.HealthService.PerformanceHealthRollup
CategoryCustom
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SystemCenter.HealthService.SCOMpercentageCPUTimeCounterMonitorType
RemotableFalse
AccessibilityPublic
Alert Message
Operations Manager エージェントのプロセスが、プロセッサ時間を大量に消費しています。
複数のサンプルで、コンピューター {0} でエージェントの全プロセスの合計プロセッサ使用率がしきい値 {1} を超えています。
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.HealthService.SCOMpercentageCPUTimeMonitor" Accessibility="Public" Enabled="onEssentialMonitoring" Target="SCLibrary!Microsoft.SystemCenter.HealthService" ParentMonitorID="Microsoft.SystemCenter.HealthService.PerformanceHealthRollup" Remotable="false" Priority="Normal" TypeID="Microsoft.SystemCenter.HealthService.SCOMpercentageCPUTimeCounterMonitorType" ConfirmDelivery="true">
<Category>Custom</Category>
<AlertSettings AlertMessage="Microsoft.SystemCenter.HealthService.SCOMpercentageCPUTimeMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</AlertParameter1>
<AlertParameter2>$Data/Context/SampleValue$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="CPUTimeOverThreshold" MonitorTypeStateID="OverThreshold" HealthState="Error"/>
<OperationalState ID="CPUTimeUnderThreshold" MonitorTypeStateID="UnderThreshold" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>321</IntervalSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<SyncTime>00:00</SyncTime>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</ComputerName>
<Threshold>25</Threshold>
<ConsecutiveSampleCountCritical>6</ConsecutiveSampleCountCritical>
<ConsecutiveSampleCountHealthy>3</ConsecutiveSampleCountHealthy>
</Configuration>
</UnitMonitor>