Come posso esaminare le statistiche NUMA per il mio carico di lavoro in esecuzione su istanze EC2?
Eseguo il mio carico di lavoro su istanze Amazon Elastic Compute Cloud (Amazon EC2) basate su Nitro. Desidero esaminare le statistiche relative alle prestazioni e a NUMA (Non-Uniform Memory Access).
Descrizione breve
I seguenti fattori influiscono sulle prestazioni di un'applicazione ospitata su un'istanza EC2:
- Sovrautilizzo della CPU
- Utilizzo della memoria
- Volume EBS
- Statistiche di rete
- Non compatibilità con NUMA
Nell'architettura NUMA, ogni CPU ha accesso alla propria memoria assegnata, nota come memoria locale. Ogni CPU può accedere anche alla memoria allocata ad altre CPU, nota come memoria esterna. Se le applicazioni ospitate sulle tue istanze non sono compatibili con NUMA, l'accesso alla memoria esterna comporta costi aggiuntivi e potrebbe influire sulle prestazioni. Contatta il fornitore dell'applicazione per verificare se è compatibile con NUMA.
Soluzione
Esamina le statistiche NUMA
Nota: per esaminare i componenti della performance diversi dalle statistiche NUMA, consulta la pagina Come risolvo i problemi relativi alle connessioni lente a un sito Web ospitato sulla mia istanza EC2?
Per esaminare le statistiche NUMA, completa i seguenti passaggi:
1. Esegui il seguente comando per verificare se il tipo di istanza si trova in un unico nodo NUMA o in più nodi NUMA.
Nota: il tipo di istanza è r5.16xlarge e ha 2 nodi NUMA.
lscpu | grep -i numa NUMA node(s): 2
2. Esegui il seguente comando per installare il pacchetto numactl:
sudo yum install numactl
3. Esegui il seguente comando per esaminare la topologia NUMA:
sudo numactl -H
Nel seguente output di esempio la topologia NUMA è divisa in due nodi, il nodo 0 e il nodo 1. Al nodo 0 sono assegnati 32 CPU e 255,225 MB di memoria. Al nodo 1 sono assegnati l'altra metà delle CPU e 254,924 MB di memoria. La distanza tra i nodi indica le latenze nell'accesso alle pagine di memoria dell'altro 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. Esegui il seguente comando per esaminare le statistiche NUMA:
sudo numastat
Di seguito è riportato un esempio di output 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
Per una spiegazione dettagliata di ogni statistica, consulta la pagina A.11. NUMASTAT del Red Hat Customer Portal.
L'aumento delle statistiche numa_foreign e numa_miss può indicare che l'applicazione in esecuzione sull'istanza EC2 non è compatibile con NUMA. Questo potrebbe influire sulle prestazioni. Per risolvere questo problema, disattiva NUMA a livello di grub. In alternativa, prova ad associare l'applicazione al nodo NUMA specifico. Consulta la pagina Ottimizzazioni del sistema operativo per ulteriori informazioni.
Disattiva NUMA in modo permanente
Per disattivare NUMA in modo permanente su Amazon Linux 2, CentOS7 o RHEL 7, esegui i seguenti comandi:
sudo vi /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT="numa=off" sudo grub2-mkconfig -o /etc/grub2.cfg sudo reboot

Contenuto pertinente
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata 7 mesi fa