Cómo configurar la afinidad de procesos en Linux

La afinidad de proceso (también conocida como fijación de CPU) es el proceso de asignar programas en ejecución a un solo subproceso (núcleo virtual), en lugar de permitir que se ejecute con todos los subprocesos de la CPU. Establecer la afinidad del proceso es ventajoso, ya que permitirá a los usuarios decidir exactamente cuántos recursos utiliza un programa.

En esta guía, veremos cómo configurar la afinidad de los programas en ejecución en su PC con Linux. También repasaremos otras formas en las que puede limitar los recursos del sistema a programas en su sistema operativo Linux.

Encontrar la información de su CPU

Antes de que podamos repasar cómo anclar programas individuales a subprocesos específicos, necesitamos averiguar cuántos subprocesos tiene disponibles en su sistema Linux. Hay varias formas de obtener esta información. Cubriremos dos formas.

La primera forma de averiguar el número de subprocesos de su CPU es con el comando nproc. Este comando proporciona una cantidad bruta de procesadores que están disponibles para que los utilice su sistema Linux.

Para ejecutar el comando nproc para determinar cuántos subprocesos tiene disponibles, debe abrir una ventana de terminal. Para abrir una ventana de terminal, presione Ctrl + Alt + T o Ctrl + Shift + T en el teclado.

  Cómo hacer que Linux se parezca a Windows XP

Con la ventana de terminal abierta, ejecute nproc.

nproc

Lo notará después de ejecutar el comando; aparece un número en el mensaje. El número es el recuento de subprocesos (núcleos virtuales) de su sistema Linux. Para guardar esta información para más adelante, haga lo siguiente.

nproc >> ~/cpu-count.txt

Si el comando nproc simplemente no es suficiente información para usted, existe una mejor herramienta de línea de comandos que brinda mucha más información sobre los subprocesos de su CPU. Se llama Información de CPU. He aquí cómo instalarlo.

Primero, asegúrese de tener una ventana de terminal abierta. Luego, ingrese los comandos de instalación a continuación que correspondan con el sistema operativo Linux que usa.

Ubuntu

En Ubuntu Linux, podrá instalar la información de la CPU usando el comando del administrador de paquetes Apt a continuación.

sudo apt install cpuinfo

Debian

Aquellos en Debian Linux pueden poner en funcionamiento la información de la CPU con el siguiente comando Apt-get.

sudo apt-get install cpuinfo

Arch Linux

Arch Linux puede instalar fácilmente la herramienta CPU Info en Linux usando el siguiente comando Pacman en una ventana de terminal.

sudo pacman -S python-py-cpuinfo

Fedora

¿Está usando Fedora Linux? Obtenga información de la CPU ejecutando el siguiente comando Dnf en una terminal.

sudo dnf install python3-cpuinfo

OpenSUSE

¿Un usuario de OpenSUSE Linux? Obtenga la información de la CPU en funcionamiento con el comando Zypper a continuación.

sudo zypper install python3-py-cpuinfo

Una vez que el programa CPU Info está configurado en su PC con Linux, es hora de usarlo para averiguar la información de la CPU para que podamos determinar exactamente cuántos subprocesos hay para trabajar.

  Cómo configurar un archivo de intercambio en Linux

Usando el comando cpu-info a continuación, obtenga una lectura de su CPU.

Nota: es posible que deba ejecutar cpuinfo en lugar de cpu-info si está en Arch Linux, Fedora u OpenSUSE Linux.

cpu-info

Después de ejecutar el comando, verá tanto un recuento de núcleos como un recuento lógico. El recuento lógico es el número de subprocesos con los que tiene que trabajar. La información lógica es la más importante cuando se trata de esta guía. No dude en guardar la información de la CPU en un archivo de texto ejecutando el siguiente comando.

cpu-info >> ~/cpu-count.txt

Cómo configurar la afinidad de procesos en Linux

Para establecer la afinidad de procesos en su PC con Linux, deberá utilizar el programa integrado Taskset. Abra una ventana de terminal presionando Ctrl + Alt + T o Ctrl + Shift + T en el teclado. Luego, a partir de ahí, siga las instrucciones paso a paso a continuación para aprender cómo afinar un proceso en ejecución.

Paso 1: busque el ID de proceso de un programa en ejecución ejecutando pidof, seguido del nombre de la aplicación. Por ejemplo, para encontrar el ID de proceso de Thunderbird, ejecutaría el comando de ejemplo a continuación.

  Cómo restablecer una contraseña olvidada en Linux

pidof thunderbird

Paso 2: tome nota del ID de proceso de la aplicación. Luego, conéctelo al siguiente ejemplo de comando del conjunto de tareas.

Nota: debe cambiar thread_number al hilo de la CPU en el que le gustaría poner el programa. También debe cambiar process_id al ID de proceso que se encuentra con pidof que le gustaría afinar con el conjunto de tareas.

sudo taskset -cp thread_number process_id &

¿Necesita verificar su programa recién afinado? Ejecute taskset -p contra el ID de proceso del programa para confirmar que se está ejecutando en el subproceso de CPU que especificó en el paso 2.

taskset -p process_id

Más información sobre el conjunto de tareas

Para obtener más información sobre el conjunto de tareas, deberá leer el manual. Ejecute el comando man taskset.

man taskset

Ejecutar el comando man taskset le presentará un manual detallado sobre la aplicación Taskset. Revíselo, ya que le ayudará a comprender cómo funciona la aplicación. Cuando termine, presione q para salir.