Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

Descubra como Gerenciar CPU Affinity no Linux

A CPU affinity é uma técnica que permite associar um ou mais processos a um ou mais núcleos específicos de uma CPU. Isso pode ser útil para otimizar o desempenho de aplicativos, garantindo que eles sejam executados em núcleos específicos, reduzindo a competição por recursos e melhorando a eficiência do cache. No Linux, a CPU affinity pode ser gerenciada usando comandos e ferramentas específicas.


Exemplos:


1. Usando o comando taskset:


O taskset é uma ferramenta de linha de comando que permite definir ou exibir a afinidade de CPU de um processo. Aqui estão alguns exemplos de como usá-lo:




  • Definir a afinidade de CPU para um novo processo:


    Para iniciar um novo processo com uma afinidade de CPU específica, use o seguinte comando:


     taskset -c 0,2 my_program

    Neste exemplo, my_program será executado apenas nos núcleos 0 e 2.




  • Alterar a afinidade de CPU de um processo em execução:


    Primeiro, identifique o PID (ID do processo) do processo que deseja modificar. Em seguida, use o comando:


     taskset -cp 1,3 1234

    Isso altera a afinidade do processo com PID 1234 para os núcleos 1 e 3.




2. Verificando a afinidade de CPU de um processo:


Para verificar a afinidade de CPU de um processo específico, use:


   taskset -cp 1234

Isso exibirá os núcleos nos quais o processo com PID 1234 está autorizado a ser executado.


3. Usando sched_setaffinity em C:


Para programadores, a função sched_setaffinity pode ser usada em C para definir a afinidade de CPU de um processo. Aqui está um exemplo básico:


   #define _GNU_SOURCE
#include <sched.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main() {
cpu_set_t mask;
CPU_ZERO(&mask);
CPU_SET(0, &mask); // Define a afinidade para o núcleo 0

if (sched_setaffinity(0, sizeof(mask), &mask) == -1) {
perror("sched_setaffinity");
exit(EXIT_FAILURE);
}

// Código do programa que será executado com a afinidade definida
printf("Processo executando com afinidade de CPU definida\n");

return 0;
}

Compile e execute este programa para definir a afinidade de CPU para o núcleo 0.


To share Download PDF

Gostou do artigo? Deixe sua avaliação!
Sua opinião é muito importante para nós. Clique em um dos botões abaixo para nos dizer o que achou deste conteúdo.