Afinidade de processo (também conhecida como pinning de CPU) é o processo de atribuição de programas em execução a um único thread (núcleo virtual), em vez de permitir que ele seja executado com todos os threads de CPU. Definir a afinidade do processo é vantajoso, pois permitirá que os usuários decidam exatamente quantos recursos um programa usa.
Neste guia, veremos como definir a afinidade de programas em execução em seu PC Linux. Também examinaremos outras maneiras de limitar os recursos do sistema a programas em seu sistema operacional Linux.
Encontrar as informações da sua CPU
Antes de examinarmos como fixar programas individuais em threads específicos, precisamos descobrir quantos threads você tem disponíveis em seu sistema Linux. Existem algumas maneiras de descobrir essas informações . Cobriremos duas maneiras.
A primeira maneira de descobrir a contagem de threads da CPU é com o comando nproc . Este comando fornece um número bruto de processadores que estão disponíveis para o seu sistema Linux utilizar.
Para executar o comando nproc para determinar quantos threads você tem disponível, você deve abrir uma janela de terminal. Para abrir uma janela de terminal, pressione Ctrl + Alt + T ou Ctrl + Shift + T no teclado.
Com a janela do terminal aberta, execute nproc .

nproc
Você notará depois de executar o comando; um número aparece no prompt. O número é a contagem de threads (núcleos virtuais) do seu sistema Linux. Para salvar essas informações para mais tarde, faça o seguinte.
nproc >> ~ / cpu-count.txt
Se o comando nproc simplesmente não for informação suficiente para você, existe uma ferramenta de linha de comando melhor que fornece muito mais informações sobre seus threads de CPU. É denominado CPU Info. Veja como instalá-lo.
Primeiro, certifique-se de ter uma janela de terminal aberta. Em seguida, digite os comandos de instalação abaixo que correspondem ao sistema operacional Linux que você usa.
Ubuntu
No Ubuntu Linux, você poderá instalar informações da CPU usando o comando do gerenciador de pacotes Apt abaixo.
sudo apt install cpuinfo
Debian
Aqueles no Debian Linux podem obter informações da CPU e funcionar com o seguinte comando Apt-get .
sudo apt-get install cpuinfo
Arch Linux
O Arch Linux pode instalar facilmente a ferramenta CPU Info no Linux usando o seguinte comando Pacman em uma janela de terminal.
sudo pacman -S python-py-cpuinfo
Fedora
Você está usando o Fedora Linux? Obtenha as informações da CPU executando o seguinte comando Dnf em um terminal.
sudo dnf install python3-cpuinfo
OpenSUSE
Um usuário OpenSUSE Linux? Obtenha informações da CPU em funcionamento com o comando Zypper abaixo.
sudo zypper install python3-py-cpuinfo
Assim que o programa CPU Info estiver configurado em seu PC Linux, é hora de usá-lo para descobrir as informações da CPU para que possamos determinar exatamente quantos threads existem para trabalhar.
Usando o comando cpu-info abaixo, obtenha uma leitura de sua CPU.
Nota: pode ser necessário executar cpuinfo em vez de cpu-info se estiver no Arch Linux, Fedora ou OpenSUSE Linux.

cpu-info
Depois de executar o comando, você verá uma contagem de núcleos e uma contagem lógica. A contagem lógica é o número de threads com os quais você precisa trabalhar. As informações lógicas são as mais importantes quando se trata deste guia. Sinta-se à vontade para salvar as informações da CPU em um arquivo de texto executando o seguinte comando.
cpu-info >> ~ / cpu-count.txt
Como definir afinidade de processo no Linux
Para definir a afinidade de processo em seu PC Linux, você precisará usar o programa interno Taskset. Abra uma janela de terminal pressionando Ctrl + Alt + T ou Ctrl + Shift + T no teclado. Então, a partir daí, siga as instruções passo a passo abaixo para aprender como afinar um processo em execução.
Etapa 1: Encontre o ID do processo de um programa em execução executando pidof, seguido pelo nome do aplicativo. Por exemplo, para encontrar o ID do processo do Thunderbird, você executaria o comando de exemplo abaixo.

pidof thunderbird
Etapa 2: anote o ID do processo do aplicativo. Em seguida, conecte-o ao seguinte exemplo de comando do conjunto de tarefas .
Nota: você deve alterar o thread_number para o thread da CPU em que gostaria de colocar o programa. Você também deve alterar process_id para o ID do processo encontrado com pidof que você gostaria de afinar com o conjunto de tarefas .
sudo taskset -cp thread_number process_id &
Precisa verificar seu programa recém-afinado? Execute o taskset -p no ID do processo do programa para confirmar que ele está sendo executado no thread da CPU que você especificou na etapa 2.
taskset -p process_id
Saiba mais sobre o Taskset
Para aprender mais sobre o Taskset, você precisará ler o manual. Execute o comando man taskset .

conjunto de tarefas do homem
Executar o comando man taskset apresentará um manual detalhado sobre o aplicativo Taskset. Examine-o, pois isso o ajudará a entender como o aplicativo funciona. Quando terminar, pressione q para sair.