¿Cómo puedo revisar las estadísticas de NUMA de mi carga de trabajo que se ejecuta en instancias de EC2?

4 minutos de lectura
0

Ejecuto mi carga de trabajo en instancias basadas en Nitro de Amazon Elastic Compute Cloud (Amazon EC2). Quiero revisar las estadísticas de rendimiento y acceso a memoria no uniforme (NUMA).

Descripción corta

Los siguientes factores afectan al rendimiento de una aplicación alojada en una instancia de EC2:

  • Uso excesivo de la CPU
  • Uso de memoria
  • El volumen de EBS
  • Estadísticas de red
  • No admite NUMA

En la arquitectura NUMA, cada CPU tiene acceso a su propia memoria asignada, conocida como memoria local. Cada CPU también puede acceder a la memoria asignada a otras CPU, conocida como memoria externa. Si las aplicaciones alojadas en tus instancias no admiten NUMA, acceder a la memoria externa implica costes adicionales y puede afectar al rendimiento. Póngase en contacto con el proveedor de la aplicación para comprobar si su aplicación es compatible con NUMA.

Resolución

Revisar las estadísticas de NUMA

Nota: Para revisar otros componentes de rendimiento aparte de las estadísticas de NUMA, consulte ¿Cómo soluciono problemas de conexiones lentas a un sitio web alojado en mi instancia de EC2?

Para revisar las estadísticas de NUMA, siga estos pasos:

1.    Ejecute el siguiente comando para comprobar si el tipo de instancia está en un solo nodo NUMA o en varios nodos NUMA.

Nota: El tipo de instancia es r5.16xlarge y tiene 2 nodos NUMA.

lscpu | grep -i numa
NUMA node(s): 2

2.    Ejecute el siguiente comando para instalar el paquete numactl:

sudo yum install numactl

3.    Ejecute el siguiente comando para revisar la topología NUMA:

sudo numactl -H

En el siguiente ejemplo de salida, la topología NUMA se divide en dos nodos: nodo 0 y nodo 1. El nodo 0 tiene asignadas 32 CPU y 255,225 MB de memoria. El nodo 1 tiene la otra mitad de las CPU y 254,924 MB de memoria asignada. La distancia entre nodos indica las latencias en el acceso a las páginas de memoria desde el otro nodo.


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.    Ejecute el siguiente comando para revisar las estadísticas de NUMA:

sudo numastat

A continuación aparece un ejemplo del resultado del 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 obtener una explicación detallada de cada estadística, consulte A.11. NUMASTAT en el portal de clientes de Red Hat.

Los aumentos en las estadísticas numa_foreign y numa_miss pueden indicar que la aplicación que se ejecuta en la instancia de EC2 no admite NUMA, lo cual podría afectar al rendimiento. Para resolver este problema, desactive NUMA a nivel de grub. O bien, intente vincular la aplicación al nodo NUMA específico. Para obtener más información, consulte Optimizaciones del sistema operativo.

Desactivar NUMA permanentemente

Para desactivar NUMA de forma permanente en Amazon Linux 2, CentOS7 o RHEL 7, ejecute los siguientes comandos:

sudo vi /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="numa=off"
sudo grub2-mkconfig -o /etc/grub2.cfg
sudo reboot
OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un mes