在分析该文件输出之前,我们先理解下几个重要的概念:物理CPU、CPU核心数、逻辑CPU。
物理CPU数(physical id):主板上实际插入的cpu数量,不重复的 physical id 有几个就有多少个物理CPU。
CPU核心数(cpu cores) :核心又称为内核,是CPU最重要的组成部分。CPU中心那块隆起的芯片就是核心,这里就是指单个CPU里核心的数量。如双核、四核等
逻辑CPU数 :一般情况下,
逻辑CPU=物理CPU个数×每颗核数 #不支持超线程技术或没有开启次技术
逻辑CPU=物理CPU个数×每颗核数 *2 #表示服务器的CPU支持超线程技术
/proc/cpuinfo的输出内容:
关键参数解析:
processor :逻辑CPU的编号,从0开始排序
vendor_id :CPU制造商
cpu family :CPU产品系列代号
model :CPU属于其系列中的哪一代的代号
model name :CPU属于的名字及其编号、标称主频
stepping :CPU属于制作更新版本
cpu MHz :CPU的实际使用主频
cache size :CPU二级缓存大小
physical id :单个物理CPU的标号,每个id值都代表一个唯一的物理CPU
siblings :单个物理CPU的逻辑CPU数。超频了则 siblings=2*cpu cores;没超频则 siblings=cpu cores
core id :单个内核在其所处CPU中的编号,这个编号不一定连续。(即一个物理CPU一般都是多核的)
cpu cores :单个物理CPU中封装的内核数
快速查询出想要的信息,常用如下:
1)查询物理CPU个数:cat /proc/cpuinfo | grep "physical id" |sort |uniq
2)查询逻辑CPU个数:cat /proc/cpuinfo | grep "processor" | wc -l
3)查询物理CPU的核心数:cat /proc/cpuinfo | grep "cpu cores" | uniq
4)查询物理CPU核心是否启用超线程技术:cat /proc/cpuinfo | grep -e "cpu cores" -e "siblings" | sort | uniq
两者值相等则没开启超线程。