物理CPU与逻辑CPU

基本概念

物理CPU

物理CPU就是计算机上实际配置的CPU个数。
在linux上可以打开cat /proc/cpuinfo 来查看,其中的physical id就是每个物理CPU的ID,你能找到几个physical id就代表你的计算机实际有几个CPU。

可以使用指令来查看物理CPU数:

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

CPU核数

核数就是指CPU上集中的处理数据的cpu核心个数,单核指cpu核心数一个,双核则指的是两个。
通常每个CPU下的核数都是固定的,比如你的计算机有两个物理CPU,每个CPU是双核,那么计算机就是四核的。
linux的/proc/cpuinfo中的core id指的是每个物理CPU下的cpu核的id,能找到几个core id就代表你的计算机有几个核心。

可以使用指令来统计cpu的核心总数:

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

逻辑CPU

操作系统可以使用逻辑CPU来模拟出真实CPU的效果。
在之前没有多核处理器的时候,一个CPU只有一个核,而现在有了多核技术,其效果就好像把多个CPU集中在一个CPU上。
当计算机没有开启超线程时,逻辑CPU的个数就是计算机的核数
而当超线程开启后,逻辑CPU的个数是核数的两倍,这样一来,操作系统可使用的执行资源扩大了一倍,大幅提高了系统的整体性能,此时逻辑cpu=物理CPU个数×每颗核数x2
实际上逻辑CPU的数量就是平时称呼的几核几线程中的线程数量。
在linux的/proc/cpuinfo中逻辑CPU数就是processor的数量

可以使用指令来查看逻辑CPU数:

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

在top命令下,点击"1"可以查看各个逻辑核的占用情况。

查看CPU信息

linux下查看cpu信息主要有两个命令:

cat /proc/cpuinfo

/proc/cpuinfo 用来存储cpu硬件信息。

#cat /proc/cpuinfo

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 79
model name      : Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz
stepping        : 1
microcode       : 0xb000021
cpu MHz         : 2135.625
cache size      : 35840 KB
physical id     : 1
siblings        : 28
core id         : 14
cpu cores       : 14
apicid          : 61
initial apicid  : 61
fpu             : yes
fpu_exception   : yes
cpuid level     : 20
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb cat_l3 cdp_l3 invpcid_single intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm rdt_a rdseed adx smap xsaveopt cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts
bogomips        : 4806.47
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:

各项含义如下:

以上输出项的含义如下:
processor 		:系统中逻辑处理核的编号。对于单核处理器,则课认为是其CPU编号,对于多核处理器则可以是物理核、或者使用超线程技术虚拟的逻辑核
vendor_id 		:CPU制造商      
cpu family 	:CPU产品系列代号
model   		:CPU属于其系列中的哪一代的代号
model name		:CPU属于的名字及其编号、标称主频
stepping  		:CPU属于制作更新版本
cpu MHz   		:CPU的实际使用主频
cache size 		:CPU二级缓存大小
physical id  	:单个CPU的标号
siblings      	:单个CPU逻辑物理核数
core id         :当前物理核在其所处CPU中的编号,这个编号不一定连续
cpu cores    	:该逻辑核所处CPU的物理核数
apicid          :用来区分不同逻辑核的编号,系统中每个逻辑核的此编号必然不同,此编号不一定连续
fpu             :是否具有浮点运算单元(Floating Point Unit)
fpu_exception   :是否支持浮点计算异常
cpuid level  	:执行cpuid指令前,eax寄存器中的值,根据不同的值cpuid指令会返回不同的内容
wp            	:表明当前CPU是否在内核态支持对用户空间的写保护(Write Protection)
flags          	:当前CPU支持的功能
bogomips  		:在系统内核启动时粗略测算的CPU速度(Million Instructions Per Second)
clflush size  	:每次刷新缓存的大小单位
cache_alignment :缓存地址对齐单位
address sizes   :可访问地址空间位数
power management :对能源管理的支持,有以下几个可选支持功能:
  					ts:  temperature sensor
 					fid:   frequency id control
  					vid:  voltage id control
  					ttp:  thermal trip
  					tm:
  					stc:
  					100mhzsteps:
  					hwpstate:

以下参数比较重要:

processor	:逻辑核的个数(逻辑核的id)
physical id	:物理CPU的id
cpu cores	:每个物理CPU的物理核个数
siblings	:每个物理CPU上逻辑CPU个数
core id		:每个CPU上的物理核的id

lscpu

此命令用来显示cpu的相关信息 。
lscpu从sysfs和/proc/cpuinfo收集cpu体系结构信息,命令的输出比较易读 ,命令输出的信息包含cpu数量,线程,核数,套接字和Nom-Uniform Memeor Access(NUMA),缓存等 。
不是所有的列都支持所有的架构,如果指定了不支持的列,那么lscpu将打印列,但不显示数据 。

[root@kdc ~]# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                56
On-line CPU(s) list:   0-55
Thread(s) per core:    2
Core(s) per socket:    14
Socket(s):             2
NUMA node(s):          2
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 79
Model name:            Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz
Stepping:              1
CPU MHz:               1219.593
CPU max MHz:           3300.0000
CPU min MHz:           1200.0000
BogoMIPS:              4800.01
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              35840K
NUMA node0 CPU(s):     0-13,28-41
NUMA node1 CPU(s):     14-27,42-55
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb cat_l3 cdp_l3 invpcid_single intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm rdt_a rdseed adx smap xsaveopt cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts

各项含义如下:

Architecture: #架构 
CPU(s): #逻辑cpu颗数 
Thread(s) per core: #每个核心线程(2为超线程)
Core(s) per socket: #每个cpu插槽核数/每颗物理cpu核数 
CPU socket(s): #cpu插槽数/物理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: #二级缓存
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值