Linux查看CPU核数
1、基础概念
首先我们需要先了解多CPU多核缓存架构,若只看命令直接看第2部分。
物理CPU:物理CPU就是插在主机上的真实的CPU硬件,在Linux下可以数不同的physical id 来确认主机的物理CPU个数。
核心数:我们常常会听说多核处理器,其中的核指的就是核心数。在Linux下可以通过cores来确认主机的物理CPU的核心数。
逻辑CPU:逻辑CPU跟超线程技术有联系,假如物理CPU不支持超线程的,那么逻辑CPU的数量等于核心数的数量;如果物理CPU支持超线程,那么逻辑CPU的数目是核心数数目的两倍。在Linux下可以通过 processors 的数目来确认逻辑CPU的数量。
现代CPU为了提升执行效率,减少CPU与内存的交互,一般在CPU上集成了多级缓存架构,常见的为三级缓存结构。
由上可知:
- CPU总核数=物理CPU数 × 每颗CPU的核心数
- 逻辑CPU总数=物理CPU数 × 每颗CPU的核心数 × 超线程数
2、查询命令
cat /proc/cpuinfo
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DJTHddb6-1653383615806)(attachment:ee78966d27b38feb59842f3e81d8aaa9)]
- 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:对能源管理的支持,有以下几个可选支持功能:
grep 'physical id' /proc/cpuinfo | sort | uniq | wc -l
cat /proc/cpuinfo | grep "processor" | wc -l
cat /proc/cpuinfo | grep "cpu cores" | uniq
top 命令进入后,按1 也可查看逻辑CPU
|