千家信息网

Linux下怎么区分物理CPU、逻辑CPU和CPU核数

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,这篇文章主要讲解了"Linux下怎么区分物理CPU、逻辑CPU和CPU核数",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Linux下怎么区分物理CPU
千家信息网最后更新 2024年09月22日Linux下怎么区分物理CPU、逻辑CPU和CPU核数

这篇文章主要讲解了"Linux下怎么区分物理CPU、逻辑CPU和CPU核数",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Linux下怎么区分物理CPU、逻辑CPU和CPU核数"吧!

㈠ 概念
① 物理CPU
实际Server中插槽上的CPU个数
物理cpu数量,可以数不重复的 physical id 有几个

② 逻辑CPU
Linux用户对 /proc/cpuinfo 这个文件肯定不陌生. 它是用来存储cpu硬件信息的
信息内容分别列出了processor 0 - n 的规格。这里需要注意,如果你认为n就是真实的cpu数的话, 就大错特错了
一般情况,我们认为一颗cpu可以有多核,加上intel的超线程技术(HT), 可以在逻辑上再分一倍数量的cpu core出来
逻辑CPU数量=物理cpu数量 x cpu cores 这个规格值 x 2(如果支持并开启ht)
备注一下:Linux下top查看的CPU也是逻辑CPU个数

③ CPU核数
一块CPU上面能处理数据的芯片组的数量、比如现在的i5 760,是双核心四线程的CPU、而 i5 2250 是四核心四线程的CPU

一般来说,物理CPU个数×每颗核数就应该等于逻辑CPU的个数,如果不相等的话,则表示服务器的CPU支持超线程技术

㈡ 查看CPU信息
当我们 cat /proc/cpuinfo 时,
具有相同core id的CPU是同一个core的超线程
具有相同physical id的CPU是同一个CPU封装的线程或核心


㈢ 下面举例说明
① 查看物理CPU的个数
cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l

② 查看逻辑CPU的个数
cat /proc/cpuinfo |grep "processor"|wc -l

③ 查看CPU是几核
cat /proc/cpuinfo |grep "cores"|uniq


==================补充================================================
number of processors 单个cpu核数
参考:http://www.aixchina.net/Question/13399

=======================补充==================================================
AWR中的CPUs, Cores, Sockets
http://blog.itpub.net/35489/viewspace-742337/

NUM_CPUS 8 表示逻辑CPU数量(Oracle数据库中表现出来的初始参数 cpu_count)
NUM_CPU_CORES 8 对应CPU Cores数量
NUM_CPU_SOCKETS 2 CPU Sockets数量

- stat_name = NUM_CPUS. This value should correspond to the number of logical CPUs. For systems with CMT or
hyper-threaded processors, this value should correspond to the total number of hardware threads. For systems with
multi-core processors, this value should correspond to the total number of hardware threads across all cores in the
system. NUM_CPUS should be greater than or equal to NUM_CPU_CORES and NUM_CPU_SOCKETS.
对应逻辑CPU数量,
对于CPU多线程或超线程,值应该指hardware threads总数。
对于多核处理器,值应该对应于系统中所有核的hardware threads总数。
NUM_CPUS值大于等于NUM_CPU_CORES and NUM_CPU_SOCKETS
那么也就是说,如果CPU物理个数为2,那么Sockets=2 (初略理解为插槽) ? 每颗 CPU 采用4核,每核4线程 , 那么处理器(CMT)
能够支持16个并发执行的硬线程, 对应到 NUM_CPUS 是不是等于 2 * 4 * 4 = 32 (根据第二句红色语句) ? NUM_CPU_CORES=2*4 =8 ?

感谢各位的阅读,以上就是"Linux下怎么区分物理CPU、逻辑CPU和CPU核数"的内容了,经过本文的学习后,相信大家对Linux下怎么区分物理CPU、逻辑CPU和CPU核数这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

0