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