首页 运维 网络学院 查看内容

Linux下判断cpu物理个数,几核,是超线程还是多核心

2013-11-15 11:58 941 0

摘要: 今天查看一个HP DL580 机器, 发现 /proc/cpuinfo 上有 64 条记录(0~63), 即 64 核, 但是physical_id 是 0~3 ,表示有 4 颗实体的CPU , 然而...
关键词: CPU 线程 处理器 物理 内核 逻辑 physical siblings 封装 cpuinfo

今天查看一个HP DL580 机器, 发现 /proc/cpuinfo 上有 64 条记录(0~63), 即 64 核, 但是physical_id 是 0~3 ,表示有 4 颗实体的CPU , 然而cpu cores = 8 , 算出来应该是 4*8=32核 , 看到的却是64, 后来发现siblings = 16表示超线程 (16/8=2 >1) . 所以是 4*16=64 核 。siblings : 16core id : 11cpu cores : 8相关资料:-----------------------------------------------------目前intel新的多核心cpu都会在后面显示具体的型号数字,例如:model name : Intel(R) Xeon(R) CPU X3230 @ 2.66GHz说明是 Xeon 3230的cpu,而不显示型号的具体数字的,大部分都是奔腾的CPU。很多主机商都骗人,用奔腾的cpu,却说是多核心的CPU。探针看到的数据:类型:Intel(R) Xeon(TM) CPU 2.80GHz 缓存:1024 KB类型:Intel(R) Xeon(TM) CPU 2.80GHz 缓存:1024 KB类型:Intel(R) Xeon(TM) CPU 2.80GHz 缓存:1024 KB类型:Intel(R) Xeon(TM) CPU 2.80GHz 缓存:1024 KB没有具体的型号,缓存1M,一般都是奔腾系列的cpu,或者是intel假双核的cpu,具体要根据上面说的去判断。新的多核心cpu都能看到具体的型号。另外多核心的xeon的CPU,一般主频都不高,达到2.8和3.0的只有很少的几个高端CPU型号,一般主机商不会用这么好的。一些操作系统的最新版本已经更新了 /proc/cpuinfo 文件,以支持多路平台。如果您的系统中的 /proc/cpuinfo 文件能够正确地反映出处理器信息,那么就不需要执行上述步骤。反之,可采用本文中的信息进行解释。/proc/cpuinfo 文件包含系统上每个处理器的数据段落。/proc/cpuinfo 描述中有 6 个条目适用于多内核和超线程(HT)技术检查:vendor id, processor, physical id, core id, siblings 和 cpu cores。vendor id 如果处理器为英特尔处理器,则字符串是 GenuineIntel。processor 包括这一逻辑处理器的唯一标识符。physical id 包括每个物理封装的唯一标识符。core id 保存每个内核的唯一标识符。siblings 列出了位于相同物理封装中的逻辑处理器的数量。cpu cores 包含位于相同物理封装中的内核数量。1. 拥有相同 physical id 的所有逻辑处理器共享同一个物理插座,每个 physical id 代表一个唯一的物理封装。2. Siblings 表示位于这一物理封装上的逻辑处理器的数量,它们可能支持也可能不支持超线程(HT)技术。3. 每个 core id 均代表一个唯一的处理器内核,所有带有相同 core id 的逻辑处理器均位于同一个处理器内核上。简单的说:“siblings”指的是一个物理CPU有几个逻辑CPU,”cpu cores“指的是一个物理CPU有几个核。4. 如果有一个以上逻辑处理器拥有相同的 core id 和 physical id,则说明系统支持超线程(HT)技术。5. 如果有两个或两个以上的逻辑处理器拥有相同的 physical id,但是 core id 不同,则说明这是一个多内核处理器。cpu cores 条目也可以表示是否支持多内核。不应该按照flags里是否有 ht 标志来判断系统是否有超线程能力,而应该:如果“siblings”和“cpu cores”一致,则说明不支持超线程,或者超线程未打开。如果“siblings”是“cpu cores”的两倍,则说明支持超线程,并且超线程已打开。例如,如果系统包含两个物理封装,每个封装中又包含两个支持超线程(HT)技术的处理器内核,则 /proc/cpuinfo 文件将包含此数据。(注:数据并不在表格中。)processor 0 4 2 6 1 5 3 7physical id 0 0 0 0 1 1 1 1core id 0 0 1 1 2 2 3 3siblings 4 4 4 4 4 4 4 4cpu cores 2 2 2 2 2 2 2 2此例说明:1)一个物理封装有四个内核,即有4个逻辑处理器。2)一个内核上有2个不同的processer,即系统支持超线程技术(HT)。3)cpu cores条目为2,而siblings的数目却是4,故支持超线程技术(4/2=2>1)。4)值得注意的是physical id和core id的编号可能是也可能不是连续的。系统上有两个物理封装并不罕见,而且physical id可能等于0和3。可通过如下方法查询CPU情况:1. 逻辑CPU个数:# cat /proc/cpuinfo | grep “processor” | wc -l2. 物理CPU个数:# cat /proc/cpuinfo | grep “physical id” | sort | uniq | wc -l3. 每个物理CPU中Core的个数:# cat /proc/cpuinfo | grep “cpu cores” | wc -l是否为超线程?如果有两个逻辑CPU具有相同的”core id”,那么超线程是打开的。4. 每个物理CPU中逻辑CPU(可能是core, threads或both)的个数:# cat /proc/cpuinfo | grep “siblings”
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部