问题:
我想问一下是什么原因导致处理器数量有两个不同的信息。请参阅下面的报告。
系统对话框:
如果打开系统设置/详细信息选项卡(与注销轮盘和关于此计算机相同),我会收到以下报告:
处理器:Intel® Xeon(R) CPU E5-2680 v3 @ 2.50GHz × 16
CLI:cpuinfo(1)
尽管如此,使用命令行命令,我得到以下内容:
$ cat /proc/cpuinfo | grep processor | wc -l
24
我倾向于相信命令行报告——但什么可能导致它们不同?
FIY:系统监视器还显示 24 个核心的统计数据
CLI:cpuinfo(2)
根据评论中的建议,我还运行了以下命令行
$ cat /proc/cpuinfo |grep 'core id'|sort|uniq|wc -l
12
所以现在我甚至有了第三个结果!这个结果很有意义,因为机器可能有 12 个内核和 2 个处理器 - 但系统对话框怎么可能计数 16 个呢?
答案1
我认为 CPU 核心与对称多处理 (对称多处理器)。
英特尔酷睿2双核处理器显示物理布局的图表。
目录中保存的是系统的 CPU 信息/proc
,软件可以很整齐的展示出来lscpu
,如下图,我举了三个例子来对比:一台有 2 个 CPU 核心的台式机,一台有 48 个 CPU 核心的服务器,一台有 4 个 CPU 核心的树莓派。
台式电脑 用户@主机名:~$ lscpu 架构:x86_64 CPU 操作模式:32 位、64 位 字节顺序:小端 CPU: 2 在线 CPU 列表:0,1 每核线程数:1 每插槽核心数:2 插座:1 NUMA 节点:1 供应商 ID:GenuineIntel CPU 系列:6 型号:60 步进:3 CPU频率:800.000 保费:5586.94 虚拟化:VT-x L1d 缓存:32K L1i 缓存:32K L2 缓存: 256K L3缓存:2048K NUMA 节点 0 CPU:0,1 服务器 用户@主机名%lscpu 架构:x86_64 CPU 操作模式:32 位、64 位 字节顺序:小端 CPU:48 在线 CPU 列表:0-47 每核线程数:2 每插槽核心数:12 插座:2 NUMA 节点:1 供应商 ID:GenuineIntel CPU 系列:6 型号:62 步进:4 CPU频率:1799.724 保价MIPS:3600.09 虚拟化:VT-x L1d 缓存:32K L1i 缓存:32K L2 缓存: 256K L3缓存:30720K NUMA 节点 0 CPU:0-47 树莓派 jeff@clear-pi:~$ lscpu 架构:armv7l 字节顺序:小端 CPU:4 在线 CPU 列表:0-3 每核线程数:1 每插槽核心数:4 插座:1 型号名称:ARMv7 处理器修订版 5 (v7l) CPU 最大 MHz:900.0000 CPU 最小 MHz:600.0000
服务器总数为 48,但必须乘以 3 个数字才能达到这个数字:2*12*2=48. 通过这种方式比较,CPU 制造商安排的差异显而易见。
桌面 [每核线程数:1] * [每插槽核数:1] * [插槽数:1] = 2 服务器 [每核线程数:2] * [每插槽核数:12] * [插槽数:2] = 48 树莓派 [每核线程数:1] * [每插槽核数:4] * [插槽数:1] = 4
lshw
有更多的系统信息,但在这里不太有用。
台式电脑 用户@主机名:~$ sudo lshw *-中央处理器 描述:中央处理器 产品:英特尔(R) 赛扬(R) CPU G1840 @ 2.80GHz 供应商:英特尔公司 物理 ID:9 总线信息:cpu@0 版本:Intel(R) Celeron(R) CPU G1840 @ 2.80GHz 插槽:SOCKET 0 尺寸:2800MHz 容量:3800MHz 宽度:64 位 时钟:100MHz 服务器 用户@主机名%sudo lshw *-CPU:0 描述:中央处理器 产品:Intel(R) Xeon(R) CPU E5-2651 v2 @ 1.80GHz 供应商:英特尔公司 物理 ID:4 总线信息:cpu@0 版本:Intel(R) Xeon(R) CPU E5-2651 v2 @ 1.80GHz 插槽:SOCKET 0 尺寸:1800MHz 容量:4GHz 宽度:64 位 时钟:100MHz 树莓派 用户@主机名:~ $ sudo lshw *-CPU:0 描述:中央处理器 产品:中央处理器 物理 ID:0 总线信息:cpu@0 尺寸:900MHz 容量:900MHz 功能:cpufreq
最后,这种方法在我使用的几种不同的 Linux/UNIX 操作系统上都有效,因为 lscpu 不可用。这是问题和评论中建议的变体,但我更喜欢简写命令和简单输出。
user@hostname:~ $ grep -c ^processor /proc/cpuinfo
4
参考:https://stackoverflow.com/questions/19225859/difference-between-core-and-processor