プロセッサの DPC 時間の合計割合

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

SUSE Linux Enterprise Server 15 プロセッサの DPC 時間の合計割合モニター

Knowledge Base article:

概要

(1 つのプロセッサの) DPC 時間の割合が高くなっています。システムのパフォーマンスに悪影響を与える可能性があります。

プロセッサの DPC 時間は、1 つのプロセッサが遅延プロシージャ呼び出し (DPC) を受け取って処理するために使用した時間です。DPC は、通常の割り込みより低い優先度で実行される割り込みです。DPC は特権モードで実行されるので、% DPC Time は % Privileged Time のコンポーネントになっています。高い % DPC Time 値が継続する場合は、プロセッサがボトルネックになっているか、アプリケーションまたはハードウェアに関連する問題によって、全体的なシステム パフォーマンスが大きく低下している可能性があります。

モニターのしきい値は、エージェントへのポーリングで返された値の平均値を基準として分析されます。ここで [サンプル数] パラメーターは、平均値の計算に使用されるサンプルの数を制御します。エージェントによって返される値は、1 分間隔で照会された最新の 5 つの値のローリング平均値です。

構成

個々のディスクの監視は、既定では無効になっています。監視を有効にするには、[SUSE Linux Enterprise Server 15 プロセッサの検出] というオブジェクト検出を有効にします。

既定の構成

パラメーター

既定値

しきい値

15

間隔 (秒)

300

サンプル数

3

上記で定義されたパラメーター値は、上書きにより、すべてのインスタンスまたは特定のインスタンスやグループに対して変更できます。

原因

高い % DPC Time 値は、次の 1 つまたは複数の原因によって引き起こされることがあります。

解決方法

DPC Time 値が高い場合の根本原因を特定するには、次の手順に従います。割り込みと 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.15.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.15.Processor.PercentDPCTime.Monitor" Accessibility="Public" Target="Microsoft.Linux.SLES.15.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.15.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>