juh*_*ist 7 linux multi-core numa
我可以访问两台 NUMA 服务器。其中之一是 Dell R720,具有以下 CPU:
$ cat /proc/cpuinfo |grep Xeon|sort|uniq -c
24 model name : Intel(R) Xeon(R) CPU E5-2630L v2 @ 2.40GHz
Run Code Online (Sandbox Code Playgroud)
另一个是 HPE DL360 Gen8,具有以下 CPU:
$ cat /proc/cpuinfo |grep Xeon|sort|uniq -c
24 model name : Intel(R) Xeon(R) CPU E5-2630 0 @ 2.30GHz
Run Code Online (Sandbox Code Playgroud)
在我们拥有许多 HPE Gen9 服务器的工作中,我已经习惯了 CPU 编号(socket0、socket1、socket0 超线程、socket1 超线程)。HPE DL360 Gen8 似乎使用以下编号:
$ cat /proc/cpuinfo |grep physical.id|uniq -c
6 physical id : 0
6 physical id : 1
6 physical id : 0
6 physical id : 1
Run Code Online (Sandbox Code Playgroud)
但 Dell R720 服务器使用不同的编号:
$ cat /proc/cpuinfo |grep physical.id|uniq -c
1 physical id : 0
1 physical id : 1
1 physical id : 0
1 physical id : 1
1 physical id : 0
1 physical id : 1
1 physical id : 0
1 physical id : 1
1 physical id : 0
1 physical id : 1
1 physical id : 0
1 physical id : 1
1 physical id : 0
1 physical id : 1
1 physical id : 0
1 physical id : 1
1 physical id : 0
1 physical id : 1
1 physical id : 0
1 physical id : 1
1 physical id : 0
1 physical id : 1
1 physical id : 0
1 physical id : 1
Run Code Online (Sandbox Code Playgroud)
我的问题是,是什么导致了这种差异?这些服务器有两个略有不同的内核版本:
戴尔R720:
$ uname -a
Linux dell 4.10.0-33-generic #37~16.04.1-Ubuntu SMP Fri Aug 11 14:07:24 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
HPE DL360 Gen8:
$ uname -a
Linux hpe 4.11.0-14-generic #20~16.04.1-Ubuntu SMP Wed Aug 9 09:06:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
这是内核版本不同造成的吗?还是不同的CPU?或者通过不同的主板/BIOS?
编辑:我更新了两台机器上的内核并重新启动,所以现在两台机器使用完全相同的内核版本。尽管如此,差异仍然存在。
停止 grep 并uniq运行lscpu并lstopo --of png > server.png可视化结果......
[root@LA_Specialty ~]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 24
On-line CPU(s) list: 0-23
Thread(s) per core: 2
Core(s) per socket: 6
Socket(s): 2
NUMA node(s): 2
Vendor ID: GenuineIntel
CPU family: 6
Model: 62
Model name: Intel(R) Xeon(R) CPU E5-2643 v2 @ 3.50GHz
Stepping: 4
CPU MHz: 3501.000
BogoMIPS: 7013.88
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 25600K
NUMA node0 CPU(s): 0-5,12-17
NUMA node1 CPU(s): 6-11,18-23
Run Code Online (Sandbox Code Playgroud)
lscpu [1]将更简洁地表达各个系统的numa布局。lstopo [2]给出了处理器关系的层次结构视图。
枚举由CPU+BIOS+内核决定。在高级别上,主板有不同的插槽 0 和 1,它总是启动 0。插槽 0 中的 CPU 然后在特定地址启动核心 0 并启动 BIOS,然后 BIOS 枚举该芯片上的逻辑 CPU 和其他 CPU (可能不是按这个顺序)[3]。BIOS 根据需要将枚举数据传递给操作系统,但操作系统可以随意对 CPU 进行编号(想象一下热插拔 CPU 对编号的作用)。
如果您担心关联性和缓存,那么 apicid 是一个有用的数字。位字段的定义应使得最接近的内存/缓存具有通过对位进行排序而在数值上接近的 apicids。核心| SMT。不过,这些字段的宽度不是固定的,因此您不能指望 LSB 始终表示 SMT,它可能没有 SMT,并且该位是核心 id 的一部分。
| 归档时间: |
|
| 查看次数: |
8784 次 |
| 最近记录: |