在linux操作系统中,CPU的信息在启动的过程中被装载到虚拟目录/proc下的cpuinfo文件中,我们可以通过 cat /proc/cpuinfo 查看一下:
上图是本人电脑的CPU信息,下面我们来分析其中几个比较重要的指标:
- processor 逻辑处理器的id。
- physical id 物理封装的处理器的id。
- core id 每个核心的id。
- cpu cores 位于相同物理封装的处理器中的内核数量。
- siblings 位于相同物理封装的处理器中的逻辑处理器的数量。
我们返回去看上图,我的physical id 都为0,说明我只有一个物理处理器;
我的processor有两个不同的编号,并且同属于一个physical id,同时cpu cores 的值为2,这也就说明了我的CPU是双核心的,并且每个核心只有一个逻辑处理器。
为了加深大家对这几个参数的理解,我们再来看另外一张图片,这是一台工作站的服务器:
在这个服务器上,'cpu cores' 为4,physical id 有两个,core id有8个,siblings的值为8,总共有16个processor。
所以这个服务器主机的CPU为2个物理封装的处理器,每个处理器又有4个处理核心(cpu cores),每个cpu core有可划分为2个逻辑处理器(超线程技术),因此,每个物理处理器上有8个逻辑处理器,总共就有16个processor。这回明白了吧。大体的结 构如下图:
指令总结:
查看所有的cpu的信息:$cat /proc/cpuinfo
查看物理CPU处理器的id信息:$cat /proc/cpuinfo | grep "physical id" | sort -n | uniq
查看物理CPU处理器的个数:$cat /proc/cpuinfo | grep "physical id" | sort -n | uniq | wc -l
查看每个物理CPU处理器的core信息:$cat /proc/cpuinfo | grep "cpu cores" | sort -n | uniq
这样就知道物理CPU处理器的个数,以及每个物理CPU的core的个数
查看逻辑CPU处理器的id信息:$cat /proc/cpuinfo | grep "processor"
查看逻辑CPU处理器的总个数:$cat /proc/cpuinfo | grep "processor" | wc -l
查看每个物理CPU处理器对应的逻辑CPU处理器的个数:$cat /proc/cpuinfo | grep "sibling" | sort -n | uniq