如何查看 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 拓扑分为两个节点,节点 0节点 1。节点 0 有 32 个 CPU,分配了 255,225 MB 的内存。节点 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

有关每种统计数据的详细说明,请参见 Red Hat 客户门户上的 A.11.NUMASTAT

numa_foreignnuma_miss 统计数据的增加可能表明 EC2 实例上运行的应用程序不支持 NUMA。这可能会影响性能。要解决此问题,请在 grub 级别关闭 NUMA。也可以尝试将应用程序绑定到特定 NUMA 节点。有关更多信息,请参阅操作系统优化

永久关闭 NUMA

要在 Amazon Linux 2、CentOS7 或 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 年前