Windows Server 2008 R2 オペレーティング システムの Processor Information\\% Processor Time\_Total パフォーマンス カウンターと System\Processor Queue Length パフォーマンス カウンターを関連付けることにより、このサーバーの合計 CPU 使用率を監視します。
システム プロセッサの CPU 使用率 (Processor Information\% Processor Time\_Total と System\Processor Queue Length) がしきい値を超えました。しきい値を超えると、システム全体のパフォーマンスが著しく低下する可能性があります。その場合は、オペレーティング システムとアプリケーションのパフォーマンスが低下します。
このモニターは、Windows Server 2008 R2 オペレーティング システムだけで有効です。
Total CPU Utilization 監視ルーチンは、オペレーターが System\Processor Queue と Processor\% Processor Time\_Total パフォーマンス カウンターの両方のしきい値を設定できるなど、高度な構成が可能なソリューションです。 複数のサンプルで連続して、両方のカウンターの値が定義されたしきい値を超えた場合は、そのモニターの状態変更が発生します。 また、しきい値の超過が特定の回数連続してサンプリングされた場合に状態を変更するように構成することも可能です。
Total CPU Utilization 監視ルーチンの既定のしきい値は、次のとおりです。
パラメーター | 既定値 |
CPUQueueLengthThreshold | 15 |
CPUPercentageThreshold | 95 |
NumSamples | 3 |
上記で定義されているしきい値は、上書き操作で変更できます。
持続期間にコンピューターにかかる負荷が大きい場合、次のいずれかの条件によって引き起こされている可能性があります。
コンピューターにインストールされているアプリケーション セットのリソース要件が、コンピューターのハードウェア構成が持つ能力を超えています。
コンピューター リソースへの要求が時間の経過とともに増大したため、コンピューターのハードウェア構成が増大した要求を満たせなくなっています。
コンピューター上で実行中のアプリケーションが異常な状態になった可能性があり、異常な量のシステム リソースを要求しています。
プロセッサ関連のパフォーマンス カウンターの最近の履歴を見るには、次の表示を使用できます。
プロセッサ パフォーマンス ビューの起動
この問題を解決するには、管理者は次のタスクを実行できます。
1. サーバー上で実行されている各プロセッサの % Processor Utilization カウンターを評価します。 これは、[タスク マネージャー] または [パフォーマンス モニター] スナップインを使用して行うことができます。リソースを最も多く消費しているプロセスを特定し、消費リソースが正常なパフォーマンス範囲に戻るかどうかを一定期間にわたってモニターします。 戻らない場合は、アプリケーション固有の診断を行い、問題を解決する最も適切な方法を特定します。
2. クライアントの負荷が時間の経過とともに増大し、コンピューターが単純に要求を処理できなくなったことが原因の場合は、基本的なハードウェアのアップグレードでコンピューターを最適なパフォーマンス範囲に戻すことができるかどうかを判断するために、パフォーマンスの監視手順を実行します。
3. 製品の欠陥などによってアプリケーションが異常な状態になったと判断した場合は、アプリケーションを再起動する必要があります。 問題が解決されない場合は、アプリケーション ベンダーに問い合わせる必要があります。
Target | Microsoft.Windows.Server.2008.R2.OperatingSystem | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.Windows.Server.2008.CPUUtilization.Monitortype | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.Windows.Server.2008.R2.OperatingSystem.TotalCPUUtilization" Accessibility="Public" Enabled="true" Target="Server2008!Microsoft.Windows.Server.2008.R2.OperatingSystem" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.Windows.Server.2008.CPUUtilization.Monitortype" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.Windows.Server.2008.R2.OperatingSystem.TotalCPUUtilization.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='PctUsage']$</AlertParameter1>
<AlertParameter2>$Data/Context/Property[@Name='QueueLength']$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="OverThreshold" MonitorTypeStateID="CPUUtilizationHigh" HealthState="Error"/>
<OperationalState ID="UnderThreshold" MonitorTypeStateID="CPUUtilizationNormal" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>900</IntervalSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<TargetComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</TargetComputerName>
<CPUPercentageThreshold>95</CPUPercentageThreshold>
<CPUQueueLengthThreshold>15</CPUQueueLengthThreshold>
<NumSamples>3</NumSamples>
<CounterName>% Processor Time</CounterName>
<ObjectName>Processor Information</ObjectName>
<InstanceName>_Total</InstanceName>
<AllInstances>false</AllInstances>
</Configuration>
</UnitMonitor>