/sys/kernel/debug/tracing/per_cpu 显示的 CPU 比我拥有的多得多

/sys/kernel/debug/tracing/per_cpu 显示的 CPU 比我拥有的多得多

我的 Linux 机器中有 8 个逻辑 CPU。(从中可以看到/proc/cpuinfo)。当我查看

/sys/kernel/debug/tracing/per_cpu

它显示有 32 个 CPU。

为什么会有差异?如果这很重要,我在 BIOS 中禁用了超线程。

答案1

每个核心都有单独的列表。我猜你的系统有 8 个逻辑 CPU,每个 CPU 有 4 个核心。

答案2

物理核心就是 CPU 内的物理核心。逻辑核心是指单个核心同时执行 2 项或更多项任务的能力。这源于早期奔腾 4 CPU能够做到所谓的超线程 (HTT)

这有点像是一场游戏,核心的子组件不用于执行某些类型的指令,而另一条长时间运行的指令可能正在执行。因此 CPU 实际上可以同时处理两件事。

较新的内核是功能更全面的 CPU,因此它们可以同时处理多个任务,但它们不像物理内核那样是真正的 CPU。您可以在 tomshardware 上阅读有关超线程功能与内核物理功能之间的限制的更多信息,文章标题为:英特尔酷睿 i5 和酷睿 i7:英特尔的主流巨作

您可以使用以下命令查看盒子的故障lscpu

$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
CPU(s):                4
Thread(s) per core:    2
Core(s) per socket:    2
CPU socket(s):         1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 37
Stepping:              5
CPU MHz:               2667.000
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              3072K
NUMA node0 CPU(s):     0-3

上图中我的 Intel i5 笔记本电脑总共有 4 个“CPU”

CPU:4

其中有 2 个物理核心

每插槽核心数:2

每个可以运行最多 2 个线程

每核线程数:2

同时,这些线程是核心的逻辑能力。

伊斯托波

您可以使用该工具lstopo获取系统拓扑的实际图表,这有时有助于理解 CPU 架构的重要性。

                                     伊斯托波的 ss

“PU P#” = 处理单元处理器 #。这些是 CPU 核心内的处理元素。在我的笔记本电脑 (Intel i5) 上,我有 2 个核心,每个核心有 2 个处理元素,总共 4 个。但实际上我只有 2 个物理核心。

如果你想要进一步了解输出,lstopo请查看我在 U&L 问答中的回答,标题为:解释 lstopo 的输出

参考

相关内容