[Linux] 服务器CPU信息

(1)查看CPU信息(型号)

cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

输出:可以看到有128个虚拟CPU核心,型号是后面一串

128  Intel(R) Xeon(R) Platinum 8336C CPU @ 2.30GHz

(2)查看物理CPU个数

cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

输出:我们实验室服务器只有两个物理CPU,垃圾。

2

(3)查看每个物理CPU中core的个数(即实际核数)

cat /proc/cpuinfo| grep "cpu cores"| uniq

输出: 一个CPU实际核数只有32。

cpu cores       : 32

(4)虚拟核心

输出中,显示了 CPU(s): 128,这意味着系统实际上识别到128个虚拟CPU或线程数,而不是物理CPU核心数量。这个现象通常由以下几个原因造成:

  1. 超线程技术(Hyper-Threading)

    • 处理器 Intel Xeon Platinum 8336C 支持 超线程技术(Hyper-Threading,HT)。每个物理核心可以通过 HT 支持多个线程。

    • 每个物理核心 (Core(s) per socket: 32) 可以运行 2 个线程 (Thread(s) per core: 2)。

    • 因此,2 个物理 CPU 插槽(Socket(s): 2)和每个插槽 32 个核心就提供了 32 * 2 = 64 个线程(每个物理核心有 2 个线程)。

    • 因此,在两个 CPU 插槽上,系统总共有 64 * 2 = 128 个虚拟核心(线程)。

  2. 虚拟 CPU 数量与物理核心数量的差异

    • 物理 CPU 插槽数量:2

    • 每个 CPU 插槽的核心数:32

    • 每个核心支持线程数:2(超线程)

    • 所以,系统看到的 128 个虚拟 CPU 是因为启用了超线程(Hyper-Threading),它使得每个物理核心能够处理两个独立的线程。

  3. NUMA 配置(用于CPU间数据交换的组)

    • 输出中显示有 2 个 NUMA 节点:

    • NUMA node0 CPU(s): 0-31, 64-95

    • NUMA node1 CPU(s): 32-63, 96-127

    • 这意味着两个 NUMA 节点分别使用了不同的 CPU 范围。例如,节点0包含 0-31 和 64-95 的 CPU 核心,而节点1包含 32-63 和 96-127 的 CPU 核心。NUMA 配置表示内存访问策略和 CPU 核心的关联,也对并行计算有影响,特别是在大型多线程计算中。

(5)lscpu查看一些信息(包括 cache 和 cpu)
部分输出如下:

CPU(s):                  128
Core(s) per socket: 32
Thread(s) per core: 2
Socket(s):           2  // 这里的socke指的是实际CPU数量
L1d:                   3 MiB (64 instances)
L1i:                   2 MiB (64 instances)

其中L1d cache有64个实例,也就是说我每个物理core都有一个自己的L1d,大小都为3MiB。每个物理核心(Core)有独立的 L1d 和 L1i 缓存。两个逻辑核心(Hyper-Threading)共享同一个物理核心的 L1d 和 L1i 缓存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值