如何获得CPU的详细信息

获得cpu详细信息: less /proc/cpuinfo

显示cpu架构信息:lscpu

lscpu

lscpu命令从sysfs、/proc/cpuinfo、或者某些适用于特定架构的库中收集数据。命令的输出会以人类易读的方式展示如下信息:cpu、线程、核心、插槽和Non-Uniform MemoryAccess(NUMA)节点的数量,也有cpu共享缓存,cpu的族号,运行模式,处理指令的速度,大小端,步进等信息。在虚拟环境下,系统架构信息展示映射着客户操作系统的设置,这和物理主机是有明显差异的。在架构上支持检索物理拓扑信息,lscpu命令也显示主机系统中的物理插槽数量,芯片,内核数。

① 物理CPU

实际Server中插槽上的CPU个数

物理cpu数量,可以数不重复的 physical id 有几个

② 逻辑CPU

/proc/cpuinfo 用来存储cpu硬件信息的

信息内容分别列出了processor 0 –processor 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支持超线程技术

示例及说明

Architecture:          x86_64 //架构--这里的64指的位处理器

CPU op-mode(s):        32-bit, 64-bit

Byte Order:            Little Endian//小端法

CPU(s):                56 //cpu数量

On-line CPU(s) list:   0-55 //在线的cpu数量 有些时候为了省电或者过热的时候,某些CPU会停止运行

Thread(s) per core:    2 //每个核心的线程数

Core(s) per socket:    14 //每个插槽可以插入的物理CPU的个数

CPU socket(s):         2 //插槽个数

NUMA node(s):          2

Vendor ID:             GenuineIntel

CPU family:            6

Model:                 85

Stepping:              4

CPU MHz:               2001.000

BogoMIPS:              3994.84//MIPS是每秒百万条指令,Bogo是Bogus(伪)的意思,这里是估算MIPS值

Virtualization:        VT-x

L1d cache:             32K//一级高速缓存 dcache用来存储数据

L1i cache:             32K//一级高速缓存 icache 用来存储指令

L2 cache:              1024K //缓存速度上 L1 > L2 > L3 > DDR(内存) 内存的理论速度在几十g一秒

L3 cache:              19712K

NUMA node0 CPU(s):     0-13,28-41 //0-13,28-41cpu在一个numa节点上

NUMA node1 CPU(s):     14-27,42-55

选项说明: 

-a,--all 同时打印在线和离线 CPU (-e 选项默认值) 此选项只能与选项-e 或-p 一起指定

-b,--online 只打印在线 CPU (-p 选项默认值) 此选项只能与选项-e 或-p 一起指定

-c,--offline 只打印离线 CPU 此选项只能与选项-e 或-p 一起指定。

-e,--extended[=<列表>] 打印扩展的可读格式 (类似表格的形式)

-p,--parse[=<列表>] 打印可解析格式

-s,--sysroot <目录> 以指定目录作为系统根目录收集 lscpu 命令所发出的实例以外的 Linux 实例的 CPU 数据。 指定的目录是要检查的 Linux 实例的系统根。 

-x,--hex 打印十六进制掩码而非 CPU 列表

-y,--显示所有列的物理 id。 除了由 lscpu 分配的逻辑 id 之外 物理 id 是由内核提供的特定于平台的值。无法检索元素的物理 ID 用破折号 (-) 字符显示 此选项不影响 CPU 逻辑编号。 

-h,--help 显示此帮助并退出

-V,--version 输出版本信息并退出

可用的列

CPU 逻辑CPU数量 

CORE 逻辑核心数量 

SOCKET 逻辑(CPU)座数量 

NODE 逻辑NUMA节点数量 

BOOK 逻辑book数

DRAWER 逻辑DRAWER数

CACHE显示了如何在CPU之间共享高速缓存 

POLARIZATION虚拟硬件上的CPU调度模式 

ADDRESScpu物理地址 

CONFIGURED显示管理程序是否分配了CPU

ONLINE显示Linux是否正在使用CPU 

MAXMHZ CPU最大频率 

MINMHZ CPU最小频率

/proc/cpuinfo

在cpuinfo中:

        同一个socket的physical id相同

        cpu cores表示此socket上的core数量

        如果cpu cores = siblings,表明没有开启超线程

        如果cpu cores = 2 * siblings,表明开启了超线程

        相同的physical id,相同的core id,但是不同的processor id,表明是同一个core上的逻辑CPU(超线程)

1、查看系统运行模式:getconf LONG_BIT

2、查看CPU型号: cat /proc/cpuinfo | grep name | sort | uniq

3、查看逻辑CPU个数: cat /proc/cpuinfo | grep "processor" | wc -l

4、查看逻辑CPU个数, 同时查看CPU型号:cat /proc/cpuinfo|grep name|cut-f2-d:|uniq-c

5、查看物理CPU个数: cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l

6、查看每个物理CPU中Core的个数:cat /proc/cpuinfo | grep "cpu cores" | wc -l

7、每个CPU是几核:cat /proc/cpuinfo |grep cores |uniq

8、查看CPU的主频:cat /proc/cpuinfo | grep MHz | uniq

9、查看逻辑CPU个数, 同时查看CPU型号:cat /proc/cpuinfo|grep name|cut-f2-d:|uniq-c

10、是否为超线程?如果有两个逻辑CPU具有相同的”core id”,那么超线程是打开的。

11、每个物理CPU中逻辑CPU(可能是core, threads或both)的个数:cat /proc/cpuinfo | grep "siblings"

你可能感兴趣的:(如何获得CPU的详细信息)