Linux查看物理CPU个数、核数、逻辑CPU个数

# 总核数 = 物理CPU个数 X 每颗物理CPU的核数

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

 

# 查看物理CPU个数

cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

 cpu的各种信息查询_html

cpu的各种信息查询_并行计算_02

# 查看每个物理CPU中core的个数(即核数) #【物理CPU内核的个数】(1个物理CPU里面有几个物理内核)

cat /proc/cpuinfo| grep "cpu cores"| uniq

”cpu cores“指的是一个物理CPU有几个核

 cpu的各种信息查询_超线程技术_03

# 查看逻辑CPU的个数

cat /proc/cpuinfo| grep "processor"| wc -l

 cpu的各种信息查询_html_04

 查看CPU信息(型号)  #【逻辑CPU数量和型号】

cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

cpu的各种信息查询_超线程_05

 cpu的各种信息查询_并行计算_06

 

【物理CPU中逻辑CPU的个数】(如果不使用超线程技术,则此值和物理CPU内核数量一致;不一致则为整倍数)

cat /proc/cpuinfo | grep 'siblings' | uniq

“siblings”指的是一个物理CPU有几个逻辑CPU

cpu的各种信息查询_html_07

【超线程】(分别输出cpu cores和siblings数量,使用超线程则后者翻倍)

cat /proc/cpuinfo | grep -e "cpu cores" -e "siblings" | sort | uniq

cpu的各种信息查询_多线程_08

 

如何判断是否开启超线程

        “超线程(Hyper-Threading,简称“HT”)”技术。超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了CPU的闲置时间,提高的CPU的运行效率。

        超线程技术是在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,理论上要像两颗CPU一样在同一时间执行两个线程,虽然采用超线程技术能同时执行两个线程,但它并不象两个真正的CPU那样,每个CPU都具有独立的资源。当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续。因此超线程的性能并不等于两颗CPU的性能。