我怎么知道我的服务器是否有NUMA?

pr4*_*r4n 18 linux kernel jvm processor numa

从Java Garbage Collection跳转,我遇到了NUMA的JVM设置.奇怪的是我想检查我的CentOS服务器是否具有NUMA功能.是否有可以获取此信息的*ix命令或实用程序?

Nik*_*sov 26

我不是这里的专家,但这里有一些东西:

方框1,没有NUMA:

~$ dmesg | grep -i numa
[    0.000000] No NUMA configuration found
Run Code Online (Sandbox Code Playgroud)

方框2,一些NUMA:

~$ dmesg | grep -i numa
[    0.000000] NUMA: Initialized distance table, cnt=8
[    0.000000] NUMA: Node 4 [0,80000000) + [100000000,280000000) -> [0,280000000)
Run Code Online (Sandbox Code Playgroud)

  • 对我来说,"dmesg"也没有提到"NUMA",因为它太早了.相反,`grep/var/log/dmesg`,因为它更有可能拥有完整的日志.(而且"NUMA关闭了."是什么意思?) (3认同)
  • 在dmesg中检查Numa相关消息的方法是不可靠的.首先,由于dmesg读取内核环缓冲区,因此当你grep它时,消息可能已经消失了.即假阴性.你无法将这与内核如此早,或者完全剥离以至于Numa消息完全不存在的情况区分开来. (3认同)

Don*_*d_W 18

我认为前一个问题类似:如何确认NUMA?

特别是,您可以在此处查看NUMA手册页:http: //man7.org/linux/man-pages/man7/numa.7.html

从那里你会看到:

$ find /proc -name numa_maps
/proc/1/task/1/numa_maps
/proc/1/numa_maps
/proc/2/task/2/numa_maps
/proc/2/numa_maps
/proc/3/task/3/numa_maps
[etc if you have numa]
Run Code Online (Sandbox Code Playgroud)

你可以得到更多细节:

$ grep NUMA=y /boot/config-`uname -r`
CONFIG_NUMA=y
CONFIG_K8_NUMA=y
CONFIG_X86_64_ACPI_NUMA=y
CONFIG_ACPI_NUMA=y

$ numactl --hardware
available: 2 nodes (0-1)
node 0 size: 18156 MB
node 0 free: 9053 MB
node 1 size: 18180 MB
node 1 free: 6853 MB
node distances:
node   0   1
  0:  10  20
  1:  20  10
Run Code Online (Sandbox Code Playgroud)


zge*_*erd 9

您也可以只查询信息/sys(这就是numactl下面类似工具的作用)。正如其他人指出的那样,使用 dmesg 是不可靠的,因为它通常没有无限的缓冲。

要了解当前有多少个 NUMA 节点可用,请执行以下操作:

cat /sys/devices/system/node/online
0-3
Run Code Online (Sandbox Code Playgroud)


Kad*_*dir 8

对于Redhat 4,5,6和7系统,可以尝试以下操作来确定是否禁用NUMA配置:

numactl --show不显示多个节点

# numactl --show
policy: default
preferred node: current
physcpubind: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
cpubind: 0
nodebind: 0
membind: 0
Run Code Online (Sandbox Code Playgroud)

或numactl - 硬件不列出多个节点

# numactl --hardware
available: 1 nodes (0)
node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
node 0 size: 524163 MB
node 0 free: 505253 MB
node distances:
node   0
  0:  10
Run Code Online (Sandbox Code Playgroud)


Lea*_*ner 5

您还可以从 lscpu 命令获取此信息:

lscpu | grep -i numa
NUMA node(s):          2
NUMA node0 CPU(s):     0-19,40-59
NUMA node1 CPU(s):     20-39,60-79
Run Code Online (Sandbox Code Playgroud)