Общий процент времени DPC процессора

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

Монитор "Общий процент времени DPC процессора" SUSE Linux Enterprise Server 9

Knowledge Base article:

Краткое описание

Этот монитор проверяет общий процент времени DPC для системы. Если получено предупреждение от этого монитора, то, возможно, потребуется предпринять действия по возврату системы в рабочее состояние.

Процент времени DPC — это процент времени, в течение которого процессор был занят обработкой вызовов отложенных процедур. Прерывания DPC, или мягкие прерывания, имеют более низкий приоритет, чем обычные прерывания. Если постоянно поддерживается высокое значение процента времени DPC, то возможно процессор является узким местом системы, либо существует проблема с приложением или оборудованием, которая значительно снижает общую производительность системы.

Причины

Высокое значение процента времени DPC может быть вызвано одной или несколькими из следующих причин:

Устранение

Для определения основной причины высокого уровня DPC выполните описанные ниже действия. Выясните часть процессорного времени, которое тратится на обслуживание прерываний и DPC. Для этого понаблюдайте за следующими счетчиками в режиме реального времени при помощи системного монитора:

Сравните значения счетчиков "% времени прерываний" и "% времени DPC" со значением "Процессор\% загруженности процессора" для каждого экземпляра процессора.

Если при работе экземпляра процессора показатель "% загруженности процессора" стабильно превышает 85%, а сам процессор тратит свыше 15% времени на обслуживание прерываний и/или DPC, возможно процессор является узким местом для производительности системы. Это можно исправить, обновив процессор или добавив в компьютер дополнительные процессоры.

Если процессор при работе имеет постоянный показатель "% загруженности процессора" менее 85% и тратит более 15% этого времени на обслуживание прерываний и (или) DPC, проблема производительности может быть вызвана проблемой с приложением или оборудованием.

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)
Превышено пороговое значение счетчика производительности "Процессор\\% времени DPC". Пороговое значение превышает следующее значение: {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>//*[local-name()="Name"]</InstanceProperty>
<Value>$Data///*[local-name()="PercentDPCTime"]$</Value>
<Threshold>15</Threshold>
<NumSamples>5</NumSamples>
</Configuration>
</UnitMonitor>