- La afinidad de CPU permite limitar qué núcleos puede usar cada proceso para optimizar o aislar cargas de trabajo concretas.
- Windows 10 y 11 gestionan bien los núcleos por defecto, pero afinidad y prioridad ayudan en casos especiales como juegos problemáticos o procesos muy pesados.
- Es posible automatizar la afinidad mediante scripts, accesos directos o herramientas como Process Lasso en lugar de cambiarla manualmente cada vez.
- Un mal uso de afinidad o prioridad puede reducir el rendimiento global o causar inestabilidad, por lo que conviene aplicarlas con moderación.
Si usas Windows para jugar, editar vídeo o trabajar con muchas aplicaciones a la vez, seguramente te habrás encontrado con situaciones en las que el procesador va al 100 %, el PC se arrastra y no sabes muy bien qué tocar para que todo vuelva a la normalidad. Una de las herramientas más potentes (y más desconocidas) que ofrece el sistema es la afinidad de CPU, es decir, decidir manualmente qué núcleos pueden usar determinados procesos.
En este artículo vamos a ver con calma cómo funciona todo esto y cómo puedes gestionar los núcleos de tu CPU mediante la afinidad de procesos desde el Administrador de tareas, cuándo tiene sentido limitar núcleos, cómo combinarlo con la prioridad del proceso, en qué casos puede mejorar el rendimiento de juegos o aplicaciones pesadas y en qué otros puede incluso provocar cuelgues si se usa mal.
Qué es un procesador multinúcleo y cómo usa los núcleos Windows

Los procesadores modernos incluyen varios núcleos de cálculo dentro del mismo chip. Cada núcleo es una unidad de procesamiento capaz de ejecutar instrucciones de forma independiente, con su propia lógica y cache, compartiendo otros recursos internos del procesador.
Desde finales de los 90 empezaron a llegar al mercado procesadores comerciales de más de un núcleo, y hoy en día es totalmente normal tener CPUs con 2, 4, 8, 16 núcleos físicos e incluso más, además de tecnologías como Hyper-Threading o SMT, que permiten que cada núcleo físico exponga dos hilos lógicos al sistema operativo.
Que tengas muchos núcleos no quiere decir que todas las aplicaciones los aprovechen por igual: el software tiene que estar programado para usar varios hilos de ejecución. Programas modernos, motores de juegos recientes o aplicaciones de edición suelen escalar bastante bien con más núcleos, mientras que herramientas antiguas o sencillas pueden seguir usando básicamente uno o dos.
En condiciones normales, Windows intenta utilizar todos los núcleos disponibles de forma automática. El planificador del sistema reparte los hilos de los procesos entre los distintos núcleos, teniendo en cuenta prioridad, carga del sistema, ahorro de energía, etc. En Windows 10 y Windows 11 esto está muy refinado, mientras que en Windows 7 y 8 a veces había casos donde ciertos núcleos podían quedar deshabilitados o infrautilizados por ajustes de energía o errores puntuales.
Cuando notamos una caída fuerte de rendimiento o vemos que un juego no escala bien, o al contrario, que una tarea pesada deja el PC inutilizable, es cuando tiene sentido plantearse tocar la afinidad de CPU o la prioridad de algunos procesos para sacar un poco más de jugo o para repartir la carga de forma más inteligente.
Cuándo tiene sentido tocar la afinidad de CPU
Aunque el planificador de Windows suele hacer un buen trabajo, hay situaciones en las que ajustar manualmente qué núcleos puede usar una aplicación concreta marca la diferencia. Esto es lo que se conoce como establecer la “afinidad del procesador” de un proceso.
Un caso muy claro es el de juegos mal programados o muy antiguos que se confunden cuando ven demasiados núcleos lógicos. Se han dado situaciones reales con PCs de gama alta, por ejemplo equipos con placas X99, 128 GB de RAM y procesadores Xeon de 14 núcleos físicos y 28 hilos con Hyper‑Threading, donde ciertos juegos simplemente no arrancaban o se quedaban en pantalla negra al encontrarse con tantos hilos.
Títulos como For Honor o Contagion han llegado a mostrar errores del estilo «out of thread ids. Decrease the number of threads or increase MAX_THREADS_SUPPORTED», obligando al usuario a reducir el número de procesadores activos desde msconfig (por ejemplo, limitar a 14 hilos) para que el juego funcionase, con el inconveniente de que esa limitación afecta a todo el sistema operativo hasta que se revierten los cambios y se reinicia el equipo.
En estos casos, lo ideal sería limitar los núcleos solo para ese juego concreto y dejar que el resto de aplicaciones sigan aprovechando toda la CPU. Eso se consigue precisamente con la afinidad de procesos, o combinándolo con scripts y accesos directos especiales que arrancan el juego con una máscara de afinidad concreta.
También tiene sentido fijar afinidad cuando tienes tareas muy pesadas en segundo plano (por ejemplo, compresión de vídeo o renderizados) y quieres reservar parte de la CPU para poder seguir usando el PC con soltura: se puede encerrar ese proceso en unos pocos núcleos y dejar el resto libres para juegos u otras aplicaciones interactivas.
Cómo funciona la multitarea y el reparto de recursos de CPU en Windows

Los sistemas operativos actuales, como Windows 10 y Windows 11, son sistemas multitarea con planificación preventiva. Esto significa que el propio sistema operativo decide cuándo ejecuta cada proceso y durante cuánto tiempo, sin dejar que las aplicaciones se gestionen entre ellas el acceso al hardware.
En el pasado existían modelos de multitarea cooperativa, donde los programas tenían que “cederse” el control unos a otros. Cuando algo iba mal, el sistema se quedaba sin capacidad de recuperar el control y aparecían las temidas pantallas de error o cuelgues totales. Para evitar estos escenarios, hoy en día el sistema reserva parte de los recursos y se guarda la última palabra sobre qué se ejecuta en cada momento.
Por este motivo, incluso aunque un juego quiera usar el 100 % de CPU, Windows no le va a entregar todos los recursos de forma absoluta. Siempre habrá procesos en segundo plano necesarios para que el sistema funcione: servicios, antivirus, controladores, etc. El sistema también suele reservar un hilo lógico para sus propias tareas internas, sobre todo en CPUs con muchos núcleos.
Cuando un juego o aplicación pesada pide mucha CPU, Windows negocia cuánto darle sin matar al resto de procesos esenciales. Si el reparto no nos convence, podemos intervenir mediante dos herramientas principales: la prioridad del proceso y la afinidad de CPU.
Cambiar estas opciones puede mejorar el rendimiento en algunos escenarios, pero mal configuradas pueden causar inestabilidad, tirones o incluso cuelgues completos del sistema, así que conviene saber muy bien qué hace cada una antes de ponerse a tocar por probar.
Prioridad del proceso vs afinidad de CPU: qué es cada cosa
Dentro del Administrador de tareas, al hacer clic derecho sobre un proceso en la pestaña Detalles encontramos dos ajustes importantes: Establecer prioridad y Establecer afinidad. Aunque se suelen mezclar en las conversaciones, son cosas distintas.
La prioridad del proceso indica qué preferencia tiene un proceso a la hora de recibir tiempo de CPU frente a otros. Windows ofrece varias prioridades: Baja, Por debajo de lo normal, Normal, Por encima de lo normal, Alta y Tiempo real.
Subir la prioridad a “Alta” o “Por encima de lo normal” puede ayudar a que un juego o programa sensible al tiempo de respuesta tenga menos interrupciones causadas por procesos secundarios. Sin embargo, usar “Tiempo real” es muy arriesgado en un PC doméstico, porque se reserva prácticamente toda la CPU para ese proceso, pudiendo bloquear el sistema si algo sale mal.
La afinidad de CPU, en cambio, determina en qué núcleos concretos del procesador tiene permiso para ejecutarse ese proceso. Por defecto, todos los procesos tienen marcados todos los núcleos, pero podemos limitar algunos para que solo se ejecuten en un subconjunto de CPUs lógicas.
Combinando ambas cosas, es posible, por ejemplo, asignar prioridad alta a un juego y limitar a uno o dos núcleos las aplicaciones que tiran mucho de CPU en segundo plano, consiguiendo así que el juego disponga de más recursos sin necesidad de cerrar nada.
De ahí viene la recomendación habitual de que “no toques la prioridad de los juegos”: usada sin criterio, puede generar más problemas que ventajas. Ajustarla un punto arriba o abajo con cabeza sí puede tener efectos positivos, pero es mejor evitar extremos. Para gestión avanzada de prioridades existen herramientas como Process Hacker para gestionar la prioridad si necesitas reglas y control más fino.
Activar y comprobar todos los núcleos del procesador en Windows
Antes de hablar de afinidad por proceso, conviene asegurarse de que Windows tiene acceso a todos los núcleos que ofrece la CPU. En Windows 10 y 11, si la BIOS/UEFI está bien configurada, esto viene de serie y no hace falta tocar nada.
En versiones antiguas como Windows 7 u 8, era posible limitar manualmente el número de procesadores desde la herramienta msconfig. Algunos usuarios activaban esta opción pensando que así hacían que Windows usara todos los núcleos, cuando en realidad lo que hacían era poner un tope artificial que podía incluso empeorar el rendimiento.
La ruta clásica era: escribir msconfig en el buscador, ir a la pestaña Arranque, pulsar en Opciones avanzadas y marcar “Número de procesadores” para elegir cuántos se querían usar. En equipos con problemas de compatibilidad con ciertos juegos, se ha usado este truco para reducir a la mitad los hilos disponibles y conseguir que el título arranque.
No obstante, en cuanto se necesita sacar partido a toda la CPU, es mejor desmarcar ese cuadro de “Número de procesadores” para que Windows pueda utilizar todos los núcleos cuando sea necesario, dejando la gestión al planificador del sistema.
En Windows 10 y 11, aunque el ajuste sigue existiendo por compatibilidad, no se recomienda tocarlo salvo casos muy específicos de diagnóstico o compatibilidad muy concreta. Para la mayoría de usuarios es mejor dejar que el sistema use todos los núcleos disponibles y ajustar la carga por proceso con afinidad y prioridad.
Cómo establecer afinidad de CPU desde el Administrador de tareas
El método más rápido y visual para gestionar la afinidad es el propio Administrador de tareas. En Windows 8, 10 y 11 el flujo es muy parecido, con la diferencia de que la pestaña relevante se llama Detalles (en Windows 7 se usaba la pestaña Procesos con la opción “Mostrar procesos de todos los usuarios”).
Para cambiar la afinidad de un proceso en caliente, basta con seguir estos pasos básicos, válidos de forma general en las versiones modernas de Windows:
- Abrir el Administrador de tareas con Ctrl + Shift + Esc, o haciendo clic derecho en la barra de tareas / botón Inicio y seleccionándolo en el menú.
- Ir a la pestaña Detalles y localizar el proceso del programa o juego que queremos ajustar.
- Hacer clic derecho sobre el proceso y seleccionar la opción Establecer afinidad.
- Se abrirá una ventana con la lista de CPUs (CPU 0, CPU 1, CPU 2, etc.) donde podremos marcar o desmarcar los núcleos que podrá usar ese proceso.
Al desmarcar algunos núcleos, estamos “encerrando” ese proceso en los que sigan marcados. Por ejemplo, si tenemos un procesador de ocho hilos lógicos y dejamos solo CPU 0 y CPU 1 marcadas para una tarea de compresión, esa tarea solo podrá ejecutarse en esos dos hilos y los demás quedarán libres para el resto de aplicaciones.
En juegos antiguos que funcionan mejor con menos hilos, o en títulos que fallan cuando ven demasiados, se puede probar a dejar activos solo 4 u 8 hilos lógicos para ese juego. En máquinas con Hyper‑Threading o SMT, a veces es preferible usar solo los núcleos físicos y evitar algunos hilos lógicos, aunque esto ya depende mucho de la arquitectura concreta.
Hay que tener en cuenta que los cambios de afinidad hechos desde el Administrador de tareas son temporales: se pierden al cerrar el programa, cerrar sesión o reiniciar el equipo. Si queremos automatizar la afinidad para una aplicación concreta, necesitaremos un script, ajustar el acceso directo o usar herramientas de terceros.
Además, algunos juegos usan sistemas antitrampas o protecciones que impiden modificar la afinidad o la prioridad de sus procesos. En esos casos es normal que la opción aparezca deshabilitada o que los cambios no surtan efecto.
Establecer prioridad de un proceso en Windows
Desde la misma pestaña Detalles del Administrador de tareas también se puede controlar la prioridad de un proceso. El sistema ofrece varias categorías, que influyen en el tiempo de CPU que se le asigna respecto a otros procesos.
Para cambiarla hay que:
- Abrir el Administrador de tareas y entrar en la pestaña Detalles.
- Localizar el proceso deseado, hacer clic derecho y elegir Establecer prioridad.
- Seleccionar uno de los niveles: Baja, Por debajo de lo normal, Normal, Por encima de lo normal, Alta o Tiempo real.
En la práctica, lo razonable es como mucho subir a “Por encima de lo normal” o “Alta” para un juego o aplicación que queramos priorizar, y bajar a “Por debajo de lo normal” o “Baja” procesos de utilidades que estén consumiendo mucha CPU pero que no necesiten respuesta inmediata (compresores, codificadores, etc.).
La prioridad “Tiempo real” está pensada para entornos muy específicos donde ciertas tareas deben ejecutarse por delante de todo lo demás (procesos industriales, audio profesional en tiempo real, etc.). Si se aplica a un juego o a un programa cualquiera en un PC doméstico, es bastante probable que el sistema empiece a comportarse de forma errática o se quede congelado, porque Windows apenas puede reservar CPU para sus propios hilos internos.
De ahí viene la recomendación habitual de que “no toques la prioridad de los juegos”: usada sin criterio, puede generar más problemas que ventajas. Ajustarla un punto arriba o abajo con cabeza sí puede tener efectos positivos, pero es mejor evitar extremos.
Casos especiales: Windows Defender y MsMpEng.exe devorando CPU
Un ejemplo muy típico de proceso que se come la CPU es el de Windows Defender, cuyo ejecutable principal es MsMpEng.exe. Cuando el antivirus está realizando un análisis completo o se atasca con ciertos archivos, puede disparar el uso de CPU y disco al 80‑100 % durante un buen rato.
Si al mirar en herramientas como el Administrador de tareas o Process Explorer vemos que MsMpEng.exe va disparado, podemos atacar el problema por varias vías:
- Comprobar que no hay otro antivirus, antispyware o antimalware instalado. Tener varios a la vez es mala idea: se pisan entre ellos, se detectan mutuamente y pueden provocar justamente ese consumo desmesurado.
- Configurar exclusiones de carpetas en Windows Defender para que no escanee ciertas rutas problemáticas (por ejemplo, su propia carpeta de instalación u otras con muchos archivos pequeños que no presentan riesgo).
- En caso extremo, desactivar Windows Defender mediante directivas de grupo (gpedit.msc) y sustituirlo por otro antivirus fiable, teniendo muy claro el riesgo de dejar el equipo sin protección.
Otra técnica útil es reducir la afinidad de MsMpEng.exe a un número limitado de núcleos para que no acapare toda la CPU. De nuevo, desde la pestaña Detalles del Administrador de tareas, se puede establecer afinidad y dejarle, por ejemplo, solo un núcleo en una CPU de dos núcleos o dos hilos en una CPU de cuatro, de modo que el escaneo vaya más lento pero deje recursos libres para el resto del sistema.
Como recomendación general, si queremos una carga equilibrada, podemos limitar a aproximadamente el 50 % de los hilos lógicos totales para MsMpEng.exe. Así se reduce el impacto sin desactivar completamente la protección en tiempo real.
Gestión avanzada de afinidad: scripts, accesos directos y máscaras de CPU
Hacer este tipo de ajustes manualmente cada vez que se abre un programa puede volverse un poco pesado. Por eso, existen varias formas de automatizar la afinidad y la prioridad para que se apliquen siempre que lancemos una aplicación determinada.
La opción más visual es usar herramientas de terceros como Process Lasso, que permiten definir reglas permanentes de afinidad, prioridad, desactivar Hyper‑Threading para un programa, etc. Estas aplicaciones se inician con Windows y reconfiguran los procesos automáticamente cuando se abren.
Si preferimos no instalar nada adicional, se puede tirar de scripts por lotes (.bat) y accesos directos modificados. La idea básica es arrancar el programa a través del comando START con parámetros de afinidad y prioridad.
Un ejemplo de archivo .bat podría ser:
cd /d «C:\Ruta\al\juego»
START /affinity FF Juego.exe
En este caso, el parámetro /affinity va seguido de una máscara en hexadecimal que indica qué hilos lógicos puede usar el proceso (cada bit activa o desactiva una CPU lógica). Por ejemplo, máscaras como 1, 2, 4, 8, 10, 20, etc., representan distintas combinaciones de núcleos. Llegados a este nivel, conviene tener claro cuántos hilos lógicos tiene el procesador y qué combinación queremos.
Otra alternativa es modificar el acceso directo de la aplicación. En la pestaña Acceso directo de las Propiedades, se puede cambiar el campo Destino para que en vez de apuntar directamente al ejecutable, pase primero por cmd.exe con los parámetros adecuados, algo como:
C:\Windows\System32\cmd.exe /C START «Nombre Programa» /high /affinity 2 «C:\Ruta\Programa.exe»
En este ejemplo, se lanza el programa con prioridad alta y solo sobre un núcleo concreto. Al pulsar Aplicar, Windows avisará de que se necesitan permisos administrativos para cambiar el acceso directo; se aceptan los cambios y, a partir de ahí, cada vez que usemos ese icono se aplicará la misma afinidad y prioridad.
Procesadores híbridos Intel y afinidad entre P‑Cores y E‑Cores
Con la llegada de arquitecturas híbridas de Intel (Alder Lake, Raptor Lake y sucesores), donde conviven núcleos de rendimiento (P‑Cores) y núcleos de eficiencia (E‑Cores), el juego de la afinidad ha ganado otra capa de complejidad.
En estos procesadores, los P‑Cores están diseñados para tareas exigentes que necesitan la máxima potencia por hilo, como juegos modernos o aplicaciones de creación de contenido, mientras que los E‑Cores se orientan a trabajos en segundo plano y cargas menos críticas en términos de latencia.
En teoría, el planificador de Windows 11, junto con la tecnología Thread Director de Intel, decide por sí solo qué hilos van a P‑Cores y cuáles a E‑Cores. En la práctica, hay títulos y aplicaciones que pueden perder rendimiento si una parte importante del trabajo se ejecuta en E‑Cores en lugar de en P‑Cores.
En estos casos, algunos usuarios optan por forzar afinidad para que los juegos principales se ejecuten solo en P‑Cores, dejando los E‑Cores para servicios, navegadores, Discord, etc. Eso sí, para que la jugada salga bien habría que ajustar también la afinidad de buena parte de los procesos secundarios, no solo del ejecutable del juego principal.
Esto puede ser viable en CPUs con muchos E‑Cores (por ejemplo, combinaciones de 8 P‑Cores con 8, 16 o más E‑Cores), donde sobra músculo para el resto de tareas, pero en procesadores con menos núcleos de eficiencia es más fácil sobrecargar alguno de ellos si se distribuye mal la carga.
Riesgos y limitaciones de jugar con afinidad y prioridad
Aunque suena muy tentador “tunear” el reparto de CPU, hay una serie de inconvenientes y riesgos que conviene tener muy presentes antes de lanzarse a tocar afinidad y prioridad a lo loco.
Si asignamos un proceso intensivo a un solo núcleo o a muy pocos, podemos provocar una caída de eficiencia notable: ese núcleo se saturará, aumentará la latencia de respuesta de la aplicación y puede llegar a dar la sensación de que va peor que antes, aunque tengamos el resto de núcleos casi sin uso.
Por otro lado, si distribuimos mal la carga, por ejemplo, concentrando demasiados procesos en los mismos hilos o dejando algunos núcleos libres sin necesidad, es posible que el sistema se vuelva menos estable. Pueden aparecer cuelgues, cierres inesperados del juego o incluso bloqueos que obliguen a reiniciar el PC a la fuerza.
Otro aspecto importante es que una configuración de afinidad fija reduce la flexibilidad del planificador de Windows. Si el proceso solo puede ejecutarse en determinados núcleos, no podrá aprovechar otros hilos lógicos que estén desocupados, algo que a veces empeora el rendimiento en cargas variables donde lo ideal es que el sistema reparta dinámicamente.
Desde el punto de vista de la seguridad, es raro pero posible que un malware se aproveche de ajustes de afinidad para intentar ocultarse de ciertas herramientas de seguridad o dificultar su detección. No es el vector típico, pero conviene no usar configuraciones extrañas en procesos del sistema o de seguridad sin tener claro lo que se está haciendo.
Y, como consejo práctico, si se fuerza a un juego a no usar los núcleos lógicos 0 y 1 (muy usados por Windows de forma preferente) en un procesador con pocos núcleos o con frecuencias justas, se puede provocar una caída fuerte de rendimiento o freeze. En CPUs modernas con 8 núcleos / 16 hilos o más, el impacto es menor, pero sigue siendo algo que hay que probar con cuidado.
Cuando se limitan demasiados hilos a un juego muy exigente, es relativamente frecuente ver crasheos, congelaciones y necesidad de reinicio forzado. Por eso, si se quiere experimentar, es recomendable hacerlo poco a poco, cambiando uno o dos núcleos cada vez y comprobando el comportamiento antes de seguir.
En la práctica, trastear con afinidad, prioridad y reparto entre núcleos físicos y lógicos puede dar bastante juego para afinar el rendimiento o resolver problemas raros con algunos títulos, pero siempre que se haga con cabeza, se documente lo que se ha cambiado y se monitoricen temperaturas, uso de CPU y estabilidad del sistema, el usuario tiene una herramienta muy potente para exprimir su hardware sin depender exclusivamente de las decisiones automáticas de Windows.
Redactor apasionado del mundo de los bytes y la tecnología en general. Me encanta compartir mis conocimientos a través de la escritura, y eso es lo que haré en este blog, mostrarte todo lo más interesante sobre gadgets, software, hardware, tendencias tecnológicas, y más. Mi objetivo es ayudarte a navegar por el mundo digital de forma sencilla y entretenida.
