我該如何檢閱在 EC2 執行個體上執行的工作負載 NUMA 統計資料?

2 分的閱讀內容
0

我在 Amazon Elastic Compute Cloud (Amazon EC2) Nitro 型執行個體上執行我的工作負載。我想檢閱效能和非統一記憶體存取 (NUMA) 統計資料。

簡短描述

下列因素會影響 EC2 執行個體託管應用程式的效能:

  • CPU 超過使用率
  • 記憶體使用
  • EBS 磁碟區
  • 網路統計資料
  • 非 NUMA 感知

在 NUMA 架構中,每個 CPU 都能存取自己指派的記憶體,也稱為本機記憶體。每個 CPU 也可以存取分配給其他 CPU 的記憶體,也稱為外部記憶體。如果執行個體託管的應用程式不具備 NUMA 感知,則存取外部記憶體會產生額外費用,且可能會影響效能。請聯絡應用程式廠商,確認應用程式是否具備 NUMA 感知。

解決方法

檢閱 NUMA 統計資料

**注意:**若要檢閱 NUMA 統計資料之外的效能元件,請參閱如何對 EC2 執行個體託管網站連線速度緩慢的問題進行疑難排解?

若要檢閱 NUMA 統計資料,請完成下列步驟:

1.    執行下列命令,確認該執行個體類型是否位於單一 NUMA 或多個 NUMA 節點中。

**注意:**r5.16xlarge 執行個體類型具有 2 個 NUMA 節點。

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

2.    執行下列命令,安裝 numactl 套件:

sudo yum install numactl

3.    執行下列命令,檢閱 NUMA 拓撲:

sudo numactl -H

在下列範例輸出中,NUMA 拓撲分為兩個節點:node 0node 1。Node 0 可獲指派 32 CPU 和 255,225 MB 的記憶體。Node 1 則擁有另外一半的 CPU 和 254,924 MB 的指派記憶體。節點距離表示從其他節點存取記憶體頁面的延遲程度。


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.    執行下列命令,檢閱 NUMA 統計資料:

sudo numastat

以下是命令輸出的範例:

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

如需每個統計資料的詳細說明,請參閱 A.11。Red Hat 客戶入口網站上的 NUMASTAT

numa_foreignnuma_miss 統計資料的增加表示在 EC2 執行個體上執行的應用程式無法感知 NUMA。這可能會影響效能。若要解決此問題,請關閉 grub 層級的 NUMA。或是嘗試將應用程式繫結至特定 NUMA 節點。如需詳細資訊,請參閱作業系統最佳化

永久關閉 NUMA

如要在 Amazon Linux 2、CentOS7 或r RHEL 7 上永久關閉 NUMA,請執行下列命令:

sudo vi /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="numa=off"
sudo grub2-mkconfig -o /etc/grub2.cfg
sudo reboot

如要在 Amazon Linux 2023 上永久關閉 NUMA,請執行下列命令:

# grubby --args "numa=off" —update-kernel DEFAULT
AWS 官方
AWS 官方已更新 1 年前