Como posso revisar as estatísticas do NUMA para minha workload em execução em instâncias do EC2?
Estou executando minha workload em instâncias baseadas em Nitro do Amazon Elastic Compute Cloud (Amazon EC2). Quero analisar as estatísticas de desempenho e acesso não uniforme à memória (NUMA).
Breve descrição
Os seguintes fatores afetam o desempenho de um aplicativo hospedado em uma instância do EC2:
- Utilização excessiva da CPU
- Uso de memória
- O volume do EBS
- Estatísticas de rede
- Sem reconhecimento do NUMA
Na arquitetura NUMA, cada CPU tem acesso à sua própria memória atribuída, conhecida como memória local. Cada CPU também pode acessar a memória alocada a outras CPUs, conhecida como memória externa. Se os aplicativos hospedados em suas instâncias não reconhecerem o NUMA, o acesso à memória externa gerará custos adicionais e poderá afetar o desempenho. Entre em contato com o fornecedor do aplicativo para verificar se seu aplicativo tem reconhecimento do NUMA.
Resolução
Revisar as estatísticas do NUMA
Observação: para analisar outros componentes de performance além das estatísticas do NUMA, consulte Como soluciono problemas de conexões lentas com um site hospedado na minha instância do EC2?
Para revisar as estatísticas do NUMA, realize as seguintes etapas:
1. Execute o comando a seguir para verificar se o tipo de instância estiver em um único nó NUMA ou multi-NUMA.
Observação: o tipo de instância é r5.16xlarge e tem 2 nós NUMA.
lscpu | grep -i numa NUMA node(s): 2
2. Execute o comando a seguir para instalar o pacote numactl:
sudo yum install numactl
3. Execute o comando a seguir para revisar a topologia do NUMA:
sudo numactl -H
No exemplo de saída a seguir, a topologia do NUMA está dividida em dois nós, nó 0 e nó 1. O nó 0 tem 32 CPUs e 255.225 MB de memória atribuídos a ele. O nó 1 tem a outra metade das CPUs e 254.924 MB de memória atribuída. A distância do nó indica as latências no acesso às páginas de memória do outro nó.
available: 2 nodes (0-1) node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 node 0 size: 255140 MB node 0 free: 254794 MB node 1 cpus: 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 node 1 size: 255225 MB node 1 free: 254924 MB node distances: node 0 1 0: 10 21 1: 21 10
4. Execute o comando a seguir para revisar as estatísticas do NUMA:
sudo numastat
Veja a seguir um exemplo da saída do comando:
node node0 node1 numa_hit 314825 288025 numa_miss 0 0 numa_foreign 0 0 interleave_hit 37958 37620 local_node 311752 248476 other_node 3073 39549
Para obter uma explicação detalhada de cada estatística, consulte A.11. NUMASTAT no Red Hat Customer Portal.
Aumentos nas estatísticas numa_foreign e numa_miss podem indicar que a aplicação em execução na instância do EC2 não reconhece o NUMA. Isso pode afetar o desempenho. Para resolver esse problema, desative o NUMA no nível do grub. Ou tente vincular a aplicação ao nó NUMA específico. Para obter mais informações, consulte Otimizações do sistema operacional.
Desativar permanentemente o NUMA
Para desativar permanentemente o NUMA no Amazon Linux 2, CentOS7 ou RHEL 7, execute os seguintes comandos:
sudo vi /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT="numa=off" sudo grub2-mkconfig -o /etc/grub2.cfg sudo reboot
Para desativar permanentemente o NUMA no Amazon Linux 2023, execute o seguinte comando:
# grubby --args "numa=off" —update-kernel DEFAULT
Conteúdo relevante
- AWS OFICIALAtualizada há 5 anos
- AWS OFICIALAtualizada há 3 anos
- AWS OFICIALAtualizada há 3 anos
- AWS OFICIALAtualizada há 6 meses