Moniteur du pourcentage du temps DPC total du système d’exploitation Universal Linux
Le pourcentage total de temps DPC (pour tous les processeurs) est élevé. Les performances du système en sont peut-être affectées.
Le temps DPC total est le temps passé par tous les processeurs à recevoir et traiter les appels de procédure différés (DPC). Les appels DPC sont des interruptions qui s’exécutent à un niveau de priorité inférieur par rapport aux interruptions standard. Le Pourcentage de temps DPC est un composant du Pourcentage du temps privilégié car les DPC sont exécutés en mode privilégié. Si un pourcentage de temps DPC élevé est maintenu, cela peut indiquer un goulot d’étranglement au niveau du processeur, ou un problème matériel ou lié à une application, ce qui peut réduire de manière significative les performances générales du système.
Le seuil du moniteur est analysé par rapport à la moyenne des valeurs renvoyées sous forme de sondages à l’agent, où le paramètre Nombre d’échantillons contrôle le nombre d’échantillons inclus dans le calcul de la moyenne. La valeur renvoyée par l’agent est la moyenne cumulée des 5 valeurs les plus récentes interrogées à des intervalles de 1 minute.
Configuration par défaut
Paramètre | Valeur par défaut |
Seuil | 15 |
Intervalle (secondes) | 300 |
Nombre d'échantillons | 3 |
Les remplacements permettent de modifier les valeurs de paramètre définies ci-dessus pour toutes les instances ou pour des instances ou groupes spécifiques.
Un temps DPC élevé peut être lié à une ou plusieurs des causes suivantes :
Goulot d’étranglement au niveau du processeur
Problème logiciel
Problème matériel ou de pilote de périphérique
Pour déterminer la cause racine d’un temps DPC élevé, suivez le processus décrit ci-dessous. Observez la proportion de temps processeur passé à traiter les interruptions et les appels DPC. Pour ce faire, supervisez les métriques suivantes :
Processeur\Pourcentage de temps processeur (_Total)
Processeur\Pourcentage du temps d'interruption (_Total)
Processeur\Pourcentage du temps DPC (_Total)
Comparez les valeurs des mesures Pourcentage du temps d’interruption (_Total) et Pourcentage de temps DPC (_Total) avec Pourcentage de temps processeur (_Total).
Si le Pourcentage de temps processeur (_Total) maintenu est supérieur à 85 % et que le Pourcentage du temps d'interruption (_Total) ou le Pourcentage de temps DPC (_Total) est supérieur à 15 %, les processeurs sont probablement la source du goulot d'étranglement. Ce goulot d'étranglement peut être résolu grâce à la mise à niveau ou à l'ajout de processeurs sur l'ordinateur.
Si le Pourcentage de temps processeur (_Total) maintenu est inférieur à 85 % et que le Pourcentage du temps d’interruption (_Total) ou le Pourcentage de temps DPC (_Total) est supérieur à 15 %, le problème de performances est peut-être lié au matériel ou à l’application.
Target | Microsoft.Linux.Universal.OperatingSystem | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.Unix.WSMan.Performance.Filtered.Average.Threshold.MonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.Linux.Universal.OperatingSystem.TotalPercentDPCTime.Monitor" Accessibility="Public" Target="Universal!Microsoft.Linux.Universal.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.Universal.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>