Wie kann ich die NUMA-Statistiken für meinen Workload überprüfen, der auf EC2-Instances ausgeführt wird?
Ich führe meinen Workload auf Nitro-basierten Instances von Amazon Elastic Compute Cloud (Amazon EC2) aus. Ich möchte die Statistiken zur Leistung und zum Non-Uniform Memory Access (NUMA) überprüfen.
Kurzbeschreibung
Die folgenden Faktoren wirken sich auf die Leistung einer Anwendung aus, die auf einer EC2-Instance gehostet wird:
- CPU-Überlastung
- Speichernutzung
- Das EBS-Volumen
- Netzwerkstatistiken
- Nicht NUMA-bewusst
In der NUMA-Architektur hat jede CPU Zugriff auf ihren eigenen zugewiesenen Speicher, den sogenannten lokalen Speicher. Jede CPU kann auch auf Speicher zugreifen, der anderen CPUs zugewiesen ist, und dieser wird als Fremdspeicher bezeichnet. Wenn auf Ihren Instances gehostete Anwendungen NUMA-fähig sind, verursacht der Zugriff auf den Fremdspeicher zusätzliche Kosten und kann die Leistung beeinträchtigen. Wenden Sie sich an den Hersteller der Anwendung, um zu überprüfen, ob Ihre Anwendung NUMA-fähig ist.
Lösung
Überprüfen Sie die NUMA-Statistiken
Hinweis: Informationen zu anderen Leistungskomponenten als den NUMA-Statistiken finden Sie unter Wie behebe ich langsame Verbindungen zu einer Website, die auf meiner EC2-Instance gehostet wird?
Gehen Sie wie folgt vor, um die NUMA-Statistiken zu überprüfen:
1. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob sich der Instance-Typ in einem einzelnen NUMA- oder Multi-NUMA-Knoten befindet.
Hinweis: Der Instance-Typ ist r5.16xlarge und hat 2 NUMA-Knoten.
lscpu | grep -i numa NUMA node(s): 2
2. Führen Sie den folgenden Befehl aus, um das numactl-Paket zu installieren:
sudo yum install numactl
3. Führen Sie den folgenden Befehl aus, um die NUMA-Topologie zu überprüfen:
sudo numactl -H
In der folgenden Beispielausgabe ist die NUMA-Topologie in zwei Knoten unterteilt, node 0 und node 1. Dem Knoten 0 (node 0) sind 32 CPUs und 255.225 MB Speicher zugewiesen. Knoten 1 (node 1) hat die andere Hälfte der CPUs und 254.924 MB zugewiesenen Speicher. Der Knotenabstand gibt die Latenzen beim Zugriff auf Speicherseiten vom anderen Knoten aus an.
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. Führen Sie den folgenden Befehl aus, um die NUMA-Statistiken zu überprüfen:
sudo numastat
Das Folgende ist ein Beispiel für die Befehlsausgabe:
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
Eine ausführliche Erläuterung der einzelnen Statistiken finden Sie in A.11. NUMASTAT auf dem Red Hat Kundenportal.
Ein Anstieg der Statistiken numa_foreign und numa_miss kann darauf hindeuten, dass die auf der EC2-Instance ausgeführte Anwendung NUMA-fähig ist. Dies kann sich auf die Leistung auswirken. Um dieses Problem zu beheben, schalten Sie NUMA auf Grub-Ebene aus. Oder versuchen Sie, die Anwendung an den bestimmten NUMA-Knoten zu binden. Weitere Informationen finden Sie unter Betriebssystemoptimierungen.
NUMA dauerhaft ausschalten
Führen Sie die folgenden Befehle aus, um NUMA auf Amazon Linux 2, CentOS7 oder RHEL 7 dauerhaft zu deaktivieren:
sudo vi /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT="numa=off" sudo grub2-mkconfig -o /etc/grub2.cfg sudo reboot

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 2 Monaten
- AWS OFFICIALAktualisiert vor 7 Monaten
- AWS OFFICIALAktualisiert vor 2 Monaten