
Índice
- Limitar el uso de recursos. Evitar que un solo proceso acapare todos los núcleos en un sistema con múltiples tareas activas.
- Compatibilidad. Algunos programas antiguos se comportan mal, se cierran de golpe o se desincronizan en sistemas modernos con múltiples núcleos e hilos, y solo funcionan de forma confiable cuando se limitan a uno o dos núcleos.
- Rendimiento — específicamente en Xeons con muchos núcleos. Chips como el Xeon E5 v3/v4 tienen una gran cantidad de núcleos combinados con un presupuesto de energía fijo. Bajo carga, el CPU tiene que repartir ese presupuesto entre todos los núcleos activos, así que las frecuencias con todos los núcleos activos terminan siendo más bajas de lo que el chip realmente es capaz de alcanzar. Si desactivas una parte de los núcleos, los que quedan reciben una porción más grande de ese presupuesto de energía, lo que a menudo les permite subir de frecuencia de forma notable. Este es un truco común en placas madre LGA2011-3 cuando estás corriendo algo con un solo hilo o poco paralelizado y de todos modos no necesitas los 18-22 núcleos completos.
Desactivar núcleos desde la BIOS/UEFI

Este método desactiva núcleos a nivel de hardware. Funciona de forma garantizada, aunque es menos práctico, ya que reactivarlos requiere entrar a la BIOS y reiniciar.
En placas chinas LGA2011-3, la opción suele estar en:
IntelRCSetup > Processor Configuration > Pre-Socket Configuration > CPU Socket 0 Configuration > Cores Enabled
En placas LGA2011:
Advanced > CPU Configuration > Active Processor Cores
En otros sockets y plataformas, el nombre varía un poco, pero la opción normalmente está dentro del menú de CPU o Processor Configuration.
Desactivar núcleos mediante msconfig
Windows tiene una forma integrada de limitar el número de núcleos activos sin tocar la BIOS en absoluto:
- Presiona Win + R, escribe
msconfig, y presiona Enter. - En Configuración del sistema, abre la pestaña Arranque.

- Haz clic en Opciones avanzadas.
- Marca la casilla “Número de procesadores” y selecciona un valor del menú desplegable. Ten en cuenta que con Hyper-Threading habilitado, Windows ve cada núcleo físico como dos procesadores lógicos, así que este número se refiere a núcleos lógicos, no físicos.

- De vuelta en la ventana principal de Configuración del sistema, marca “Convertir en permanentes todas las opciones de arranque” si no quieres repetir este proceso cada vez. Haz clic en Aplicar, y después en Aceptar.
- Reinicia.
Una forma más rápida de hacer esto: bcdedit
La interfaz de msconfig en realidad no es más que una capa visual sobre un valor de configuración de arranque. Puedes establecer (y quitar) el mismo límite directamente desde un Símbolo del sistema o PowerShell con permisos elevados, lo cual es mucho más rápido si cambias el número de núcleos con frecuencia:
bcdedit /set numproc 4 — limita Windows a 4 procesadores lógicos en el siguiente arranque
bcdedit /deletevalue numproc — elimina el límite, todos los núcleos vuelven a estar disponibles
Guarda cada línea como su propio archivo .bat (“Ejecutar como administrador”) y tendrás scripts de un clic para limitar o restaurar el número de núcleos — sin andar buscando entre menús ni pasar por el ciclo de reinicio a la BIOS. De cualquier forma, sigue siendo necesario reiniciar, ya que es una configuración que se aplica al arrancar.
Limitar cuántos núcleos puede usar un programa
Este enfoque no desactiva ningún núcleo — todos siguen funcionando —, pero restringe a una aplicación específica para que solo use algunos de ellos. No necesariamente va a afectar el rendimiento de forma tan drástica como desactivar núcleos por completo, pero no requiere reiniciar y se puede aplicar sobre la marcha.
Hay tres formas de hacerlo: el Administrador de tareas, la línea de comandos, o un acceso directo.
Usando el Administrador de tareas
- Abre el Administrador de tareas (Ctrl + Alt + Supr o Ctrl + Shift + Esc).
- Ve a la pestaña Procesos (Windows 7) o Detalles (Windows 8 y versiones más recientes).
- Haz clic derecho en el proceso que quieres restringir y elige Establecer afinidad.

- Desmarca los procesadores lógicos que no quieres que use el programa y haz clic en Aceptar. El cambio se aplica de inmediato.

La desventaja: hay que repetir esto cada vez que vuelves a abrir la aplicación, ya que Windows no recuerda la configuración de afinidad entre una ejecución y otra.
Usando la línea de comandos o un acceso directo (afinidad de CPU)
Lo mismo se puede hacer desde la línea de comandos — e integrarlo en un acceso directo para no tener que repetirlo manualmente. Desde Windows 7, el comando start soporta el modificador /affinity.
Ejemplo — abrir Notepad++ restringido a un conjunto específico de núcleos:
start "Notepad++" /affinity 5555 "C:\Program Files\Notepad++\notepad++.exe"
El valor justo después de /affinity — 5555 en este ejemplo — es la máscara de afinidad: un número hexadecimal que le indica a Windows exactamente qué núcleos lógicos puede usar el proceso.
Cómo funciona la máscara de afinidad
Escribe tus núcleos lógicos como una cadena de dígitos binarios, un bit por cada núcleo lógico, donde 1 significa «habilitado» y 0 significa «deshabilitado». El bit del extremo derecho corresponde al núcleo lógico 0, y el bit del extremo izquierdo al núcleo con el número más alto.
Toma como ejemplo un CPU de 8 núcleos / 16 hilos. Con todos los núcleos habilitados, se ve así:
1111111111111111
Para usar solo los núcleos físicos y omitir sus hilos gemelos de Hyper-Threading, tendrías que alternar:
0101010101010101
Convierte esa cadena binaria a hexadecimal (cualquier conversor de binario a hexadecimal lo hace al instante) y obtienes 5555 — el valor exacto usado en el comando de arriba.
Tabla de máscaras de afinidad de CPU (núcleos 0–15)
| Núcleos usados | Máscara binaria | Decimal (máscara de afinidad) | Hex (para /affinity) |
|---|---|---|---|
| Solo el núcleo 0 | 0000 0000 0000 0001 | 1 | 1 |
| Solo el núcleo 1 | 0000 0000 0000 0010 | 2 | 2 |
| Núcleos 0–1 | 0000 0000 0000 0011 | 3 | 3 |
| Núcleos 0–2 | 0000 0000 0000 0111 | 7 | 7 |
| Núcleos 0–3 | 0000 0000 0000 1111 | 15 | F |
| Núcleos 0–4 | 0000 0000 0001 1111 | 31 | 1F |
| Núcleos 0–5 | 0000 0000 0011 1111 | 63 | 3F |
| Núcleos 0–6 | 0000 0000 0111 1111 | 127 | 7F |
| Núcleos 0–7 | 0000 0000 1111 1111 | 255 | FF |
| Núcleos 0–8 | 0000 0001 1111 1111 | 511 | 1FF |
| Núcleos 0–9 | 0000 0011 1111 1111 | 1023 | 3FF |
| Núcleos 0–10 | 0000 0111 1111 1111 | 2047 | 7FF |
| Núcleos 0–11 | 0000 1111 1111 1111 | 4095 | FFF |
| Núcleos 0–12 | 0001 1111 1111 1111 | 8191 | 1FFF |
| Núcleos 0–13 | 0011 1111 1111 1111 | 16383 | 3FFF |
| Núcleos 0–14 | 0111 1111 1111 1111 | 32767 | 7FFF |
| Núcleos 0–15 (los 16) | 1111 1111 1111 1111 | 65535 | FFFF |
Tabla de referencia rápida
Para ahorrarte la conversión manual, aquí tienes una tabla de referencia rápida para las configuraciones de hilos más comunes:
| Hilos lógicos | Núcleos físicos | Todos los hilos habilitados (hex) | Solo núcleos físicos / HT desactivado (hex) |
|---|---|---|---|
| 8 | 4 | FF | 55 |
| 12 | 6 | FFF | 555 |
| 16 | 8 | FFFF | 5555 |
| 20 | 10 | FFFFF | 55555 |
| 24 | 12 | FFFFFF | 555555 |
| 28 | 14 | FFFFFFF | 5555555 |
| 32 | 16 | FFFFFFFF | 55555555 |
| 36 | 18 | FFFFFFFFF | 555555555 |
| 44 | 22 | FFFFFFFFFFF | 55555555555 |
Una vez que tengas la máscara, puedes usarla directamente desde Win + R, desde un Símbolo del sistema, o integrarla en un acceso directo del escritorio:
- Haz clic derecho en el escritorio y elige Nuevo > Acceso directo.
- En el campo de ubicación, pega el mismo comando:
cmd.exe /c start "Notepad++" /affinity 5555 "C:\Program Files\Notepad++\notepad++.exe"
Cada vez que abras el programa desde ese acceso directo, la máscara de afinidad se aplicará automáticamente — sin necesidad de configurarla a mano en el Administrador de tareas cada vez.
Extra: configurar la afinidad desde PowerShell
Si prefieres usar PowerShell en lugar de un acceso directo de comandos estándar, puedes establecer la máscara de afinidad de un proceso al abrirlo o mientras ya está en ejecución:
$p = Start-Process "C:\Program Files\Notepad++\notepad++.exe" -PassThru
$p.ProcessorAffinity = 0x5555
¿Prefieres no hacer esto manualmente? Existe software dedicado para ello.
Herramientas como Process Lasso se encargan de todo lo anterior sin necesidad de accesos directos, scripts, ni volver a configurar nada después de reiniciar. Estableces una máscara de afinidad (y, opcionalmente, una prioridad o un perfil de energía) para un ejecutable específico una sola vez, y se aplica automáticamente cada vez que ese programa se ejecuta — incluso después de actualizaciones o reinicios de Windows. También tiene funciones que van más allá de lo que puedes hacer manualmente, como ProBalance, que reduce dinámicamente la prioridad de los procesos en segundo plano que acaparan el procesador sin afectar a los procesos que estás usando activamente. Es gratuito para uso personal, con un nivel Pro de paga para automatización adicional y sincronización de perfiles en la nube.
Extra: cómo hacer lo mismo en Linux
Si estás corriendo alguno de estos Xeon bajo Linux en lugar de Windows, las herramientas equivalentes son:
- Por proceso, sobre la marcha:
taskset -c 0,2,4,6 ./tu_programafija un programa a los números de núcleo indicados, la misma idea que la máscara de afinidad en Windows. - A nivel de todo el sistema, al arrancar: agrega
maxcpus=8(onr_cpus=8) a los parámetros de arranque del kernel para limitar el número de núcleos que el kernel activa — el equivalente en Linux al truco de msconfig/bcdedit descrito arriba.
Preguntas frecuentes
¿La configuración de afinidad de CPU se mantiene al cerrar y volver a abrir el programa?
No. La afinidad establecida mediante el Administrador de tareas o un comando puntual solo se aplica a ese proceso mientras está en ejecución. Usa un acceso directo o un script (como se explicó antes) si quieres que se aplique automáticamente cada vez que abras la aplicación — o usa software dedicado como Process Lasso, que hace esto de forma nativa.
¿Desactivar núcleos realmente aumenta la velocidad de reloj?
En los CPU con turbo configurado por núcleo — lo cual cubre a la mayoría de los chips Xeon E5 v2/v3/v4 — sí, normalmente lo hace, ya que los núcleos activos restantes reciben una porción más grande del presupuesto de energía. Cuánto ganes depende del SKU específico y de los límites de energía de tu placa madre, así que vale la pena comparar las frecuencias antes y después bajo carga con alguna herramienta de monitoreo.
¿Necesito reiniciar cada vez que quiero cambiar el número de núcleos?
Solo con los métodos de BIOS y msconfig/bcdedit, ya que ambos son configuraciones que se aplican al arrancar. El método del Administrador de tareas / máscara de afinidad se aplica al instante, sin necesidad de reiniciar.