Anonim

La mayoría de las PC con Windows ahora funcionan con procesadores multinúcleo, y las versiones recientes de Windows generalmente hacen un muy buen trabajo al dividir automáticamente la potencia de procesamiento total de su PC para acomodar mejor sus aplicaciones y juegos en ejecución. Pero a veces, el usuario y Windows pueden tener ideas diferentes cuando se trata de tomar decisiones sobre cómo utilizar mejor la potencia de la CPU de una PC, y ahí es donde los usuarios avanzados pueden intervenir y restringir manualmente ciertas aplicaciones o procesos a núcleos de CPU específicos, gracias a una función llamado afinidad del procesador . Aquí te explicamos cómo hacerlo.
Cuando se trata de versiones de Windows a nivel de consumidor, la capacidad de un usuario para configurar manualmente el uso de una aplicación de núcleos de CPU específicos se remonta al marco de tiempo de Windows XP / 2000, aunque los pasos difieren ligeramente en cada versión de Windows. Para los pasos y las capturas de pantalla que estamos utilizando Windows 10, pero los lectores que ejecutan versiones anteriores de Windows, particularmente Windows 7 y Windows 8 / 8.1, deberían poder seguir los pasos básicos ante las pequeñas diferencias con la interfaz de usuario de Windows.
También es importante tener en cuenta antes de continuar que modificar la afinidad del procesador para un proceso o aplicación en particular puede causar problemas de estabilidad, y probablemente degradará el rendimiento de las aplicaciones y juegos modernos de subprocesos múltiples. Por lo tanto, asegúrese de experimentar primero con aplicaciones y datos no cruciales, y asegúrese de guardar el trabajo abierto o el progreso del juego antes de modificar las configuraciones discutidas aquí, ya que es posible que la aplicación o el sistema se bloqueen.

¿Por qué limitar el acceso de una aplicación a los núcleos de CPU?

Como se mencionó anteriormente, la mayoría de los usuarios querrán que Windows maneje automáticamente la potencia de procesamiento de la PC, asegurándose de que las aplicaciones que pueden utilizar todos los núcleos tengan acceso a ellas. Esto generalmente resulta en un mejor rendimiento, por lo que la pregunta principal es por qué un usuario alguna vez querría limitar o restringir una determinada aplicación multiproceso a menos de la cantidad total de núcleos físicos y lógicos que una PC tiene disponible.
Hay dos respuestas básicas a esta pregunta: 1) para garantizar la compatibilidad y el rendimiento con el software más antiguo, y 2) para ejecutar un procesador de procesador que de otro modo estaría muy enhebrado y al mismo tiempo reservar suficientes recursos para realizar simultáneamente otras tareas.
Comenzaremos con la primera respuesta: compatibilidad y rendimiento. Algunas aplicaciones y juegos de Windows se codificaron mucho antes de que los procesadores multiproceso y multinúcleo de nivel de consumidor fueran una realidad. Los creadores de juegos más antiguos en particular pueden nunca haber imaginado que alguien que juegue al juego tenga algo más que una PC con Windows alimentada por un solo núcleo de CPU de alta frecuencia. Cuando el software de esta era encuentra CPU modernas con cuatro, seis, ocho o incluso más núcleos, a veces puede dar lugar a problemas de rendimiento o incluso a la imposibilidad de iniciar el programa.
Muchas aplicaciones y juegos aún funcionan bien, por supuesto, incluso cuando funcionan con las últimas CPU de escritorio monstruo de 8 núcleos / 16 hilos. Pero si está intentando jugar un juego anterior y tiene problemas, usar la afinidad del procesador para restringir manualmente el proceso del juego a solo uno de sus muchos núcleos puede ser un buen paso para solucionar problemas.
La segunda respuesta probablemente sea más útil para más usuarios de Windows, y formará la base de nuestras instrucciones paso a paso a continuación. Si bien muchas aplicaciones de Windows, particularmente juegos, aún no pueden aprovechar más de uno o dos núcleos, las aplicaciones de creación de contenido como codificadores de video y herramientas de representación 3D se han optimizado en los últimos años para poder utilizar cada onza de potencia de procesamiento que tu PC puede lanzarles. Por lo general, desea que estas aplicaciones se ejecuten lo más rápido posible, pero a veces la velocidad o el tiempo de finalización no son el factor principal, y prefiere mantener una parte de la potencia de procesamiento de su PC disponible para otra tarea mientras su exigente aplicación de medios se ejecuta en el antecedentes. Aquí es donde la afinidad del procesador es realmente útil.

Paso a paso: nuestro ejemplo

Una aplicación que puede consumir todos los núcleos de CPU que le arrojas es un codificador de video x264 como RipBot264 (o HandBrake, o cualquiera de las innumerables herramientas de codificador x264 y x265 disponibles). Para nuestro ejemplo, queremos que RipBot264 codifique un archivo de video, pero también queremos trabajar en otros proyectos en aplicaciones como Photoshop y Premiere al mismo tiempo.

Por defecto, una aplicación como RipBot264 utilizará toda la potencia de procesamiento disponible.

Si comenzamos nuestra codificación RipBot264 y luego lanzamos Photoshop y Premiere, Windows haría todo lo posible para priorizar y acomodar las necesidades de cada aplicación, pero Windows ocasionalmente también cometerá un error, lo que provocará ralentizaciones o bloqueos temporales en nuestras aplicaciones activas. Podemos intentar evitar esto usando la afinidad del procesador para limitar el uso de RipBot264 de nuestros núcleos de CPU.
Para comenzar, primero asegúrese de haber iniciado sesión en una cuenta de usuario de Windows con privilegios de administrador. Luego, adelante y ejecute la aplicación que desea restringir. En nuestro caso, ese es RipBot264.
A continuación, inicie el Administrador de tareas de Windows, ya sea haciendo clic derecho en la barra de tareas y seleccionando Administrador de tareas o utilizando la combinación de teclas de acceso directo Ctrl-Shift-Escape . De manera predeterminada, el Administrador de tareas en las versiones recientes de Windows comienza en una vista "básica". Si su Administrador de tareas no se parece al de nuestras capturas de pantalla, haga clic en Más detalles para ver la interfaz completa. Una vez hecho esto, asegúrese de estar en la pestaña "Procesos" y ahora encuentre su aplicación o proceso.
Este último paso es potencialmente más fácil decirlo que hacerlo. En muchos casos, simplemente encontrará la aplicación deseada en la lista. En otros casos, algunas aplicaciones pueden usar procesos únicos además del proceso de aplicación principal para ciertas tareas. La clave es encontrar el proceso o procesos que son responsables del uso de la CPU que desea limitar. Una buena manera de probar esto es iniciar la actividad exigente (en nuestro caso, comenzar a codificar un archivo de video), y luego ordenar el Administrador de tareas por la columna CPU para encontrar los procesos que utilizan los niveles más altos de recursos de CPU. Si el nombre del proceso (de nuevo, en nuestro caso es un proceso de codificador H.264) coincide con su aplicación de destino, ya está todo listo.
Con el proceso correcto identificado, haga clic derecho sobre él y seleccione Ir a detalles . Esto lo llevará a la pestaña Detalles del Administrador de tareas y resaltará automáticamente el proceso correcto.


Ahora, haga clic derecho nuevamente en el proceso y seleccione Establecer afinidad .

Aparecerá una nueva ventana con la etiqueta "Afinidad del procesador" llena de casillas de verificación y una lista numerada de CPU, cuyo número se basa en el número total de núcleos físicos y lógicos empaquetados en su CPU específica. Nuestro sistema de ejemplo ejecuta un Intel Core i7-5960X, que tiene ocho núcleos hiperprocesados. Por lo tanto, tenemos un total de 16 CPU en nuestra ventana de afinidad de procesador.


A continuación, es hora de decidir cuánto desea restringir su aplicación. Haga clic en la casilla de verificación junto a Todos los procesadores para anular la selección de todas las casillas de CPU y luego seleccione al menos una casilla de CPU para marcar, cada una representando un núcleo físico o lógico. En ausencia de defectos de CPU o escenarios únicos de overclocking, generalmente no importa qué núcleos seleccione.


En nuestro ejemplo, queremos limitar RipBot264 a cuatro núcleos, dejando mucho espacio para nuestras otras tareas más urgentes. Una vez que haya seleccionado el número deseado de núcleos, presione OK para cerrar la ventana Afinidad del procesador. Sus cambios entrarán en vigencia de inmediato y si la aplicación ya estaba involucrada en una tarea pesada de CPU, verá que el uso de su procesador cae en picado en todos los núcleos que seleccionó.

Una vez que configuramos RipBot264 para usar solo 4 de nuestros 16 núcleos, el uso de la CPU cae inmediatamente en los núcleos restantes.

Con esta configuración, podemos permitir que RipBot264 codifique lo más rápido posible en esos cuatro núcleos, pero los doce núcleos restantes en nuestro sistema son libres de manejar otras aplicaciones. Si luego terminamos nuestro otro trabajo y queremos restaurar el rendimiento completo a RipBot264, simplemente podemos repetir los pasos anteriores para regresar a la ventana Afinidad del procesador y luego marcar la casilla Todos los procesadores para una vez más otorgar acceso a la aplicación a todas nuestras CPU núcleos

Advertencias

Además de los problemas de estabilidad mencionados anteriormente, hay otra gran advertencia que deberá tener en cuenta. Cualquier cambio que realice en la afinidad del procesador se restablece cada vez que se reinicia ese proceso. Esto significa que, como mínimo, deberá repetir estos pasos cada vez que reinicie su PC. Sin embargo, algunos procesos son aún más problemáticos, ya que se recargan automáticamente según las instrucciones de la aplicación. En nuestra configuración RipBot264, por ejemplo, el proceso del codificador H.264 que modificamos comienza cada vez que la aplicación pasa a codificar un nuevo archivo de video.
Es posible que pueda evitar esta limitación creando scripts personalizados que establezcan la afinidad del procesador de su aplicación a través de un archivo por lotes o acceso directo basado en la línea de comandos, pero algunas aplicaciones pueden usar procesos únicos o aleatorios que hacen que tales esfuerzos sean difíciles o imposibles. Por lo tanto, es mejor experimentar individualmente con cada aplicación que desee restringir para encontrar la mejor manera de configurar manualmente la afinidad del procesador.

Cómo restringir aplicaciones a núcleos de CPU específicos con afinidad de procesador