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 时间百分比 (%) 持续较高,则可能存在处理器瓶颈或者与应用程序或硬件相关的问题,该问题可能导致总体系统性能显著降低。

此监视器阈值是按照轮询过程中返回给代理的平均值分析的,其中“样本数”参数控制平均值计算中所包含的样本数。代理返回的值是按 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 Time Percentage 太高
已超过 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>