基本概念

如何知道Linux系统有多少核心和处理器

1.使用nproc命令

使用nproc命令可以查看所拥有的CPU逻辑核总数。此种方法为最简单和最短的方法,因为它是coreutils 的一部分而被广泛扩展:

~$ nproc --all

2.使用lscpu命令

lscpu从sysfs和/proc/cpuinfo中收集cpu体系结构信息,命令的输出比较易读 。该命令显示的信息包括,插槽数、CPU数量、线程数 (thread)、物理核心数(core),还有 Non-Uniform Memory Access (NUMA) 节点数、缓存等。

  • CPU(s):指服务器CPU逻辑核总数,即逻辑CPU总数量。
  • Socket(s): 指服务器主板上CPU的插槽数量,一般笔记本只有一个,而服务器可能会有多个。如果有两个插槽,通常称为两路。
  • Core per socket:指每个CPU的物理核数,也就是平常说的几核,比如八核之类
  • thread(s) per core:指的每个CPU物理核的线程数,超线程。

命令输出结果中,存在如下计算公式: CPU(s)=socket*Core*Thread

如下为四路24核48线程示例,其中CPU为AMD Opteron 6234 ,标准主频为2.4GHZ。CPU插槽个数为4;单个CPU物理核数为6;单个CPU逻辑核心数为12。

~$ lscpu
Architecture: x86_64 #架构,这里指64位处理器
CPU op-mode(s): -bit, -bit #运行方式
Byte Order: Little Endian #字节顺序,这里指小端法
CPU(s): 48 #服务器上CPU的逻辑核总数
On-line CPU(s) list: 0-47 #服务器上在线的CPU逻辑核总数(有时因为CPU过热可能会暂停某些CPU)
Thread(s) per core: 2 #每个物理核超线程数(大于1则为超线程)
Core(s) per socket: 6 #每个插槽的物理核数(每颗CPU物理核数)
Socket(s): 4 #服务器上CPU插槽数 (一般为CPU总数)
NUMA node(s): 8 #非统一内存访问节点
Vendor ID: AuthenticAMD #cpu厂商ID
CPU family: 21 #CPU系列
Model: #CPU型号编号
Model name: AMD Opteron 6234 @ .40GHz #CPU型号名称
Stepping: #步进
CPU MHz: 2400.66 #cpu主频
BogoMIPS: 4799.42
Hypervisor vendor: AMD-V #虚拟化架构
Virtualization type: full #cpu支持的虚拟化技术
L1d cache: 16K #一级缓存,dcahce用于缓存数据
L1i cache: 64K #一级缓存,icahce用于缓存指令
L2 cache: 2408K #二级缓存
L3 cache: 6144K #三级缓存,缓存速度上 L1 > L2 > L3 > DDR(内存,理论速度几十g每秒)
NUMA node0 CPU(s): 0,4,8,12,16,20    #逻辑CPU和NUMA节点映射
NUMA node1 CPU(s): 24,18,32,36,40,44
NUMA node2 CPU(s): 1,5,9,13,17,21
NUMA node3 CPU(s): 25,29,33,37,41,45
NUMA node4 CPU(s): 2,6,10,14,18,22
NUMA node5 CPU(s): 26,30,34,38,42,46
NUMA node6 CPU(s): 27,31,35,39,43,47
NUMA node7 CPU(s): 3,7,11,15,19,23

如下为单路12核24线程示例,如下为至强处理器E5系列CPU,型号为Xeon E5-2680 v3 ,标准主频为2.5GHZ。CPU插槽个数为1;单个CPU物理核数为12,单个CPU逻辑核心数为24。

~$ lscpu
Architecture: x86_64 #架构,这里指64位处理器
CPU op-mode(s): -bit, -bit #运行方式
Byte Order: Little Endian #字节顺序,这里指小端法
CPU(s): #服务器上CPU的逻辑核总数
On-line CPU(s) list: 0-23 #服务器上在线的CPU逻辑核总数(有时因为CPU过热可能会暂停某些CPU)
Thread(s) per core: 2 #每个物理核超线程数(大于1则为超线程)
Core(s) per socket: 12 #每个插槽的物理核数(每颗CPU物理核数)
Socket(s): 1 #服务器上CPU插槽数 (CPU总数)
NUMA node(s): #非统一内存访问节点
Vendor ID: GenuineIntel #cpu厂商ID
CPU family: #CPU系列
Model: #CPU型号编号
Model name: Intel(R) Xeon(R) CPU E5- v3 @ .50GHz #CPU型号名称
Stepping: #步进
CPU MHz: 2494.222 #cpu主频
BogoMIPS: 4988.44
Hypervisor vendor: KVM #虚拟化架构
Virtualization type: full #cpu支持的虚拟化技术
L1d cache: 32K #一级缓存,dcahce用于缓存数据
L1i cache: 32K #一级缓存,icahce用于缓存指令
L2 cache: 256K #二级缓存
L3 cache: 30720K #三级缓存,缓存速度上 L1 > L2 > L3 > DDR(内存,理论速度几十g每秒)
NUMA node0 CPU(s): ,......(省略)

3.查看/proc/cpuinfo文件

在Linux系统中,提供了proc文件系统显示系统的软硬件信息。如果想了解系统中CPU的提供商和相关配置信息,则可以通过/proc/cpuinfo文件得到。

基于不同指令集的CPU产生的/proc/cpuinfo文件不一样,基于X86指令集CPU的/proc/cpuinfo文件包含关键内容如下:

  • processor  :系统中逻辑核的唯一标识。(可以查看系统中逻辑核总数)
  • physical id    :当前逻辑核所属CPU唯一标识。系统中一个CPU对应唯一一个physical id。(可以查看系统有CPU数量)
  • model name :当前逻辑核所属CPU型号和标准主频。
  • core id          :当前逻辑核所属的物理核在CPU中的标识ID。同一个CPU的同一个物理核模拟的逻辑核core id相同。
  • cpu cores     :当前逻辑核所属CPU的物理核数量(可以查看单个CPU物理核数量)
  • siblings         :当前逻辑核所属CPU的逻辑核数量(可以查看单个CPU逻辑核数量)
  • flags             :当前CPU支持的功能(如果含有ht表示支持超频;上述siblings和cpu cores不相同则代表已开启超频,相同则代表未开启超频)。

以如下双路16核32线程为例,其中CPU为Intel(R) Xeon(R) E5-2697 v3,标准主频2.6GHz。CPU个数为2;单个CPU物理核数为8;单个CPU逻辑核数为16;支持超频且已开启。

查看当前系统逻辑核总数
~$ cat /proc/cpuinfo| grep -i "processor"| wc -l 查看当前系统CPU数量(必须先sort后uniq)
~$ cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l 查看单个CPU的物理核数量
~$ cat /proc/cpuinfo| grep "cpu cores"| uniq
cpu cores :
查看单个CPU的逻辑核数量(线程数)
cat /proc/cpuinfo | grep -i "siblings"| uniq
siblings :
查看是否支持超线程(显示ht则表示支持超线程)
cat /proc/cpuinfo | grep -i "flag" |grep -wo "ht"|uniq
ht
查看是否开启超线程(cpu cores和siblings一致表示没有超线程)
cat /proc/cpuinfo | grep -e "cpu cores" -e "siblings" | sort | uniq
cpu cores :
siblings :
查看CPU型号
cat /proc/cpuinfo|grep -i "model name"| uniq
Intel(R) Xeon(R) CPU E5- v3 @ .60GHz

如下为双路8核8线程系统示例,其中CPU为Intel(R) Xeon(R) X5355,标准主频2.66GHz。CPU个数为2;单个CPU物理核数为4;单个CPU逻辑核数为4;支持超频但未开启。

processor  :    #系统中逻辑核的唯一标识。
vendor_id  : GenuineIntel #CPU制造商
cpu famil  : #CPU产品系列代号
model    : #CPU属于其系列中的哪一代的代号
model name  : Intel(R) Xeon(R) CPU X5355 @ .66GHz #当前逻辑核所属CPU型号和标准主频。
stepping   : #CPU属于制作更新版本
cpu MHz   : 2666.766 #CPU的实际使用主频
cache size  : KB #CPU二级缓存大小
physical id : #当前逻辑核所属CPU唯一标识。系统中一个CPU对应唯一一个physical id。
siblings   : #当前逻辑核所属CPU的逻辑核数量
core id   : #当前逻辑核所属的物理核在CPU中的标识ID。同一个CPU的同一个物理核模拟的逻辑核core id相同。
cpu cores  : #当前逻辑核所属CPU的物理核数量
fpu     : yes #是否具有浮点运算单元(Floating Point Unit)
fpu_exception: yes #是否支持浮点计算异常
cpuid level : #执行cpuid指令前,eax寄存器中的值,根据不同的值cpuid指令会返回不同的内容
wp      : yes #表明当前CPU是否在内核态支持对用户空间的写保护(Write Protection)
flags    : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall lm constant_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr dca lahf_lm #当前CPU支持的功能(如果含有ht表示支持超频)
bogomips : 5338.26 #在系统内核启动时粗略测算的CPU速度(Million Instructions Per Second)
clflush size : #每次刷新缓存的大小单位
cache_alignment : #缓存地址对齐单位
address sizes : bits physical, bits virtual #可访问地址空间位数
power management: #对能源管理的支持 processor  : 1
...(省略)

参考:/proc/cpuinfo 文件分析(查看CPU信息)

4.使用dmidecode工具

dmidecode 用于获取主机的硬件信息,通常是在不打开计算机机箱的情况下使用该命令来查找硬件详细信息,但是我们需要root权限。关键信息如下:

  • Socket Designation:当前CPU插槽编号
  • Flags:当前CPU是否支持超线程(含HTT说明支持,core count和Thread count不同则说明超线程已开启,相同则超线程未开启)
  • Version:当前CPU型号和标准主频
  • Current Speed: #当前CPU实际主频
  • Core Count:当前CPU物理核数量
  • Core Enabled:当前CPU正在使用的物理核数量
  • Thread Count:当前CPU逻辑核数量(超线程数)

如下为双路16核32线程系统示例,其中CPU为Intel(R) Xeon(R) E5-2620 v4,标准主频2.10GHz。CPU个数为2;单个CPU物理核数为8;单个CPU逻辑核数为16;支持超频且已经开启。

[root@localhost ~]$ dmidecode -t
# dmidecode 2.12-dmifs
SMBIOS 3.0 present.
# SMBIOS implementations newer than version 2.8 are not
# fully supported by this version of dmidecode. Handle 0x006C, DMI type , bytes
Processor Information
Socket Designation: SOCKET
Flags:
FPU (Floating-point unit on-chip)
...(省略)
HTT (Multi-threading)
TM (Thermal monitor supported)
PBE (Pending break enabled)
Version: Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
Current Speed: 2100 MHz
Core Count: 8
Core Enabled: 8
Thread Count: 16 Handle 0x0070, DMI type , bytes
Processor Information
Socket Designation: SOCKET
Flags:
FPU (Floating-point unit on-chip)
...(省略)
HTT (Multi-threading)
TM (Thermal monitor supported)
PBE (Pending break enabled)
Version: Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
Current Speed: 2100 MHz
Core Count: 8
Core Enabled: 8
Thread Count: 16

参考:dmidecode命令详解

【Linux基础】查看硬件信息-CPU的更多相关文章

  1. Linux下查看硬件信息的方法

    用硬件检测程序kuduz探测新硬件:service kudzu start ( or restart) 查看CPU信息:cat /proc/cpuinfo 查看板卡信息:cat /proc/pci 查 ...

  2. Linux系统查看硬件信息神器,比设备管理器好用100倍!

    大家都知道,当我们的 Linux 系统计算机出现问题时,需要对其排除故障,首先需要做的是找出计算机的硬件信息.下面介绍一个简单易用的应用程序--HardInfo,你可以利用它来显示你电脑的每个硬件方面 ...

  3. Linux常见查看硬件信息指令

    CPUlscpu 查看的是CPU的统计信息./proc/cpuinfo 查看每个cpu信息,如每个CPU的型号,主频等. 内存free -m 概要查看内存情况cat /proc/meminfo 查看内 ...

  4. linux 下查看硬件信息(mac,IP地址,硬盘型号,序列号等)

    一.查看网卡mac地址 #安装lshw [root@server ~]# yum install lshw #使用方法 [root@rsync-server ~]# lshw -c network * ...

  5. linux查看硬件信息及驱动设备相关整理

    查看声卡设备:cat /proc/asound/cards 查看USB设备:cat /proc/bus/usb/devices 常用命令整理如下:用硬件检测程序kuduz探测新硬件:service k ...

  6. [转帖]如何在Linux上使用命令行查看硬件信息

    如何在Linux上使用命令行查看硬件信息 时间:2016-01-13   作者:admin 分类:新手入门 阅读:126次 http://embeddedlinux.org.cn/emb-linux/ ...

  7. Linux查看硬件信息(北桥芯片组、南桥、PCI接口、CPU等)

    Linux查看硬件信息(北桥芯片组.南桥.PCI接口.CPU等) Linux查看硬件信息(北桥芯片组.南桥.PCI接口.CPU等) 查看MCH(北桥) 查看ICH(南桥) 查看CPU 查看pci接口设 ...

  8. linux常用查看硬件设备信息命令

    转载:http://blog.chinaunix.net/uid-26782198-id-3242120.html # uname -a               # 查看内核/操作系统/CPU信息 ...

  9. linux查看硬件信息的命令(图文)

    发布:脚本学堂/Linux命令  编辑:JB02   2013-12-23 21:48:18  [大 中 小] 转自:http://www.jbxue.com/LINUXjishu/14996.htm ...

随机推荐

  1. Zara带你快速入门WPF(1)---开篇

    一.引言 我们时常可以看到园友们在讨论WPF与WinForm!它们两个的激情对决,看到大家热情洋溢的评论,搞技术的我也是深受感动. 二.走势 但抱歉的是,我无法预测未来WPF会怎么样.乔布斯说过这么一 ...

  2. WebSocket刨根问底(一)

    年初的时候,写过两篇博客介绍在Spring Boot中如何使用WebSocket发送消息[在Spring Boot框架下使用WebSocket实现消息推送][在Spring Boot框架下使用WebS ...

  3. 环境与工具3:从打字开始 | vim | sublime

    作为程序员,最不爽的一件事是被亲戚叫去修电脑. "喂,怎么跟你们讲,我是写代码的,不是修电脑的!什么?代码是什么?!" 小白:为什么程序员就不能修电脑了? 小程:会不会修都有可能, ...

  4. ldap配置系列三:grafana集成ldap

    ldap配置系列三:grafana集成ldap grafana的简介 grafana是一个类似kibana的东西,是对来自各种数据源的数据进行实时展示的平台,拥有这牛逼的外观.给一个官方的demo体验 ...

  5. Android总结篇系列:Activity中几个主要函数详解

    Activity作为Android系统中四大基本组件之一,包含大量的与其他的各大组件.intent.widget以及系统各项服务等之间的交互的函数.在此,本文主要选取实际项目开发中常用的,但完全理解又 ...

  6. PE知识复习之PE文件空白区添加代码

    PE知识复习之PE文件空白区添加代码 一丶简介 根据上面所讲PE知识.我们已经可以实现我们的一点手段了.比如PE的入口点位置.改为我们的入口位置.并且填写我们的代码.这个就是空白区添加代码. 我们也可 ...

  7. 深度学习入门实战(一):像Prisma一样算法生成梵高风格画像

    本文由云+社区发表 作者:董超 导语:现在人工智能是个大热点,而人工智能离不开机器学习,机器学习中深度学习又是比较热门的方向,本系列文章就从实战出发,介绍下如何使用MXnet进行深度学习~ 既然是实战 ...

  8. Docker最全教程——从理论到实战(四)

    往期内容链接 https://www.cnblogs.com/codelove/p/10030439.html https://www.cnblogs.com/codelove/p/10036608. ...

  9. Django学习笔记(1)——初识Django

    一:Web框架介绍 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以快速帮你开发特定的系统. Web框架是别人已经设定好的一个web网站模板,你学习它 ...

  10. 第17章 社区快速入门和模板 - Identity Server 4 中文文档(v1.0.0)

    IdentityServer组织不维护这些示例.IdentityServer组织愉快地链接到社区模板,但不能对模板做出任何保证.请直接与作者联系. 17.1 各种ASP.NET核心安全样本 https ...