Des pics CPU intermittents émanant de « Système (NT Kernel & System) » peuvent paralyser vos VM, ralentir vos services critiques et compliquer la planification de capacité ; ce guide pratique détaille les méthodes d’analyse et les correctifs éprouvés pour Windows Server 2016.
Pic d’utilisation CPU par « Système (NT Kernel & System) » sur Windows Server 2016
Vue d’ensemble du problème
Le processus PID 4 « Système » représente en réalité l’ensemble du noyau Windows : planificateur, gestion d’interruptions (IRQ), appels différés de procédure (DPC) et pilotes en mode noyau. Lorsque ce compte système monopolise soudain 40 %, 60 % ou 100 % du CPU, la cause est presque toujours externe au noyau lui‑même : pilote instable, matériel défaillant, service tiers envahissant ou microcode manquant.
Causes probables et outils de diagnostic
Catégorie | Exemples | Outils de vérification |
---|---|---|
Pilotes obsolètes ou défectueux | Carte réseau, contrôleur RAID, chipset | Gestionnaire de périphériques, Windows Update, site OEM |
Interruptions matérielles (DPC/IRQ) | I/O disque ou réseau très sollicitées | Resource Monitor (onglet CPU → Interrupts/DPC), Performance Monitor (compteurs % Interrupt Time, % DPC Time) |
Services ou processus tiers | Antivirus, sauvegarde, outil de supervision | Task Manager, Process Explorer |
Correctifs ou microcodes manquants | Patches Spectre/Meltdown, firmware BIOS | Windows Update, utilitaires fabricants |
Corruption système ou logiciel malveillant | Minage furtif, rootkit | Microsoft Defender Offline, outils EDR |
Anomalies noyau/hardware | Mémoire, CPU, cartes PCI‑e | WinDbg (analyse dump), diagnostics fabricant |
Solutions proposées et bonnes pratiques
- Mettre à jour
- Pilotes (chipset, réseau, stockage) et micro‑firmwares ; privilégiez les packages signés WHQL.
- Correctifs cumulés de Windows Server 2016 ; vérifiez le niveau OS Build via
winver
.
- Surveiller en continu
- Créez un Data Collector Set (
perfmon.msc
) consignant notamment les compteurs suivants : Processor Time, DPC Time, Interrupt Time, Process → % Privileged Time pour le PID 4. - Lancez une trace ETW avec Windows Performance Recorder (
wpr -start generalprofile -start CPU
) puis examinez‑la dans Windows Performance Analyzer.
- Créez un Data Collector Set (
- Isoler le composant fautif
- Dans Task Manager, ajoutez les colonnes Interrupts et DPC CPU % (clic droit‑>Select columns) ; si leurs valeurs montent pendant le pic, suspectez le matériel.
- Désactivez ou arrêtez temporairement (une seule variable à la fois) les pilotes/services tiers : antivirus, agent de sauvegarde, monitoring… Observez immédiatement l’impact sur l’usage CPU.
- Optimiser la configuration
- Sélectionnez le plan d’alimentation Haute performance pour éliminer le core parking sur serveurs physiques.
- Activez la fonctionnalité Message‑Signaled Interrupts (MSI/MSI‑X) sur les cartes réseau modernes via le registre :
HKLM\SYSTEM\CurrentControlSet\Enum\PCI\…\Device Parameters\Interrupt Management\MessageSignaledInterruptProperties
. - Vérifiez qu’aucun pilote n’est compilé en mode Checked/Debug (option rarement utile en production).
- Analyser les dumps noyau si nécessaire
- Activez la génération de Kernel memory dump (type
MEMORY.DMP
). - Dans WinDbg, ouvrez le dump puis exécutez :
!analyze -v !stacks 2
Les piles les plus fréquentes (DPC ou Interrupt) pointent souvent vers le pilote coupable.
- Activez la génération de Kernel memory dump (type
- Contrôler l’intégrité du système
sfc /scannow
puisDISM /Online /Cleanup-Image /RestoreHealth
pour réparer l’image.- Exécutez une analyse antivirus hors‑ligne ; évitez de tester en production un moteur ATP en mode « agressif » sans permettre l’exclusion des dossiers
%windir%\System32
.
- Tester le matériel
- Outils fabricant : Dell SupportAssist, HPE Insight Diagnostics, Lenovo XClarity, etc.
- Test mémoire (Windows Memory Diagnostic ou MemTest86) ; un simple bit‑flip suffit à déclencher des DPC storm.
Journalisation avancée : modèle perfmon
prêt à l’emploi
Copiez le bloc XML ci‑dessous dans un fichier CPU_DPC_template.xml
, puis importez‑le via Performance Monitor → Data Collector Sets. Il collecte une fois par seconde les compteurs stratégiques :
<DataCollectorSet>
<Name>CPU_DPC_trace</Name>
<PerformanceCounterDataCollector>
<Counter>\Processor(_Total)\% DPC Time</Counter>
<Counter>\Processor(_Total)\% Interrupt Time</Counter>
<Counter>\Process(System)\% Privileged Time</Counter>
<SampleInterval>1</SampleInterval>
</PerformanceCounterDataCollector>
</DataCollectorSet>
Script PowerShell : capture WPR puis empaquetage auto
# Exécuter en admin :
$guid = [guid]::NewGuid().ToString()
wpr.exe -start generalprofile -start CPU
Start-Sleep -Seconds 90 # laisser tourner le scénario
wpr.exe -stop "C:\Trace\$guid.etl"
Compress-Archive "C:\Trace\$guid.etl" "C:\Trace\$guid.zip"
Write-Host "Archive prête : C:\Trace\$guid.zip"
Le script démarre une trace, patiente 90 s (modifiable), la stoppe puis la compresse ; idéal pour l’envoyer au support.
Cas d’étude : pic causé par un pilote réseau Broadcom
Sur un cluster Hyper‑V 2016, le processus « Système » montait à 70 % lors de sauvegardes Veeam. Les compteurs % DPC Time atteignaient 45 % sur le nœud 1 uniquement. L’analyse ETW a montré que b57nd60a.sys
monopolisait la file DPC lorsque les paquets VLAN taggés s’accumulaient. La mise à jour vers le pilote Broadcom 21.6 et l’activation de MSI‑X ont supprimé le phénomène sans toucher le reste du cluster.
Meilleures pratiques de suivi post‑correctif
- Conservez les journaux perfmon et ETW durant 24‑48 h pour valider la remédiation.
- Planifiez une fenêtre de maintenance pour appliquer les BIOS/firmwares ; testez chaque firmware sur un nœud isolé avant généralisation.
- Documentez chaque changement (version pilote, correctifs KB, fichier INF) dans votre gestionnaire d’actifs ou wiki interne pour pouvoir revenir en arrière si nécessaire.
Glossaire rapide
Abréviation | Définition |
---|---|
DPC | Deferred Procedure Call : routine noyau exécutée après une interruption matérielle. |
IRQ | Interrupt Request : signal matériel émis par un périphérique afin d’obtenir l’attention du CPU. |
ETW | Event Tracing for Windows : infrastructure de suivi haute performance du noyau. |
MSI/MSI‑X | Message‑Signaled Interrupts : améliore la distribution d’interruptions sur processeurs multicœurs. |
Checklist de validation avant fermeture d’incident
- Taux % DPC Time moyen < 5 % sur chaque cœur.
- PICD : aucun pic supérieur à 10 % d’Interrupt Time sur 24 h.
- PID 4 « Système » stable < 2 % CPU au repos, < 10 % en charge utilisateur typique.
- Firmware et pilotes = dernière révision validée par l’OEM.
- Tests mémoire et diagnostics matériel : zéro erreur signalée.
- Documentation mise à jour + restitution aux équipes exploitation.
Conclusion
En combinant mises à jour ciblées, journalisation haute résolution et désactivation méthodique des composantes suspectes, la majorité des pics CPU liés à « Système (NT Kernel & System) » sous Windows Server 2016 sont élucidés en moins d’une journée. La clé réside dans l’observation fine (ETW, perfmon) et le suivi rigoureux des changements pour sécuriser la production.