Introduction
Une utilisation élevée du CPU par le processus "Système" peut souvent être causée par un problème de pilote matériel (bug, ancienne version, incompatibilité, etc.).
Le processus Système charge (ou héberge) plusieurs pilotes matériels de différents fournisseurs qui nécessitent un niveau d'accès mémoire plus élevé. C'est pourquoi le diagnostic du coupable spécifique peut nécessiter un peu de travail de détective comme décrit ci-dessous.
Diagnostiquer le problème
Pour diagnostiquer les problèmes d'utilisation du CPU, vous devez utiliser Event Tracing for Windows (ETW) pour capturer les données/profils d'échantillonnage du CPU.
Pour capturer les données, installer le Windows Performance Toolkit qui fait partie de la SDK Windows .
Le WPT Windows 10 peut être utilisé sur Windows 8/Server 2012, Windows 8.1/Server 2012R2 et Windows 10/Server 2016. Si vous utilisez toujours Windows 7, utilisez le SDK/WPT avec Build 15086 .
(toutes les autres entrées peuvent être désélectionnées)
Exécutez maintenant WPRUI.exe
, sélectionnez First Level
sous la rubrique "Ressources", sélectionnez Utilisation du CPU et cliquez sur commencer .
Maintenant, capturez 1 minute de l'utilisation du CPU. Après 1 minute, cliquez sur Sauvez .
Maintenant analyser le fichier ETL généré avec l'Analyseur de performance Windows en faisant glisser et en déposant le CPU Usage (sampled)
au graphique de la analysis pane
et ordonner les colonnes comme vous le voyez dans l'image :
A l'intérieur du WPA, charger les symboles de débogage et élargir la pile du processus SYSTEM. Dans cette démo, l'utilisation du CPU provient du pilote nVIDIA.
Dans la démo suivante, l'utilisation du CPU provient du pilote Realtek NIC :
Quand vous voyez des appels comme ntoskrnl.exe ! Vi KeTrimWorkerThreadRoutine, ntoskrnl.exe!Mm Vérificateur TrimMemory, ntoskrnl.exe ! Vérificateur KeLeaveCriticalRegion cela signifie que vous avez activé Driver Verifier. Cela nuit également aux performances et entraîne une utilisation élevée du SYSTÈME. Désactiver le vérificateur de pilotes et redémarrer.
Dans cette démo, le conducteur iai2ce.sys
(pilote du contrôleur Intel Serial IO GPIO) en est la cause :
Dans cet exemple, l'utilisation du CPU provient du fichier rtsuvc.sys
qui semble être le Realtek UVC webcam Driver
Cette démo montre que le pilote Bitdefender ignis.sys
Dans l'exemple suivant, l'utilisation du CPU est causée par le pilote réseau Broadcom. bcmwl664.sys
Quand vous voyez ntoskrnl.exe!MiZeroWorkerPages
comme cause, c'est plus délicat. Cela signifie que la fonction du noyau qui remet à zéro la mémoire avant qu'elle ne puisse être réutilisée est à l'origine de l'utilisation élevée du CPU :
Il n'y a pas vraiment de moyen de détecter quel processus en est la cause, mais je sais que Chrome peut le provoquer si l'accélération matérielle est activée dans Chrome. Donc, si vous voyez ce problème et que vous utilisez Chrome, désactivez l'accélération matérielle dans Chrome.
Quand vous voyez ces ntoskrnl.exe!RtlpGenericRandomPatternWorker, ntoskrnl.exe!RtlpTestMemoryRandomUp appelle
L'utilisation du CPU provient du noyau qui teste la mémoire pour des problèmes (memtest). Cette utilisation est déclenchée par la tâche de maintenance au ralenti de Windows 8.1/10. Vous pouvez utiliser le planificateur de tâches pour désactiver la tâche d'inactivité.
Dans Windows 10, la tâche s'appelle RunFullMemoryDiagnostics sous le nom de Microsoft > Windows > MemoryDiagnostic > RunFullMemoryDiagnostic .
Dans ce cas, l'utilisation du CPU semble provenir de l'application Data Deduplication
Fonctionnalité ( dedup.sys!DdpPostCreate
) de Windows Server :
Dans cette démo, l'utilisation du CPU est causée par le pilote de la carte WIFI. athrx.sys
Recherchez une mise à jour du pilote si vous voyez ceci.
Dans la démo suivante, un pilote Citrix est impliqué :
Contactez donc votre service informatique pour savoir comment résoudre les problèmes liés à Citrix.
Dans cette démo, la fonction usbhub.sys!UsbhPortRecycle
cause l'utilisation du CPU :
Passage des ports USB2.0 à la vitesse 1.1 ou la connexion de lecteurs USB à d'autres ports USB 2.0 ont aidé certains utilisateurs.
Dans ce cas, une petite partie de l'utilisation du SYSTÈME provient du pilote Acronis. tdrpm251.sys
:
Dans cette démo, l'utilisation du CPU ntoskrnl.exe!KeAcquireSpinLockRaiseToDpc
y ntoskrnl.exe!KeReleaseSpinLock
.
donc un conducteur utilise SpinLocks très lourdement. Désactivez certains périphériques/pilotes jusqu'à ce que vous trouviez celui qui provoque le problème.
Dans ce cas, l'utilisation du CPU est causée par le pilote. L1C62x64.sys
C'est le qualcomm atheros AR8171/8175 PCI-E gigabit Ethernet
conducteur. Mettez donc à jour le pilote si vous le voyez dans la pile.
Ici, l'utilisation du CPU provient de l'analyse du fichier hôte (netbt.sys!DelayedScanLmHostFile).
Assurez-vous que votre fichier hosts n'est pas trop volumineux pour éviter cette utilisation.
Dans ce cas, l'utilisation du CPU provient de SRTSP64.SYS
de Symantec.
Mettez à jour votre produit symantec utilisé à la dernière version.
Ici, l'utilisation du CPU provient du pilote du GPU AMD (atikmdag.sys).
Si vous voyez cela, allez sur le site d'AMD et obtenez le dernier pilote pour votre carte AMD.
Ici, les pilotes TMXPFlt.sys et VsapiNt.sys sont à l'origine d'une utilisation élevée du processeur.
D'après ce que je vois, ces fichiers font partie de la suite Trend Micro AV. Mettez à jour l'outil ou supprimez-le.
Dans cet exemple, l'utilisation du CPU provient de la fonction ntoskrnl.exe!MmGetPageFileInformation
Cette fonction permet d'obtenir des informations sur le pagefile.
Description de la routine : Cette routine renvoie des informations sur les fichiers de pagination actuellement actifs. actuellement actifs.
Désactivez le pagefile, redémarrez et réactivez-le et voyez si cela résout le problème. Vous pouvez également supprimer les services Intel (par exemple, le service HECI de protection du contenu Intel). semble l'avoir réparé pour un utilisateur .
Ici, vous pouvez voir que le pilote Netwtw04.sys
(pilote Intel Wifi) appelle la fonction flushCompleteAllPendingFlushRequests
et cela entraîne une forte utilisation du CPU.
Comme les symboles de débogage sont chargés, le pilote inbox de Windows est utilisé. Ce n'est qu'ici que nous pouvons obtenir des symboles de débogage pour voir la pile d'appels avec le nom de la fonction. flushCompleteAllPendingFlushRequests
.
Ici, vous devez installez le dernier pilote d'Intel pour le réparer.
Le cas le plus compliqué d'utilisation de SYSTEM est l'utilisation de ACPI.sys dans le callstack :
Line #, DPC/ISR, Module, Stack, Count, Process, Weight (in view) (ms), TimeStamp (s), % Weight
6, , , | |- ACPI.sys!ACPIWorkerThread, 40246, , 39.992,941063, , 4,13
7, , , | | ACPI.sys!RestartCtxtPassive, 40246, , 39.992,941063, , 4,13
8, , , | | ACPI.sys!InsertReadyQueue, 40246, , 39.992,941063, , 4,13
9, , , | | ACPI.sys!RunContext, 40246, , 39.992,941063, , 4,13
10, , , | | ntoskrnl.exe!KeReleaseSpinLock, 40246, , 39.992,941063, , 4,13
11, , , | | ntoskrnl.exe!KiDpcInterrupt, 40246, , 39.992,941063, , 4,13
12, , , | | ntoskrnl.exe!KiDispatchInterruptContinue, 40246, , 39.992,941063, , 4,13
13, , , | | ntoskrnl.exe!KxRetireDpcList, 40246, , 39.992,941063, , 4,13
14, , , | | ntoskrnl.exe!KiRetireDpcList, 40246, , 39.992,941063, , 4,13
15, , , | | |- ntoskrnl.exe!KiExecuteAllDpcs, 40198, , 39.945,173325, , 4,13
16, , , | | | |- ACPI.sys!ACPIInterruptDispatchEventDpc, 27565, , 27.408,930428, , 2,83
17, , , | | | | |- ACPI.sys!ACPIGpeEnableDisableEvents, 24525, , 24.384,921620, , 2,52
18, , , | | | | | ACPI.sys!ACPIWriteGpeEnableRegister, 24525, , 24.384,921620, , 2,52
19, , , | | | | | |- hal.dll!HalpAcpiPmRegisterWrite, 24421, , 24.281,015516, , 2,51
20, , , | | | | | | |- hal.dll!HalpAcpiPmRegisterWritePort, 24166, , 24.027,316013, , 2,48
c'est extrêmement difficile à déboguer. Dans un sujet sysinternals j'ai listé quelques conseils :
- s'assurer que le CPU ne surchauffe pas à cause de la poussière dans le ventilateur du CPU
- mettre à jour ou re-flasher le (même) BIOS/UEFI
- charger les paramètres BIOS/UEFI par défaut
- pour vous assurer que la batterie n'est pas endommagée, retirez la batterie de l'ordinateur portable ou désactivez la batterie dans le gestionnaire de périphériques.
-
changer le cavalier sur le support de disque dur si vous avez remplacé le lecteur de DVD/Blue-Ray par un Caddy pour installer un SSD à côté de votre ancien HDD
Dans la démo suivante, le pilote Intel HD igdkmd64.sys
dans la version .4574 pour l'Intel HD 630 cause le problème :
La solution consiste à mise à jour du pilote avec une version d'au moins .4590.
Dans le cas suivant, l'utilisation du processeur du processus SYSTEM est causée par le pilote. stdriverx64.sys
Cela semble être une conducteur de streaming audio . Donc mettez à jour ce logiciel/pilote si vous voyez ceci dans WPA.
Si vous voyez un pilote appelé risdxc64.sys
dans la pile d'appels du SYSTÈME qui cause l'utilisation élevée du CPU, mettez à jour la pile d'appels du SYSTÈME. Contrôleur hôte PCIe SDXC/MMC de Ricoh ou désactivez le lecteur de carte SD dans le gestionnaire de périphériques si aucune mise à jour du pilote ne résout le problème.
Ce lecteur de carte SD semble être intégré à de nombreux appareils Lenovo.
L'utilisateur @stevemidgley a montré un nouveau problème d'utilisation du processeur plus élevé avec Wdf01000.sys!FxSystemWorkItem::_WorkItemThunk
Ici, vous pouvez voir un pilote UDE.sys qui en est la cause.
Dans le hub des symboles
Je peux voir qu'il appartient au pilote du modem et que les données PNP de la trace indiquent Fibocom L850-GL
(LTE Modem) comme dispositif possible :
La solution consiste à désactiver le modem et le périphérique composite USB dans le gestionnaire de périphériques.
L'utilisateur @fajar a fourni le cas suivant :
Ici, l'utilisation du processeur est faible, mais si vous changez la vue pour l'utilisation DPC/ISR
vous pouvez voir que le pilote avgNetHub.sys utilise beaucoup de DPC.
Le nom indique que ce pilote fait partie du logiciel anti-virus AVG. Mettez donc à jour le logiciel ou supprimez-le si vous voyez ceci dans votre trace.