[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 缓存。

相关推荐
曼岛_21 分钟前
[Java实战]Spring Boot + Netty 实现 TCP 长连接客户端及 RESTful 请求转发(二十六)
java·spring boot·tcp/ip
老友@27 分钟前
Spring Data Elasticsearch 中 ElasticsearchOperations 构建查询条件的详解
java·后端·spring·elasticsearch·operations
NaclarbCSDN28 分钟前
Java集合框架
java·开发语言·前端
蟹至之38 分钟前
万字解析:Java字符串
java·字符串·stringbuilder·string·stringbuffer
松树戈1 小时前
本地 PC 使用Offset Explorer连接实体Ubuntu Kafka 【单机】超时问题解决
linux·ubuntu·kafka
熬夜苦读学习1 小时前
Linux线程控制
linux·运维·服务器·开发语言·后端
CircleMouse1 小时前
springboot如何通过提供的注解方式来操作Redis
java·spring boot·redis·spring·mybatis
Johny_Zhao1 小时前
CentOS Stream 10安装部署Zabbix 7.0网络监控平台和设备配置添加
linux·网络·网络安全·docker·信息安全·云计算·apache·zabbix·devops·yum源·huawei·系统运维·itsm·华三
zly88653721 小时前
MLX5 Linux 驱动代码分析
linux·运维·fpga开发
小oo呆1 小时前
【学习心得】WSL2安装Ubuntu22.04
linux