Para diagnosticar los problemas de uso de la CPU, debe utilizar el Rastreo de eventos para Windows (ETW) para capturar los datos de muestreo de la CPU / Perfil.
Para capturar los datos, instale el Windows Performance Toolkit , que es parte del Windows SDK .
El WPT de Windows 10 puede utilizarse en Windows 8/Server 2012, Windows 8.1/Server 2012R2 y Windows 10/Server 2016. Si todavía usas Windows 7, usa el SDK/WPT con Build 15086 .
(todas las demás entradas pueden ser deseleccionadas)
Ahora ejecuta WPRUI.exe
, selecciona First Level
, bajo el Recurso selecciona Uso de CPU y haz click en inicio.
Ahora captura 1 minuto del uso de CPU. Después de 1 minuto, haz clic en Save.
Ahora analiza el archivo ETL generado con el Analizador de Rendimiento de Windows arrastrando y soltando el gráfico de CPU Usage (sampled)
al analysis pane
y ordenando las columnas como ves en la imagen:
Dentro de WPA, carga los símbolos de depuración y expande la pila del proceso SISTEMA. En esta demo, el uso de la CPU viene del controlador de nVIDIA.
En la siguiente demo, el uso de la CPU viene del controlador de NIC de Realtek:
¡Cuando veas llamadas como ntoskrnl.exe! Vi KeTrimWorkerThreadRoutine, ntoskrnl.exe!Mm Verificador TrimMemory, ntoskrnl.exe! Verificador KeLeaveCriticalRegion, esto significa que tienes habilitado el Verificador de Conductores. Esto también perjudica mucho el rendimiento y causa un alto uso del SISTEMA. Deshabilitar Verificador de Conductores y reiniciar.
En esta demostración, el controlador iai2ce.sys
(Intel Serial IO GPIO Controller driver) lo causa:
En este ejemplo, el uso de la CPU proviene del archivo rtsuvc.sys
que parece ser el Realtek UVC webcam Driver
Esta demostración muestra que el controlador Bitdefender ignis.sys
En el siguiente ejemplo, el uso de la CPU está controlado por el controlador de red de Broadcom bcmwl664.sys
Cuando ves ntoskrnl.exe!MiZeroWorkerPages
como causa, es más difícil. Esto significa que la función del kernel que pone en cero la memoria antes de que pueda ser usada de nuevo causa el alto uso de la CPU:
No hay una forma real de detectar qué proceso lo causa, pero sé que Chrome puede causarlo si tienes activada la aceleración por hardware en Chrome. Así que si ves esto y usas Chrome, desactiva la aceleración por hardware en Chrome.
Cuando ves esas ntoskrnl.exe!RtlpGenericRandomPatternWorker, ntoskrnl.exe!RtlpTestMemoryRandomUp llamadas
el uso de la CPU viene del Kernel para probar la memoria por problemas (memtest). Este uso se activa a través de la tarea de mantenimiento en reposo de Windows 8.1/10. Puedes usar el Programador de Tareas para deshabilitar la tarea inactiva.
En Windows 10, la tarea se llama RunFullMemoryDiagnostics en Microsoft > Windows > MemoryDiagnostic \ ~ RunFullMemoryDiagnostic.
En este caso, el uso de la CPU parece provenir de la característica Data Deduplication
(dedup.sys!DdpPostCreate
) de Windows Server:
En esta demostración, el uso de la CPU está causado por el controlador de la tarjeta WIFI athrx.sys
Busque una actualización del controlador si ve esto.
En la siguiente demostración, un controlador citrix está involucrado:
Así que póngase en contacto con su TI para saber cómo resolver los problemas de Citrix.
En esta demostración, la función usbhub.sys!UsbhPortRecycle
causa el uso de la CPU:
Cambiar puertos USB 2.0 a velocidad 1.1 o conectar unidades USB a otros USB 2. 0 ayudó a algunos usuarios.
En este caso, una pequeña cantidad de uso del SISTEMA proviene del controlador de Acronis tdrpm251.sys
:
En esta demostración, el uso de la CPU ntoskrnl.exe!KeAcquireSpinLockRaiseToDpc
y ntoskrnl.exe!KeReleaseSpinLock
.
por lo que un controlador está usando SpinLocks muy intensamente. Deshabilite algunos dispositivos/drivers hasta que vea uno que lo cause.
En este caso, el uso de la CPU es causado por el driver L1C62x64.sys
Este es el driver qualcomm atheros AR8171/8175 PCI-E gigabit Ethernet
. Por lo tanto, actualice el controlador si lo ve en la pila.
En este caso, el uso de la CPU proviene del análisis del archivo de host (netbt.sys!DelayedScanLmHostFile)
Asegúrese de que el archivo de host no sea demasiado grande para evitar este uso.
En este caso, el uso de la CPU proviene de SRTSP64.SYS
de symantec.
Actualice su producto de symantec usado a la última versión.
En este caso, el uso de la CPU proviene del controlador de la GPU de AMD (atikmdag.sys)
Si ve esto, vaya al sitio de AMD y obtenga el último controlador para su tarjeta AMD.
Aquí, los controladores TMXPFlt.sys y VsapiNt.sys causan el alto uso de la CPU.
Por lo que veo, esos archivos forman parte de la suite AV de Trend Micro. Actualice la herramienta o elimínela.
En este ejemplo, el uso de la CPU proviene de la función ntoskrnl.exe!MmGetPageFileInformation
Esta función obtiene información sobre el archivo de página.
Descripción de la rutina: Esta rutina devuelve información sobre los archivos de paginación actualmente activos.
Deshabilitar el archivo de paginación, reiniciar y habilitarlo de nuevo y ver si esto lo arregla. Además, al eliminar los servicios de Intel (por ejemplo, el servicio HECI de protección de contenidos de Intel) parece que se ha corregido para un usuario .
Aquí se puede ver que el controlador Netwtw04.sys
(controlador Intel Wifi) llama a la función flushCompleteAllPendingFlushRequests
y esto provoca un alto uso de la CPU.
Como los símbolos de depuración se cargan, se utiliza el controlador de la bandeja de entrada de Windows. Sólo aquí podemos obtener los símbolos de depuración para ver la pila de llamadas con el nombre de la función flushCompleteAllPendingFlushRequests
.
Aquí, deberías instalar el último controlador de Intel para arreglarlo.
El caso más complicado de uso del SISTEMA es el uso de ACPI.sys en la pila de llamadas:
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
esto es extremadamente difícil de depurar. En un tema de sysinternals , enumeré algunos consejos:
- asegúrate de que la CPU no se sobrecaliente debido al polvo en el ventilador de la CPU
- actualiza o vuelve a flashear la (misma) BIOS/UEFI
- carga la configuración por defecto de la BIOS/UEFI
- asegúrate de que la batería no esté dañada, quita la batería del portátil o desactiva la batería en el administrador de dispositivos.
- cambiar el puente en el HDD caddy si ha sustituido la unidad de DVD/Blue-Ray por un caddy para instalar una SSD junto a su antigua unidad de disco duro
En la siguiente demostración, el controlador Intel HD igdkmd64.sys
en la versión .4574 para la Intel HD 630 causa el problema:
La solución es actualizar al controlador con una versión de al menos . 4590.
En el siguiente caso, el uso de la CPU del proceso del SISTEMA es causado por el controlador stdriverx64.sys
Esto parece ser un controlador de transmisión de audio . Por lo tanto, actualice este software/driver si lo ve en WPA.
Si ve un controlador llamado risdxc64.sys
en la pila de llamadas de SYSTEM que provoca un alto uso de la CPU, actualice el controlador Ricoh PCIe SDXC/MMC Host Controller o desactive el lector de tarjetas SD en el administrador de dispositivos si no lo arregla ninguna actualización de controlador.
Este lector de tarjetas SD parece estar incorporado en muchos dispositivos de Lenovo.
El usuario @stevemidgley mostró un nuevo problema de mayor uso de la CPU con Wdf01000.sys!FxSystemWorkItem::_WorkItemThunk
Aquí puede ver un controlador UDE.sys que lo causa.
En el hub de símbolos
Puedo ver que pertenece al controlador del modem y los datos PNP de la traza muestra Fibocom L850-GL
(Modem LTE) como posible dispositivo:
Y la solución es deshabilitar el modem y el dispositivo compuesto USB en el administrador de dispositivos.