Łączny czas DPC (\%) w systemie operacyjnym

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

Monitor łącznego czasu DPC (\%) w systemie SUSE Linux Enterprise Server 9

Knowledge Base article:

Podsumowanie

Łączna wartość procentowa czasu DPC (dla wszystkich procesorów) jest wysoka. Może to mieć niekorzystny wpływ na wydajność systemu.

Łączny czas DPC to czas, jaki wszystkie procesory poświęcają na otrzymywanie i obsługę opóźnionych wywołań procedur (DPC). Wywołania DPC to przerwania realizowane z niższym priorytetem niż przerwania standardowe. Procentowy czas DPC wchodzi w skład procentowego czasu uprzywilejowanego, ponieważ wywołania DPC są obsługiwane w trybie uprzywilejowanym. Jeśli przez dłuższy czas występuje wysoka wartość licznika Czas DPC (%), może występować „wąskie gardło” procesora lub problem z aplikacją lub sprzętem, który może znacząco obniżyć ogólną wydajność systemu.

Próg monitora jest analizowany w odniesieniu do średnich wartości zwracanych w sondach do agenta, gdzie parametr Liczba próbek określa liczbę próbek uwzględnionych podczas obliczania średniej. Wartość zwracana przez agenta jest średnią kroczącą 5 ostatnich wartości badanych w 1-minutowych interwałach.

Konfiguracja

Konfiguracja domyślna

Parametr

Wartość domyślna

Próg

15

Interwał (w sekundach)

300

Liczba próbek

3

W celu zmiany wartości parametrów zdefiniowanych powyżej dla wszystkich lub określonych wystąpień bądź grup można zastosować zastąpienia.

Przyczyny

Wysoka wartość Czas DPC może być spowodowana przez jedną lub więcej z poniższych kwestii:

Rozwiązania

W celu ustalenia głównej przyczyny długiego czasu DPC postępuj zgodnie z poniższą procedurą. Sprawdź udział czasu procesora przeznaczonego na obsługę przerwań i wywołań DPC. W tym celu sprawdź następujące pomiary:

Porównaj wartości Czas przerwań (%) (_Łącznie) i Czas DPC (%) (_Łącznie) z wartością Czas procesora (%) (_Łącznie).

Jeśli procesor przez dłuższy czas działa przy wartości licznika łącznego czasu procesora powyżej 85%, a licznik łącznego czasu przerwań lub łącznego czasu DPC ma wartość powyżej 15%, problem z wydajnością może być spowodowany przez procesory. To „wąskie gardło” może zostać zlikwidowane przez wymianę procesora na lepszy lub zainstalowanie dodatkowych procesorów.

Jeśli procesor pracuje przez dłuższy czas przy wartości licznika łącznego czasu procesora (%) poniżej 85%, a licznik łącznego czasu przerwań lub łącznego czasu DPC ma wartość powyżej 15%, problem z wydajnością może być spowodowany przez problemy z aplikacjami lub sprzętem.

Element properties:

TargetMicrosoft.Linux.SLES.9.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
Zbyt duży łączny czas DPC (\%)
Próg licznika wydajności Procesor\Czas DPC (\%)\_Łącznie został przekroczony. Wartość przekraczająca próg to: {0}.
RunAsDefault

Source Code:

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