Como verificar se as configurações NUMA estão aplicadas no Linux

LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como verificar se as configurações de Acesso Não Uniforme à Memória (NUMA - Non-Uniform Memory Access) estão aplicadas no Linux. Compreender o NUMA é crucial para otimizar o desempenho em sistemas com múltiplos processadores.

Através de uma série de passos práticos, você utilizará comandos Linux essenciais como numactl e lscpu, e explorará o sistema de arquivos /proc/numa para verificar e inspecionar a configuração NUMA em seu sistema. Este laboratório fornecerá as habilidades práticas para identificar nós NUMA, CPUs associadas e memória, garantindo que você possa avaliar efetivamente a configuração NUMA do seu sistema.

Verificar o status NUMA com numactl --hardware

Neste passo, começaremos a explorar a arquitetura de Acesso Não Uniforme à Memória (NUMA - Non-Uniform Memory Access) em seu sistema. NUMA é um projeto de memória de computador usado em multiprocessamento, onde o tempo de acesso à memória depende da localização da memória em relação ao processador. Compreender o NUMA pode ser importante para otimizar o desempenho em certas aplicações.

Usaremos o comando numactl para verificar o status NUMA. O comando numactl é usado para controlar a política NUMA para processos ou executar um programa com uma política NUMA específica.

Primeiro, vamos verificar se o comando numactl está disponível em seu sistema. Digite o seguinte comando em seu terminal e pressione Enter:

which numactl

Se numactl estiver instalado, você verá o caminho para o executável, algo como:

/usr/bin/numactl

Se não estiver instalado, você poderá ver uma saída vazia ou uma mensagem de erro. Se não estiver instalado, você pode instalá-lo usando apt. Como você tem privilégios sudo sem senha, você pode executar:

sudo apt update
sudo apt install numactl -y

Agora que numactl está disponível, vamos usar a opção --hardware para exibir informações sobre os nós NUMA em seu sistema. Digite o seguinte comando e pressione Enter:

numactl --hardware

Você deve ver uma saída semelhante a esta, que lista os nós NUMA disponíveis e suas CPUs e memória associadas:

available: 1 nodes (0)
node 0 cpus: 0 1
node 0 size: 1999 MB
node 0 free: 1800 MB

Esta saída indica que seu sistema tem 1 nó NUMA (nó 0). Ele também mostra quais CPUs pertencem a este nó e a memória total e livre disponível para ele. A saída exata pode variar dependendo da configuração da máquina virtual.

Compreender esta saída é o primeiro passo para trabalhar com sistemas NUMA. Nos próximos passos, exploraremos mais maneiras de inspecionar a configuração NUMA.

Clique em Continuar para prosseguir para o próximo passo.

Verificar nós NUMA em /proc/numa

Neste passo, exploraremos o sistema de arquivos /proc para encontrar informações sobre os nós NUMA. O sistema de arquivos /proc é um sistema de arquivos virtual que fornece informações sobre processos e outras informações do sistema. É um ótimo lugar para encontrar detalhes sobre a configuração e o status do seu sistema Linux.

Especificamente, analisaremos o diretório /proc/numa. Este diretório contém arquivos que fornecem detalhes sobre a configuração NUMA.

Primeiro, vamos listar o conteúdo do diretório /proc/numa usando o comando ls. Digite o seguinte comando em seu terminal e pressione Enter:

ls /proc/numa

Você deve ver uma saída semelhante a esta:

distance  nodes

Isso indica que existem dois arquivos ou diretórios principais relacionados ao NUMA em /proc: distance e nodes.

Agora, vamos examinar o conteúdo do arquivo /proc/numa/nodes. Este arquivo deve listar os nós NUMA disponíveis. Podemos usar o comando cat para exibir o conteúdo deste arquivo. Digite o seguinte comando e pressione Enter:

cat /proc/numa/nodes

Você deve ver uma saída semelhante a esta:

0

Esta saída confirma que seu sistema tem pelo menos um nó NUMA, que é o nó 0. Se seu sistema tivesse mais nós NUMA, você veria uma lista de números de nós aqui (por exemplo, 0 1).

Em seguida, vamos olhar para o arquivo /proc/numa/distance. Este arquivo mostra a distância entre os nós NUMA, que representa o custo de acesso à memória em um nó diferente. Para um sistema de nó único, a distância para si mesmo é tipicamente 10. Digite o seguinte comando e pressione Enter:

cat /proc/numa/distance

Você deve ver uma saída semelhante a esta:

0: 10

Esta saída mostra a matriz de distância. Neste caso, 0: 10 significa que a distância do nó 0 para o nó 0 é 10. Em sistemas com múltiplos nós NUMA, você veria uma matriz mostrando a distância entre todos os pares de nós.

Explorar o sistema de arquivos /proc é uma maneira comum de coletar informações do sistema no Linux. Você agora viu como usá-lo para verificar os nós NUMA detectados em seu sistema.

Clique em Continuar para passar para o próximo passo.

Inspecionar detalhes NUMA com lscpu

Neste passo final, usaremos o comando lscpu para obter informações detalhadas sobre a arquitetura da CPU, incluindo a configuração NUMA. O comando lscpu exibe informações sobre a(s) CPU(s) no sistema e pode ser muito útil para entender o hardware do seu sistema.

Digite o seguinte comando em seu terminal e pressione Enter:

lscpu

Você verá uma saída abrangente sobre sua CPU. Procure por linhas que mencionem "NUMA". A saída variará dependendo do sistema, mas você deve ver algo semelhante a isto:

Architecture:        x86_64
...
NUMA node(s):        1
NUMA node0 CPU(s):   0,1

Vamos detalhar as partes relevantes da saída:

  • NUMA node(s): 1: Esta linha informa o número total de nós NUMA detectados no sistema. Neste caso, é 1, o que se alinha com o que vimos usando numactl e verificando /proc/numa.
  • NUMA node0 CPU(s): 0,1: Esta linha mostra quais núcleos de CPU pertencem ao nó NUMA 0. Aqui, indica que as CPUs 0 e 1 fazem parte do nó 0.

O comando lscpu fornece muitas outras informações úteis sobre sua CPU, como o número de núcleos, threads, tamanhos de cache e recursos suportados. Sinta-se à vontade para rolar pela saída e ver quais outros detalhes você pode encontrar.

Você agora usou com sucesso três métodos diferentes (numactl --hardware, /proc/numa e lscpu) para inspecionar a configuração NUMA do seu sistema. Compreender essas ferramentas é essencial para diagnosticar problemas de desempenho e otimizar aplicações em sistemas multiprocessadores.

Clique em Continuar para concluir este laboratório e revisar seu progresso.

Resumo

Neste laboratório, aprendemos como verificar se as configurações NUMA estão aplicadas no Linux. Começamos usando o comando numactl --hardware para exibir informações sobre os nós NUMA disponíveis, incluindo CPUs e memória associadas. Isso forneceu uma compreensão fundamental da arquitetura NUMA no sistema.

Em seguida, exploramos métodos alternativos para verificar a configuração NUMA. Isso incluiu a inspeção do sistema de arquivos /proc/numa, que fornece informações detalhadas sobre os nós NUMA e suas estatísticas de memória. Finalmente, utilizamos o comando lscpu para obter uma visão geral abrangente da arquitetura da CPU, incluindo detalhes relacionados ao NUMA, confirmando ainda mais a configuração NUMA do sistema.