CPU 使用率百分比 (Windows Server 2008 R2)

Microsoft.Windows.Server.2008.R2.Processor.CPUUtilization (UnitMonitor)

監視 Windows Server 2008 R2 作業系統中的 CPU (處理器) 總使用率。

Knowledge Base article:

摘要

系統處理器的 CPU Utilization (Processor Information\% Processor Time) 已超過閾值。 一旦超過閾值,整體系統效能可能會明顯降低,從而導致作業系統與應用程式效能不良。

此監視只適用於 Windows Server 2008 R2 作業系統。

原因

如果電腦在持續一段時間內的負載都相當高,可能是因下列任何狀況所致:

解決方式

若要檢視處理器相關效能計數器的最近歷程,可使用下列檢視:

啟動處理器效能檢視

若要解決此問題,系統管理員可以執行下列工作:

1. 評估伺服器上執行的每個處理程序的 % Processor Utilization 計數器。 您可以使用工作管理員或效能監視嵌入式管理單元來執行這項工作。請先確定哪些處理程序消耗最多資源,然後監視這些處理程序一段時間,以確定它們是否能恢復至正常的效能範圍內。 如果不能,則應執行應用程式特定的診斷,以確定解決問題的最佳方式。

2. 如果確定用戶端負載隨著時間而增加,但電腦已無法再滿足需求時,請執行額外的效能監視程序,以確定基本硬體升級能否讓電腦恢復至最佳的效能範圍內。

3. 如果確定應用程式可能因產品瑕疵而處於狀況不良狀態,則可能需要重新啟動應用程式。 如果問題持續發生,您可能需要連絡應用程式廠商。

Element properties:

TargetMicrosoft.Windows.Server.2008.Processor
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledFalse
Instance NameProcessor Information
Counter Name\% Processor Time
Frequency120
Alert GenerateFalse
Alert Auto ResolveTrue
Monitor TypeSystem.Performance.ConsecutiveSamplesThreshold
RemotableTrue
AccessibilityPublic
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.Server.2008.R2.Processor.CPUUtilization" Accessibility="Public" Enabled="false" Target="Server2008!Microsoft.Windows.Server.2008.Processor" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="SystemPerf!System.Performance.ConsecutiveSamplesThreshold" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<OperationalStates>
<OperationalState ID="OverThreshold" MonitorTypeStateID="ConditionTrue" HealthState="Error"/>
<OperationalState ID="UnderThreshold" MonitorTypeStateID="ConditionFalse" HealthState="Success"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>% Processor Time</CounterName>
<ObjectName>Processor Information</ObjectName>
<InstanceName>$Target/Property[Type="WindowsServer!Microsoft.Windows.Server.Processor"]/PerfmonInstance$</InstanceName>
<Frequency>120</Frequency>
<Threshold>95</Threshold>
<Direction>greaterequal</Direction>
<NumSamples>5</NumSamples>
</Configuration>
</UnitMonitor>