我的linux系统中有8个逻辑CPU。 (从/proc/cpuinfo可以看到)。 当我看着
/sys/kernel/debug/tracing/per_cpu
它显示了32个CPU。
为什么区别? 如果重要,我在BIOS中禁用了超线程。
每个核心都有单独的列表。 我猜你的系统有8个逻辑CPU,每个4个核心。
物理内核正是CPU内部的物理内核。 逻辑核心是一个核心同时完成2个或更多事物的能力。 这是由于早期的奔腾4 CPU能够完成所谓的超线程(HTT) 。
当核心的子组件不被用于某些types的指令时,这是一个正在玩的游戏,而另一个长时间运行的指令可能正在被执行。 所以CPU可以同时处理两件事情。
较新的核心是更成熟的CPU,所以他们同时在多件事情上工作,但是它们不是物理核心的真正的CPU。 在本文中,您可以阅读有关超线程function与核心物理function限制的更多信息。本文的标题为: 英特尔酷睿i5和酷睿i7:英特尔的主stream万能操作系统 。
您可以使用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
在上面,我的英特尔i5笔记本电脑总共有4个“CPU”
CPU(s):4
其中有2个物理核心
核心(s)每个sockets:2
其中每个可以运行多达2个线程
每个核心的线程数:2
与此同时。 这些线程是核心的逻辑能力。
您可以使用工具lstopo来获取系统地形的实际图表,这有助于了解CPU体系结构的重要意义。

“PU P#”=处理单元处理器#。 这些是CPU内核中的处理单元。 在我的笔记本电脑上(Intel i5),我有两个内核,每个内核有两个处理单元,共有四个,但实际上我只有两个物理内核。
如果你想要进一步细分lstopo输出,看看我在这个U&L Q&A的答案,标题是: 解释lstopo的输出 。