物理CPU
实际Server中插槽上的CPU个数
物理cpu数量,可以数不重复的 physical id 有几个
命令:
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
物理cpu数量,可以数不重复的 physical id 有几个
命令:
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
逻辑CPU
Linux用户对 /proc/cpuinfo 这个文件肯定不陌生. 它是用来存储cpu硬件信息的
信息内容分别列出了processor 0 – n 的规格。这里需要注意,如果你认为n就是真实的cpu数的话, 就大错特错了
一般情况,我们认为一颗cpu可以有多核,加上intel的超线程技术(HT), 可以在逻辑上再分一倍数量的cpu core出来
逻辑CPU数量=物理cpu数量 x cpu cores 这个规格值 x 2(如果支持并开启ht) www.2cto.com
备注:Linux下top查看的CPU也是逻辑CPU个数
命令:
cat /proc/cpuinfo | grep "processor" | wc -l
命令:
cat /proc/cpuinfo | grep "processor" | wc -l
CPU核数
一块CPU上面能处理数据的芯片组的数量、比如现在的i5 760,是双核心四线程的CPU、而 i5 2250 是四核心四线程的CPU
一般来说,物理CPU个数×每颗核数就应该等于逻辑CPU的个数,如果不相等的话,则表示服务器的CPU支持超线程技术
命令:
cat /proc/cpuinfo | grep "cores" | uniq
备注:
1 如果逻辑cpu不等于物理cpu乘以cpu核数,可以断定采用了超线程技术
2 当我们 cat /proc/cpuinfo 时,具有相同core id的CPU是同一个core的超线程,具有相同physical id的CPU是同一个CPU封装的线程或核心
CPU(s): #逻辑cpu颗数
Thread(s) per core: #每个核心线程
Core(s) per socket: #每个cpu插槽核数/每颗物理cpu核数
CPU socket(s): #cpu插槽数
Vendor ID: #cpu厂商ID
CPU family: #cpu系列
Model: #型号
Stepping: #步进
CPU MHz: #cpu主频
Virtualization: #cpu支持的虚拟化技术
L1d cache: #一级缓存(google了下,这具体表示表示cpu的L1数据缓存)
L1i cache: #一级缓存(具体为L1指令缓存)
L2 cache: #二级缓存
命令:
cat /proc/cpuinfo | grep "cores" | uniq
备注:
1 如果逻辑cpu不等于物理cpu乘以cpu核数,可以断定采用了超线程技术
2 当我们 cat /proc/cpuinfo 时,具有相同core id的CPU是同一个core的超线程,具有相同physical id的CPU是同一个CPU封装的线程或核心
查看cpu运行模式
# getconf LONG_BIT
32
(说明当前CPU运行在32bit模式下, 但不代表CPU不支持64bit)
查看cpu是否支持64bit
# cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l
2
(结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bit)
查看cpu信息概要
#lscpu
Architecture: #架构CPU(s): #逻辑cpu颗数
Thread(s) per core: #每个核心线程
Core(s) per socket: #每个cpu插槽核数/每颗物理cpu核数
CPU socket(s): #cpu插槽数
Vendor ID: #cpu厂商ID
CPU family: #cpu系列
Model: #型号
Stepping: #步进
CPU MHz: #cpu主频
Virtualization: #cpu支持的虚拟化技术
L1d cache: #一级缓存(google了下,这具体表示表示cpu的L1数据缓存)
L1i cache: #一级缓存(具体为L1指令缓存)
L2 cache: #二级缓存