El sistema operativo Windows 10 (y también Windows 11) incluyen la herramienta Windows Defender para protegernos contra amenazas de seguridad. Dicha herramienta tiene un consumo de recursos poco relevante, un pequeño coste para mantenernos seguro. Pero, han descubierto que en realidad este consumo de procesador de Windows Defender en CPU Intel es superior al debido.
Kevin Glynn (aka «Uncle Webb») es un desarrollador de software que trabaja en el medio TechPowerUp. Durante el desarrollo de ThrottleStop, Glynn descubrió un error bastante interesante que tenía que ver con Windows Defender. Habría detectado que Windows Defender consume más recursos del procesador de lo que debería en la protección en tiempo real.
Windows Defender consume muchos recursos en los procesadores Intel
La primera señal de que algo “anormal” estaba sucediendo se la dio la herramienta HwiNFO. Dicha herramienta muestra una velocidad de “reloj efectiva” más baja de lo debido cuando la CPU estaba completamente cargada. Parece que la anomalía está más presente cuando Defender se ve afectado por un conflicto de software, ralentizando más el sistema.
Según indica Glynn, su procesador Core i9-10850K con una frecuencia de 5.0 GHz en todos los núcleos pierde 1000 puntos en Cinebench. Esto supone una perdida de rendimiento de aproximadamente del 6%, que es muchísimo. Un problema que afecta a cualquier usuario que tenga un Intel Core de 2008 en adelante.
Lo curioso es que afecta a usuarios con procesadores Intel Core de sobremesa y portátil, pero no afecta a procesadores AMD Ryzen.
Parece que el problema subyace en el uso por parte de Windows Defender de los contadores de los procesadores Intel. Dentro de estos contadores, se incluyen tres de funciones fijas. Cada uno de los contadores se puede programar dentro de cada uno de los anillos de ejecución de software.
Puede estar deshabilitado, funcionar en el anillo 0 que tiene más control sobre el hardware, en los anillos 1 y 2 de drivers, o en el anillo 3, que es el de aplicaciones. Los anillos son recursos compartidos y puede que varios programas quieran acceder a ellos al mismo tiempo.
El uso de los anillos parece ser el problema
HWiNFO, OCCT, Core Temp y ThrorttleStop, entre otros, se suelen ejecutar en el anillo 3, aunque en momentos puntuales pueden requerir ejecutarse en otros anillos. Que varios programas compartan el mismo anillo no es un problema, es algo normal.
Al parecer Windows Defender lo que hace es moverlos al anillo 2 en situaciones aleatorias, durante periodos de tiempo aleatorios. Esto puede darse cuando se inicia el sistema por primera vez o en cualquier momento. Cuando Windows Defender se ejecuta en segundo plano, puede iniciar o parar, e incluso cambiar constantemente, dichas herramientas al modo 2 en cualquier momento.
Debemos tener claro que el problema existe, aunque no se utilicen software de monitorización. Defender seguirá haciendo un uso excesivo del procesador de manera recurrente.
Cabe destacar que no es un problema en los procesadores de Intel. La configuración manual de los mismos temporizadores que Windows Defender no tiene impacto negativo en el rendimiento. Si se realiza una sobreescritura manual de los contadores, Defender lo detecta, detiene su trabajo y el rendimiento se normaliza. Esto no afecta en ningún momento a la detección de virus.
¿Cómo lo puedo solucionar?
Para hacerlo fácil han desarrollado la herramienta Counter Control que monitoriza el registro de los procesadores Intel. Dicha herramienta informa al usuario si algún software está usando los contadores de funciones fijas de Intel y el tiempo de uso.
Aparecerán una serie de valores en pantalla, los cuales quieren decir:
- 0x000 – No utilizado: Indica que ninguno de los controladores se está utilizando actualmente
- 0x222 – Defender: Los tres controladores están configurados en el anillo 2. Dicho valor nos indica que están siendo usados por Windows Defender
- 0x330 – Normal: Hay dos de los controladores están configurados en el anillo 3, y uno de los controladores está configurado en el anillo 0 y no se está utilizando. Esto es normal
- 0x332 – Advertencia: Tenemos dos controladores están usados por software de monitorización mientras el tercero está configurado en el anillo 2, posiblemente por Windows Defender. Puede ser una advertencia de que dos software están peleando por el control de estos recursos. Es posible que observemos un cambio de registro constante entre 0x222 y 0x332. Puede aparecer cuando usemos HwiNFO y Windows Defender intente utilizar los controladores
qqqqqqqqqq
Si estamos en el caso 0x332, dentro del software Counter Control, podemos pulsar sobre Restablecer controladores. Esto lo que hace es que un controlador pasa al anillo 3. Defender lo detectará, dejará de funcionar y restaurará el rendimiento.
Tenemos adicionalmente otras dos soluciones que podemos aplicar. Estas son:
- Deshabilitar la monitorización en tiempo real de Windows Defender, algo que no es para nada recomendado
- Usar el software ThrottleStop 9.5, que dentro de la ventana de “Opciones” incluye la función “Windows Defender Boost”. Dicha acción garantiza el máximo de rendimiento y un control preciso del reloj efectivo
Desconocemos si Microsoft tomara cartas en este asunto y lo solucionara en futuras actualizaciones. Lo más probable es que, al tener un impacto tan limitado, se termine dejando así. Únicamente podrían corregirlo si afecta a un número significativo de usuarios, algo que no parece que vaya a ser así.