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.