Pour diagnostiquer les problèmes d'utilisation du processeur, vous devez utiliser Event Tracing for Windows (ETW) pour capturer les données / profils d'échantillonnage du processeur.
Pour capturer les données, installez Windows Performance Toolkit , qui fait partie du kit de développement logiciel (SDK) Windows .
Windows 10 WPT peut être utilisé sous Windows 8 / Server 2012, Windows 8.1 / Server 2012 R2 et Windows 10 / Server 2016. Si vous utilisez toujours Windows 7, utilisez le SDK / WPT avec la version 15086 .
(toutes les autres entrées peuvent être désélectionnées)
Maintenant, lancez WPRUI.exe
, sélectionnez First Level
, sous Ressource, sélectionnez Utilisation du processeur et cliquez sur Démarrer .
Capturez maintenant 1 minute d'utilisation du processeur. Après 1 minute, cliquez sur Enregistrer .
Analysez maintenant le fichier ETL généré avec Windows Performance Analyzer en glissant-déposant le CPU Usage (sampled)
graphique dans analysis pane
et en ordonnant les colonnes comme vous le voyez dans l'image:
Dans WPA, chargez les symboles de débogage et développez Pile du processus SYSTEM. Dans cette démonstration, l'utilisation du processeur provient du pilote nVIDIA.
Dans la démonstration suivante, l'utilisation du processeur provient du pilote Realtek NIC:
Quand vous voyez des appels comme ntoskrnl.exe! Vi KeTrimWorkerThreadRoutine, ntoskrnl.exe! Mm Verifier TrimMemory, ntoskrnl.exe! Verifier KeLeaveCriticalRegion , cela signifie que le vérificateur de pilotes est activé. Cela nuit également beaucoup aux performances et entraîne une utilisation élevée du système. Désactivez le vérificateur de pilotes et redémarrez.
Dans cette démonstration, le pilote iai2ce.sys
(pilote du contrôleur Intel Serial IO GPIO) le cause:
Dans cet exemple, l'utilisation du processeur provient du fichier rtsuvc.sys
qui semble être leRealtek UVC webcam Driver
Cette démo montre que le pilote Bitdefender ignis.sys
Dans l'exemple suivant, l'utilisation du processeur est déterminée par le pilote réseau Broadcom. bcmwl664.sys
Quand vous voyez ntoskrnl.exe!MiZeroWorkerPages
comme cause, c'est plus compliqué. Cela signifie que la fonction du noyau qui met la mémoire à zéro avant de pouvoir la réutiliser provoque une utilisation élevée du processeur:
Il n'y a pas de véritable moyen de détecter le processus qui le cause, mais je sais que Chrome peut en être la cause si l'accélération matérielle est activée dans Chrome. Par conséquent, si vous voyez ceci et utilisez Chrome, désactivez l'accélération matérielle dans Chrome.
Quand vous voyez ces ntoskrnl.exe! RtlpGenericRandomPatternWorker, NTOSKRNL.EXE! RtlpTestMemoryRandomUp appels
l'utilisation du processeur provient du noyau pour tester la mémoire pour des problèmes (memtest). Cette utilisation est déclenchée via la tâche de maintenance inactive de Windows 8.1 / 10. Vous pouvez utiliser le Planificateur de tâches pour désactiver la tâche inactive.
Dans Windows 10, la tâche s'appelle RunFullMemoryDiagnostics sous Microsoft> Windows> MemoryDiagnostic> RunFullMemoryDiagnostic .
Dans ce cas, l'utilisation du processeur semble provenir de Data Deduplication
Feature ( dedup.sys!DdpPostCreate
) de Windows Server:
Dans cette démonstration, l'utilisation du processeur est provoquée par le pilote de la carte WIFI. athrx.sys
Recherchez une mise à jour du pilote si vous le voyez.
Dans la démo suivante, un pilote Citrix est impliqué:
Contactez donc votre service informatique pour savoir comment résoudre les problèmes de Citrix.
Dans cette démo, la fonction usbhub.sys!UsbhPortRecycle
provoque l'utilisation du processeur:
La modification des ports USB 2.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 de SYSTEM provient du pilote Acronis tdrpm251.sys
:
Dans cette démo, l'utilisation du processeur ntoskrnl.exe!KeAcquireSpinLockRaiseToDpc
et ntoskrnl.exe!KeReleaseSpinLock
.
Un pilote utilise donc très fortement SpinLocks . Désactivez certains périphériques / pilotes jusqu'à ce que vous en voyiez un qui en soit la cause.
Dans ce cas, l'utilisation du processeur est provoquée par le pilote L1C62x64.sys
Ceci 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 processeur 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 processeur provient SRTSP64.SYS
de symantec.
Mettez à jour votre produit symantec usagé vers la dernière version.
Ici, l'utilisation du processeur provient du pilote du processeur graphique AMD (atikmdag.sys).
Si vous voyez cela, allez sur le site AMD et procurez-vous le dernier pilote pour votre carte AMD.
Ici, les pilotes TMXPFlt.sys et VsapiNt.sys provoquent 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 processeur provient de la fonction ntoskrnl.exe!MmGetPageFileInformation
Cette fonction obtient des informations sur le fichier d'échange.
Description de la routine: Cette routine renvoie des informations sur les fichiers de pagination actuellement actifs.
Désactivez le fichier d'échange, redémarrez-le, activez-le à nouveau et voyez si cela résout le problème. En outre, la suppression des services Intel (par exemple, le service HECI d'Intel Content Protection) semble résoudre le problème pour un utilisateur .
Ici, vous pouvez voir que le pilote Netwtw04.sys
( pilote Intel Wifi) appelle la fonction flushCompleteAllPendingFlushRequests
, ce qui entraîne une utilisation élevée du processeur.
Comme les symboles de débogage sont chargés, le pilote de la boîte de réception Windows est utilisé. Seulement ici, nous pouvons obtenir des symboles de débogage pour voir la pile d’appel avec le nom de la fonction flushCompleteAllPendingFlushRequests
.
Ici, vous devez installer le dernier pilote Intel pour résoudre ce problème.
Le cas le plus compliqué d'utilisation de SYSTEM est l'utilisation d'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 énuméré quelques conseils:
- assurez-vous que le processeur ne surchauffe pas à cause de la poussière dans le ventilateur du processeur
- mettre à jour ou re-flasher le (même) BIOS / UEFI
- charger les paramètres BIOS / UEFI par défaut
- assurez-vous que la batterie n'est pas endommagée, retirez-la du portable ou désactivez-la dans le Gestionnaire de périphériques.
- remplacez le cavalier sur le disque dur si vous avez remplacé le lecteur de DVD / Blue-Ray par un chariot pour installer un disque SSD à côté de votre ancien disque dur.
Dans la démo suivante, le pilote Intel HD igdkmd64.sys
de la version .4574 pour Intel HD 630 est à l'origine du problème:
La solution consiste à mettre à jour le pilote avec une version d'au moins .4590.
Dans le cas suivant, l'utilisation du processeur par le processus SYSTEM est provoquée par le pilote. stdriverx64.sys
Cela semble être un pilote 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 de SYSTEM qui entraîne une utilisation intensive du processeur, mettez à jour le pilote du contrôleur hôte PCIh SDXC / MMC de Ricoh ou désactivez le lecteur de carte SD dans le gestionnaire de périphériques si aucune mise à jour de pilote ne le résout.
Ce lecteur de carte SD semble être intégré à de nombreux périphériques Lenovo.
L’utilisateur @stevemidgley a signalé un nouveau problème d’utilisation plus importante du processeur avec Wdf01000.sys!FxSystemWorkItem::_WorkItemThunk
Ici, vous pouvez voir le pilote UDE.sys qui le cause.
Dans le hub de symbole
Je peux voir qu'il appartient au pilote de modem et aux données PNP des traces tracées Fibocom L850-GL
(modem LTE) en tant que périphérique possible:
Et la solution consiste à désactiver le modem et le périphérique composite USB dans le gestionnaire de périphériques.