# 总核数 = 物理CPU个数 X 每颗物理CPU的核数
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数

如何判断是否开启超线程
        “超线程(Hyper-Threading,简称“HT”)”技术。超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了CPU的闲置时间,提高的CPU的运行效率。
        超线程技术是在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,理论上要像两颗CPU一样在同一时间执行两个线程,虽然采用超线程技术能同时执行两个线程,但它并不象两个真正的CPU那样,每个CPU都具有独立的资源。当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续。因此超线程的性能并不等于两颗CPU的性能。

如何查看有几个处理器,是否多核?是否超线程?

可通过如下方法查询CPU情况:
1. 逻辑CPU个数:
grep -c processor /proc/cpuinfo
2. 物理CPU个数:
grep 'physical id' /proc/cpuinfo |sort -u|wc -l

“siblings”指的是一个物理CPU有几个逻辑CPU
grep 'siblings' /proc/cpuinf

”cpu cores“指的是一个物理CPU有几个核
grep 'cpu cores' /proc/cpuinfo

如果“siblings”和“cpu cores”一致,则说明不支持超线程,或者超线程未打开。
如果“siblings”是“cpu cores”的两倍,则说明支持超线程,并且超线程已打开。
#一般情况下,多核超线程,每个核有两个逻辑的处理单元,两个线程共同分享一个核的资源

是否为超线程?
如果有两个逻辑CPU具有相同的”core id”,那么超线程是打开的。

Linux服务器中cpu core processor的查看

$ grep -E 'processor|core id' /proc/cpuinfo
processor    : 0
core id        : 0
processor    : 1
core id        : 0
processor    : 2
core id        : 1
processor    : 3
core id        : 1
processor    : 4
core id        : 2
processor    : 5
core id        : 2
processor    : 6
core id        : 3
processor    : 7
core id        : 3
processor    : 8
core id        : 4
processor    : 9
core id        : 4
processor    : 10
core id        : 5
processor    : 11
core id        : 5
processor    : 12
core id        : 6
processor    : 13
core id        : 6
processor    : 14
core id        : 7
processor    : 15
core id        : 7
processor    : 16
core id        : 8
processor    : 17
core id        : 8
processor    : 18
core id        : 9
processor    : 19
core id        : 9
processor    : 20
core id        : 10
processor    : 21
core id        : 10
processor    : 22
core id        : 11
processor    : 23
core id        : 11

通以上命令可以看到

core id重复, 说明开启了超线程。

后者通过命令
dmidecode
在Linux系统下获取有关硬件方面的信息
dmidecode -t 4 | grep -E 'Socket Designation|Count'
    Socket Designation: CPU 0
    Core Count: 12
    Thread Count: 2
#可以得出:有一个物理CPU(该CPU的插槽标识为CPU 0),这个物理CPU有12核心,每个核心有2个超线程。
或者:
$ lscpu | grep -E '^Thread|^Core|^Socket|^CPU\('
CPU(s):                24
Thread(s) per core:    2
Core(s) per socket:    12
Socket(s):             1

可以得到:
CPU(s) 为超线程数
Socket(s) 为物理cpu数
Core(s)  per socket:   每颗物理cpu有12核
Thread(s) per core: 每个核有2个超线程