¿Cómo puedo consultar 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 consultar las estadísticas de rendimiento y acceso a memoria no uniforme (NUMA).

Breve descripción

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
  • Sin detección de NUMA

En la arquitectura de NUMA, cada CPU tiene acceso a su propia memoria asignada, conocida como memoria local. Además, cada CPU puede acceder a la memoria asignada a otras CPU, conocida como memoria externa. Si las aplicaciones alojadas en sus instancias no detectan 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 detecta NUMA.

Solución

Consulta de las estadísticas de NUMA

Nota: Para ver otros componentes del rendimiento además de las estadísticas de NUMA, consulte ¿Cómo soluciono los problemas de conexión lenta a un sitio web alojado en mi instancia de EC2?

Para consultar 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 ver la topología de NUMA:

sudo numactl -H

En el siguiente resultado de ejemplo, la topología de NUMA se divide en dos nodos: el nodo 0 y el nodo 1. El nodo 0 tiene 32 CPU y 255,225 MB de memoria asignada. 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 consultar las estadísticas de NUMA:

sudo numastat

A continuación se muestra 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 detecta NUMA, lo cual podría afectar al rendimiento. Para solucionar este problema, desactive NUMA en el nivel de grub. Como alternativa, pruebe a vincular la aplicación al nodo específico de NUMA. Para obtener más información, consulte Optimizaciones del sistema operativo.

Desactivación definitiva de NUMA

Para desactivar NUMA de forma definitiva 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

Para desactivar NUMA de forma definitiva en Amazon Linux 2023, ejecute el siguiente comando:

# grubby --args "numa=off" —update-kernel DEFAULT
OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año