美文网首页
【CPU】CPU 的物理核与逻辑核

【CPU】CPU 的物理核与逻辑核

作者: Bogon | 来源:发表于2023-06-27 00:12 被阅读0次

CPU(Central Processing Unit)是计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元,相当于系统的“大脑”。

当 CPU 过于繁忙,就像“人脑”并发处理过多的事情,会降低做事的效率,严重时甚至会导致崩溃“宕机”。
因此,理解 CPU 的工作原理,合理控制负载,是保障系统稳定持续运行的重要手段。

CPU 的物理核与逻辑核

一台机器可能包含多块 CPU 芯片,多个 CPU 之间通过系统总线通信。

超线程(Hyper-Threading)技术可以让一个物理核在单位时间内同时处理两个线程,变成两个逻辑核。但它不会拥有传统单核 2 倍的处理能力,也不可能提供完整的并行处理能力。

image.png image.png image.png

举个例子,假设一个 CPU 芯片就是一个班级;它有 2 个物理核,也就是 2 个同学,老师让他们分别担任班长和体育委员;过了一段时间,校长要求每个班级还要有学习委员和生活委员,理论上还需要 2 位同学,但是这个班级只有 2 个人,最后老师只能让班长和体育委员兼任。

这样一来,对于不了解的人来说,这个班级有班长、体育委员、学习委员和生活委员 4 个职位,应该有 4 个人,每个职位就是一个逻辑核;但是,实际上这个班级只有 2 位同学,也就是只有 2 个物理核,虽然他们可以做 4 份工作,但是不能把他们当做 4 个人。

image.png

如何查询 CPU 信息?

在 Linux 系统下,可以从 /proc/cpuinfo 文件中读取 CPU 信息,如下图所示:

image.png
# 查看 CPU 个数
$ cat /proc/cpuinfo | grep 'physical id' | sort | uniq | wc -l

# 查看 CPU 物理核数
$ cat /proc/cpuinfo | grep 'cpu cores' | sort | uniq

# 查看 CPU 逻辑核数
$ cat /proc/cpuinfo | grep 'siblings' | sort | uniq
$ lscpu
Architecture:            x86_64
  CPU op-mode(s):        32-bit, 64-bit
  Address sizes:         42 bits physical, 48 bits virtual
  Byte Order:            Little Endian
CPU(s):                  8
  On-line CPU(s) list:   0-7
Vendor ID:               GenuineIntel
  Model name:            Intel(R) Xeon(R) Gold 6278C CPU @ 2.60GHz
    CPU family:          6
    Model:               85
    Thread(s) per core:  2
    Core(s) per socket:  4
    Socket(s):           1
    Stepping:            7
    BogoMIPS:            5200.00
    Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmu
                         lqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced fsgsbase tsc_adjust b
                         mi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 arat avx512_vnni md_clear flush_l1d arch_capabilities
Virtualization features:
  Hypervisor vendor:     KVM
  Virtualization type:   full
Caches (sum of all):
  L1d:                   128 KiB (4 instances)
  L1i:                   128 KiB (4 instances)
  L2:                    4 MiB (4 instances)
  L3:                    35.8 MiB (1 instance)
NUMA:
  NUMA node(s):          1
  NUMA node0 CPU(s):     0-7
Vulnerabilities:
  Itlb multihit:         KVM: Mitigation: VMX unsupported
  L1tf:                  Not affected
  Mds:                   Not affected
  Meltdown:              Not affected
  Spec store bypass:     Mitigation; Speculative Store Bypass disabled via prctl and seccomp
  Spectre v1:            Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2:            Mitigation; Enhanced IBRS, IBPB conditional, RSB filling
  Srbds:                 Not affected
  Tsx async abort:       Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknown

1. 架构(Architecture):x86_64,表示使用的是64位的x86架构。

2. CPU操作模式(CPU op-mode):支持32位和64位操作模式。

3. 地址大小(Address sizes):物理地址位数为42位,虚拟地址位数为48位。

4. 字节序(Byte Order):小端序(Little Endian)。

5. CPU数量(CPU(s)):共有8个CPU。

6. 在线CPU列表(On-line CPU(s) list):CPU的编号范围为0-7。

7. 厂商ID(Vendor ID):GenuineIntel,表示CPU是英特尔的。

8. 型号名称(Model name):Intel(R) Xeon(R) Gold 6278C CPU @ 2.60GHz,表示CPU的型号和主频。

9. CPU家族(CPU family):6,表示CPU属于第6代家族。

10. 模型(Model):85,表示CPU的具体型号。

11. 每个核心的线程数(Thread(s) per core):2,表示每个CPU核心可以同时运行2个线程。

12. 每个插槽的核心数(Core(s) per socket):4,表示每个CPU插槽有4个核心。

13. 插槽数量(Socket(s)):1,表示系统中只有一个CPU插槽。

14. 步进(Stepping):7,表示CPU的步进版本。

15. BogoMIPS:5200.00,是一个用于估算CPU速度的指标。

16. 标志(Flags):列出了CPU支持的各种特性和扩展指令集。

17. 虚拟化特性(Virtualization features):KVM,表示使用的是KVM虚拟化技术。

18. 缓存(Caches):列出了各级缓存的大小。

19. NUMA:表示非一致性内存访问(NUMA)的相关信息,包括NUMA节点数和每个节点的CPU范围。

20. 漏洞(Vulnerabilities):列出了CPU可能存在的一些安全漏洞和对应的缓解措施。

总结:该输出提供了关于系统中CPU的详细信息,包括架构、型号、核心数、线程数、缓存大小等。同时还提供了有关虚拟化、NUMA和安全漏洞的信息。

参考

聊聊CPU的发展历程之单核、多核、超线程
https://mp.weixin.qq.com/s/JzLUgh47zAT5sD9dieNdog

超线程/SMT多线程技术有什么用?
https://www.expreview.com/56674.html

CPU 平均负载为多少更合理?
https://blog.csdn.net/Dongguabai/article/details/113846330

服务器CPU负载过高,如何定位问题
https://www.jianshu.com/p/45c6bcb85934

如何正确理解 CPU 使用率和平均负载的关系?
https://blog.csdn.net/wwwwww33/article/details/108378406

相关文章

网友评论

      本文标题:【CPU】CPU 的物理核与逻辑核

      本文链接:https://www.haomeiwen.com/subject/hlwiydtx.html