Operating System Total Percent DPC Time

Microsoft.Linux.SLES.15.OperatingSystem.TotalPercentDPCTime.Monitor (UnitMonitor)

SUSE Linux Enterprise Server 15 Operating System Total Percent DPC Time 모니터

Knowledge Base article:

요약

모든 프로세서의 총 DPC 시간 비율이 높습니다. 시스템 성능이 저하될 수 있습니다.

총 DPC 시간은 모든 프로세서가 DPC(지연된 프로시저 호출)를 수신하고 처리하는 데 보낸 시간입니다. DPC는 표준 인터럽트보다 낮은 우선 순위에서 실행되는 인터럽트입니다. DPC는 특권 모드에서 실행되므로 DPC 시간 비율은 % Privileged Time의 구성 요소입니다. 높은 % DPC Time이 지속되면 전반적인 시스템 성능을 상당히 떨어뜨리는 프로세서 병목이나 애플리케이션 또는 하드웨어 관련 문제가 발생한 것일 수 있습니다.

모니터 임계값은 에이전트에 대한 폴링에 반환된 평균 값에 대해 분석됩니다. 여기서 샘플 수 매개 변수가 평균 계산에 포함된 샘플 수를 제어합니다. 에이전트가 반환한 값은 1분 간격으로 쿼리된 최근 5개 값의 이동 평균입니다.

구성

기본 구성

매개 변수

기본값

임계값

15

간격(초)

300

샘플 수

3

모든 인스턴스나 특정 인스턴스 또는 그룹에 대해 위에서 정의한 매개 변수 값을 변경하는 데 재정의를 사용할 수 있습니다.

원인

높은 DPC 시간 상태의 원인은 다음 중 하나 이상일 수 있습니다.

해결 방법

높은 DPC 시간 상태의 근본 원인을 확인하려면 아래에 요약된 프로세스를 따르세요. 인터럽트와 DPC를 처리하는 데 사용한 프로세서 시간 비율을 관찰하세요. 이렇게 하려면 다음 메트릭을 모니터링하세요.

% Interrupt Time (_Total) 및 % DPC Time (_Total) 메트릭의 값을 % Processor Time (_Total)과 비교합니다.

% Processor Time (_Total)이 지속적으로 85%를 초과하고 % Interrupt Time (_Total) 또는 % DPC Time (_Total)이 15%를 초과하는 경우 이러한 프로세서가 성능 병목 상태의 원인일 수 있습니다. 이 병목 상태는 컴퓨터에서 프로세서를 업그레이드하거나 추가하여 해결할 수 있습니다.

% Processor Time (_Total)이 지속적으로 85% 미만이고 % Interrupt Time (_Total) 또는 Total % DPC Time (_Total)이 15%를 초과하는 경우 성능 문제의 원인은 애플리케이션 또는 하드웨어 관련 문제 때문일 수 있습니다.

Element properties:

TargetMicrosoft.Linux.SLES.15.OperatingSystem
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 시간 비율 너무 높음
프로세서\DPC 시간 비율\_Total 성능 카운터의 임계값이 초과되었습니다. 임계값을 초과하는 값: {0}.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Linux.SLES.15.OperatingSystem.TotalPercentDPCTime.Monitor" Accessibility="Public" Target="Microsoft.Linux.SLES.15.OperatingSystem" 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.OperatingSystem.TotalPercentDPCTime.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>_Total</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>