博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux cpu 详解
阅读量:4299 次
发布时间:2019-05-27

本文共 2674 字,大约阅读时间需要 8 分钟。

Linux cpu 详解

一、写在前面

这篇文章主要介绍了,Linux 系统通过cat /proc/cpuinfo 文件来查阅相关CPU 信息,例如:几个物理CPU/几核/几线程,目前这样的相关信息在网上有比较多的介绍,这里根据自己的实际操作验证,从中学习记录,方便后续查询。

邮箱地址:jpzhang.ht@gmail.com

个人博客:
CSDN博客:

二、检查CPU信息相关命令

1)、概念:

* 1、物理CPU:实际服务器中插槽上的CPU个数,物理cpu数量,可以数不重复的”physical id”有几个来表示。
* 2、逻辑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个数

1)、检查CPU信息相关命令

  • CPU核数

    一块CPU上面能处理数据的芯片组的数量、比如现在的i5 760,是双核心四线程的CPU、而 i5 2250 是四核心四线程的CPU
    一般来说,物理CPU个数×每颗核数就应该等于逻辑CPU的个数,如果不相等的话,则表示服务器的CPU支持超线程技术

  • 逻辑CPU个数

cat /proc/cpuinfo | grep "processor" | wc -l
  • 物理CPU个数:
cat /proc/cpuinfo | grep "physical id" | sort -u | wc -l
  • 每个物理CPU中Core的个数:
cat /proc/cpuinfo | grep "cpu cores" | uniq | awk -F: '{print $2}'
  • 查看core id的数量,即为所有物理CPU上的core的个数:
cat /proc/cpuinfo | grep "core id" | uniq |  wc -l
  • 判断是否超线程:

    如果有两个逻辑CPU具有相同的”core id”,那么超线程是打开的。或者siblings数目比cpu cores数目大。

  • 每个物理CPU中逻辑CPU(可能是core, threads或both)的个数:

cat /proc/cpuinfo | grep "siblings"

三、/proc/cpuinfo文件解释

/proc/cpuinfo 文件包含系统上每个处理器的数据段落。/proc/cpuinfo 描述中有 6 个条目适用于多内核和超线程(HT)技术检查:processor, vendor id, physical id, siblings, core id 和 cpu cores。

/proc/cpuinfo:

processor 条目包括这一逻辑处理器的唯一标识符。
physical id 条目包括每个物理封装的唯一标识符。
core id 条目保存每个内核的唯一标识符。
siblings 条目列出了位于相同物理封装中的逻辑处理器的数量。
cpu cores 条目包含位于相同物理封装中的内核数量。
如果处理器为英特尔处理器,则 vendor id 条目中的字符串是 GenuineIntel。

  • 1、拥有相同 physical id 的所有逻辑处理器共享同一个物理插座。每个 physical id 代表一个唯一的物理封装。
  • 2、Siblings 表示位于这一物理封装上的逻辑处理器的数量。它们可能支持也可能不支持超线程(HT)技术。
  • 3、每个 core id 均代表一个唯一的处理器内核。所有带有相同 core id 的逻辑处理器均位于同一个处理器内核上。
  • 4、如果有一个以上逻辑处理器拥有相同的 core id 和 physical id,则说明系统支持超线程(HT)技术。
  • 5、如果有两个或两个以上的逻辑处理器拥有相同的 physical id,但是 core id 不同,则说明这是一个多内核处理器。cpu cores 条目也可以表示是否支持多内核。

判断CPU是否64位,检查cpuinfo中的flags区段,看是否有lm标识。

Are the processors 64-bit?
A 64-bit processor will have lm (“long mode”) in the flags section of cpuinfo. A 32-bit processor will not.

还有一个命令可以总揽系统CPU 概况:lscpu

root@compute:~# lscpuArchitecture:          x86_64CPU op-mode(s):        32-bit, 64-bitByte Order:            Little EndianCPU(s):                4On-line CPU(s) list:   0-3Thread(s) per core:    1Core(s) per socket:    4Socket(s):             1NUMA node(s):          1Vendor ID:             GenuineIntelCPU family:            6Model:                 60Stepping:              3CPU MHz:               3200.000BogoMIPS:              6400.20Virtualization:        VT-xL1d cache:             32KL1i cache:             32KL2 cache:              256KL3 cache:              6144KNUMA node0 CPU(s):     0-3

socket就是主板上插cpu的槽的数目,也就是可以插入的物理CPU的个数。

core就是我们平时说的“核“,每个物理CPU可以双核,四核等等。
thread就是每个core的硬件线程数,即超线程

转载地址:http://qvxws.baihongyu.com/

你可能感兴趣的文章
Docker面试题(二)
查看>>
一、redis面试题及答案
查看>>
消息队列2
查看>>
消息列队3
查看>>
C#中发送消息给指定的窗口到消息循环
查看>>
mysql 之 一个库中所有表复制到另一个数据库中的方法和工具
查看>>
dos下操作mysql数据库常用命令
查看>>
C# 中IntPtr 与 string,数组互转
查看>>
mysql 8.0.19 winx64安装及修改初始密码
查看>>
mysql安装问题汇总
查看>>
mysql数据库迁移到另一台电脑上
查看>>
winform中UI设计分辨率问题
查看>>
QT之在QML中使用C++类和对象的两种方式
查看>>
Qt消息机制与window程序消息的对比分析
查看>>
QT中处理不同Windows(窗体中的)消息
查看>>
Qt自定义事件实现及子线程向主线程传送事件消息
查看>>
Qt消息机制和事件概述(一)
查看>>
c#winform控件过多卡顿问题解决方案
查看>>
c#中将WM_CLOSE消息发送到没有窗口的进程的方法
查看>>
C# 重写WndProc及发送消息
查看>>