Total Percent Processor DPC Time

Microsoft.Linux.SLES.9.Processor.PercentDPCTime.Monitor (UnitMonitor)

SUSE Linux Enterprise Server 9 Total Percent Processor DPC Time 監視

Knowledge Base article:

摘要

DPC 時間的百分比 (適用於單一處理器) 偏高。 可能會對系統效能造成負面影響。

處理器 DPC 時間即是單一處理器花在接收和服務延遲程序呼叫 (DPC) 的時間。 DPC 是一種插斷,它的執行優先順序比標準插斷低。 % DPC Time 是 % Privileged Time 的元件,因為 DPC 是以特殊權限模式執行。 如果 [% DPC Time] 持續偏高,表示可能發生處理器瓶頸,或者發生可能致使整體系統效能顯著降低的應用程式或硬體相關問題。

監視閾值是針對輪詢代理程式時傳回的平均值進行分析,其中 [範例數] 參數用於控制平均計算中所含的範例數。 代理程式傳回的值是在 1 分鐘的間隔內查詢的 5 個最新值的彙總平均。

設定

預設會停用個別處理器的監視。 若要啟用監視,可啟用名為 [探索 SUSE Linux Enterprise Server 9 處理序] 的物件探索。

預設設定

參數

預設值

閾值

15

間隔時間 (秒)

300

範例數

3

您可以使用覆寫,針對所有執行個體或特定執行個體或群組來變更上述定義的參數值。

原因

發生 DPC 時間值偏高的情況可能是由下列一個或多個原因造成:

解決方式

若要確定發生 DPC 時間偏高情況的根本原因,請執行下列程序。 觀察花費在處理插斷與 DPC 的處理器時間比例。 若要這樣做,請監視下列標準:

將 [% Interrupt Time] 及 [% DPC Time] 標準的值,與每個處理器執行個體的 [% Processor Time] 進行比較。

如果 % Processor Time 持續 > 85% 且 % Interrupt Time 或 % DPC Time > 15%,表示處理器可能是造成效能瓶頸的來源。 您可以升級電腦或在電腦上新增處理器來解決此瓶頸。

如果 % Processor Time 持續 < 85% 且 % Interrupt Time 或 Total % DPC Time > 15%,表示可能是因為與應用程式或硬體有關的問題造成效能問題。

Element properties:

TargetMicrosoft.Linux.SLES.9.Processor
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Unix.WSMan.Performance.Filtered.Average.Threshold.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
DPC 時間百分比過高
[Processor\\% DPC Time\] 效能計數器已超過閾值。 以下的值已超過閾值: {0}.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Linux.SLES.9.Processor.PercentDPCTime.Monitor" Accessibility="Public" Target="Microsoft.Linux.SLES.9.Processor" TypeID="Unix!Microsoft.Unix.WSMan.Performance.Filtered.Average.Threshold.MonitorType" Enabled="true" ParentMonitorID="SystemHealth!System.Health.PerformanceState">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.Linux.SLES.9.Processor.PercentDPCTime.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Value$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState HealthState="Success" MonitorTypeStateID="UnderThreshold" ID="UnderThreshold"/>
<OperationalState HealthState="Error" MonitorTypeStateID="OverThreshold" ID="OverThreshold"/>
</OperationalStates>
<Configuration>
<TargetSystem>$Target/Host/Property[Type="Unix!Microsoft.Unix.Computer"]/NetworkName$</TargetSystem>
<Uri>http://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/SCX_ProcessorStatisticalInformation?__cimnamespace=root/scx</Uri>
<Filter/>
<SplitItems>true</SplitItems>
<Interval>300</Interval>
<ObjectName>Processor</ObjectName>
<CounterName>% Interrupt Time</CounterName>
<InstanceName>$Target/Property[Type="Unix!Microsoft.Unix.Processor"]/PerfmonInstance$</InstanceName>
<InstanceProperty>/DataItem/WsManData/*[local-name(.)='SCX_ProcessorStatisticalInformation']/*[local-name(.)='Name']</InstanceProperty>
<Value>$Data/WsManData/*[local-name(.)='SCX_ProcessorStatisticalInformation']/*[local-name(.)='PercentDPCTime']$</Value>
<Threshold>15</Threshold>
<NumSamples>3</NumSamples>
</Configuration>
</UnitMonitor>