Łączny czas DPC procesora (\%)

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

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

Knowledge Base article:

Podsumowanie

Wartość procentowa czasu DPC (dla pojedynczego procesora) jest wysoka. Może to mieć niekorzystny wpływ na wydajność systemu.

Czas DPC procesora to czas, jaki pojedynczy procesor poświęca na otrzymywanie i obsługę opóźnionych wywołań procedur (DPC). Wywołania DPC to przerwania realizowane z niższym priorytetem niż przerwania standardowe. Czas DPC (%) jest składnikiem wartości procentowej 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 zwróconych w wyniku kwerendy w 1-minutowych interwałach.

Konfiguracja

Monitorowanie pojedynczych procesorów jest domyślnie wyłączone. Aby włączyć monitorowanie, należy włączyć wykrywanie obiektów o nazwie „Odnajdywanie procesorów w systemie SUSE Linux Enterprise Server 11”.

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ć przesłonięcia.

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:

W odniesieniu do każdego wystąpienia procesora porównaj wartości wskazywane przez liczniki Czas przerwań (%) i Czas DPC (%) z wartością Czas procesora (%).

Jeśli procesor przez dłuższy czas działa przy wartości licznika czasu procesora powyżej 85%, a licznik czasu przerwań lub 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 czasu procesora (%) poniżej 85%, a licznik czasu przerwań lub 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.11.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
Zbyt duży czas DPC (\%)
Próg licznika wydajności Procesor\Czas DPC (\%)\ został przekroczony. Wartość przekraczająca próg to: {0}.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Linux.SLES.11.Processor.PercentDPCTime.Monitor" Accessibility="Public" Target="Microsoft.Linux.SLES.11.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.11.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>