了解 lscpu 的輸出
您可以看到
lscpu
命令的輸出 -jack@042:~$ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 56 On-line CPU(s) list: 0-55 Thread(s) per core: 2 Core(s) per socket: 14 Socket(s): 2 NUMA node(s): 2 Vendor ID: GenuineIntel CPU family: 6 Model: 79 Model name: Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz Stepping: 1 CPU MHz: 2600.000 CPU max MHz: 2600.0000 CPU min MHz: 1200.0000 BogoMIPS: 5201.37 Virtualization: VT-x Hypervisor vendor: vertical Virtualization type: full L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 35840K NUMA node0 CPU(s): 0-13,28-41 NUMA node1 CPU(s): 14-27,42-55
我可以看到有
2
插槽(就像處理器??),每個插槽內部都有14
核心。因此,在總2x14=28
物理核心中。通常,一個 CPU 可以包含多個核心,因此 CPU 的數量永遠不能小於核心的數量。但是,如輸出所示,CPUs(s): 56
這讓我感到困惑。我可以看到
Thread(s) per core: 2
,所以這些28
核心可以表現得像2x28=56
邏輯核心。**問題一:**這是什麼意思
CPUs(s): 56
?是否CPU(s)
表示虛擬/邏輯核心的數量,因為它至少不能是物理核心核心?**問題2:**這是什麼
NUMA node
意思?它代表套接字嗎?
“CPU(s): 56”表示邏輯核心數,等於“Thread(s) per core”דCore(s) per socket”דSocket(s)”。一個插槽是一個物理CPU封裝(佔用主機板上的一個插槽);每個插槽承載多個物理核心,每個核心可以執行一個或多個執行緒。在您的情況下,您有兩個插槽,每個插槽都包含一個 14 核 Xeon E5-2690 v4 CPU,並且由於它支持具有兩個執行緒的超執行緒,每個核心可以執行兩個執行緒。
“NUMA節點”代表記憶體架構;“NUMA”代表“非統一記憶體架構”。在您的系統中,每個插槽都連接到某些 DIMM 插槽,並且每個物理 CPU 包都包含一個記憶體控制器,用於處理總 RAM 的一部分。因此,並非所有物理記憶體都可以從所有 CPU 平等訪問:一個物理 CPU 可以直接訪問它控制的記憶體,但必須通過另一個物理 CPU 才能訪問其餘記憶體。在您的系統中,邏輯核心 0–13 和 28–41 在一個 NUMA 節點中,其餘在另一個節點中。所以是的,一個 NUMA 節點等於一個插槽,至少在典型的多插槽 Xeon 系統中是這樣。