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上集成了多级缓存架构,常见的为三级缓存结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LSqNTAg3-1653383615804)(attachment:2707e92e8aa9f8f0db202c7a5f9b478d)]

由上可知:

  • CPU总核数=物理CPU数 × 每颗CPU的核心数
  • 逻辑CPU总数=物理CPU数 × 每颗CPU的核心数 × 超线程数

2、查询命令

cat /proc/cpuinfo # 查看每个cpu所有信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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        # 物理CPU数
cat /proc/cpuinfo | grep "processor" | wc -l                  # 逻辑cpu数
cat /proc/cpuinfo | grep "cpu cores" | uniq                   # 每个物理CPU中core的个数(即核数)

top命令进入后,按1也可查看逻辑CPU

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yzUbL1yb-1653383615806)(attachment:4770945d27c13ebd5e5e20ef54840787)]

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐