前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >14-Linux 介绍与工具使用(十一:cpu、核心、线程、内存)

14-Linux 介绍与工具使用(十一:cpu、核心、线程、内存)

作者头像
北野茶缸子
发布2021-12-17 09:31:36
4370
发布2021-12-17 09:31:36
举报
文章被收录于专栏:北野茶缸子的专栏

linux 的cpu 信息及线程相关的信息储存于/proc/cpuinfo 文件中,我们可以根据名称查看。参考:https://www.cnblogs.com/yoyoblogs/p/11289981.html参考:https://baijiahao.baidu.com/s?id=1601592414830352193&wfr=spider&for=pc

背景知识

参考:https://zhuanlan.zhihu.com/p/86855590

物理 cpu 数(physical cpu)

指主板上实际插入的 cpu 硬件个数(socket)。(但是这一概念经常被泛泛的说成是 cpu 数,这很容易导致与 core 数,processor 数等概念混淆,所以此处强调是物理 cpu 数)。由于在主板上引入多个 cpu 插槽需要更复杂的硬件支持(连接不同插槽的 cpu 到内存和其他资源),通常只会在服务器上才这样做。在家用电脑中,一般主板上只会有一个 cpu 插槽。

主频 /Hz

这个表示的是CPU 内核心的时钟频率,我们可以将其理解为运算速度。

类比于人类,可以理解为,主频越高,力量越大。

核心(core)

一开始,每个物理 cpu 上只有一个核心(a single core),对操作系统而言,也就是同一时刻只能运行一个进程/线程。为了提高性能,cpu 厂商开始在单个物理 cpu 上增加核心(实实在在的硬件存在),也就出现了双核心 cpu(dual-core cpu)以及多核心 cpu(multiple cores),这样一个双核心 cpu 就是同一时刻能够运行两个进程/线程的。

线程 (thread)

同时多线程技术(simultaneous multithreading)和 超线程技术(hyper–threading/HT)

本质一样,是为了提高单个 core 同一时刻能够执行的多线程数的技术(充分利用单个 core 的计算能力,尽量让其“一刻也不得闲”)。simultaneous multithreading 缩写是 SMT,AMD 和其他 cpu 厂商的称呼。hyper–threading 是 Intel 的称呼,可以认为 hyper–threading 是 SMT 的一种具体技术实现。在类似技术下,产生了如下等价术语:

  • 虚拟 core:virtual core
  • 逻辑 processer:logical processor
  • 线程:thread

所以可以这样说:某款采用 SMT 技术的 4 核心 AMD cpu 提供了 8 线程同时执行的能力;某款采用 HT 技术的 2 核心 Intel cpu 提供了 4 线程同时执行的能力。

查看信息

  • cpu个数

通过physical id 记录:

代码语言:javascript
复制
grep 'physical id' /proc/cpuinfo | sort -u
# -u 相当于uniq 处理

或者直接显示计数:

代码语言:javascript
复制
grep 'physical id' /proc/cpuinfo | sort -u | wc -l
2
  • 核心数

我们可以直接查看每个物理cpu 的:

代码语言:javascript
复制
$ grep 'cpu cores' /proc/cpuinfo | sort -u
cpu cores : 24

看一下核心中的记录情况:

代码语言:javascript
复制
$ grep 'core id' /proc/cpuinfo
core id  : 0
core id  : 1
core id  : 2
core id  : 3
core id  : 4
core id  : 5
core id  : 6
core id  : 8
core id  : 10
core id  : 11
core id  : 12
core id  : 13
core id  : 16
core id  : 17
core id  : 18
core id  : 19
core id  : 20
core id  : 21
core id  : 24
core id  : 25
core id  : 26
core id  : 27
core id  : 28
core id  : 29
core id  : 0
core id  : 1
core id  : 2
core id  : 3
core id  : 4
core id  : 5
core id  : 6
core id  : 8
core id  : 9
core id  : 10
core id  : 11
core id  : 12
core id  : 13
core id  : 16
core id  : 17
core id  : 18
core id  : 19
core id  : 20
core id  : 21
core id  : 25
core id  : 26
core id  : 27
core id  : 28
core id  : 29
core id  : 0
core id  : 1
core id  : 2
core id  : 3
core id  : 4
core id  : 5
core id  : 6
core id  : 8
core id  : 10
core id  : 11
core id  : 12
core id  : 13
core id  : 16
core id  : 17
core id  : 18
core id  : 19
core id  : 20
core id  : 21
core id  : 24
core id  : 25
core id  : 26
core id  : 27
core id  : 28
core id  : 29
core id  : 0
core id  : 1
core id  : 2
core id  : 3
core id  : 4
core id  : 5
core id  : 6
core id  : 8
core id  : 9
core id  : 10
core id  : 11
core id  : 12
core id  : 13
core id  : 16
core id  : 17
core id  : 18
core id  : 19
core id  : 20
core id  : 21
core id  : 25
core id  : 26
core id  : 27
core id  : 28
core id  : 29

不难发现,core 的记录发生了重复,推测是由于physical id 设置了相同的名称,因此记录核心时就发生了重复。因此认为文件中记录的 24 核心更加准确。

  • 查看线程数

通过processor 记录:

代码语言:javascript
复制
grep 'processor' /proc/cpuinfo | sort -u | wc -l
96

可知服务器有两个cpu,每个cpu为24核心,一共48个核心,96线程,每个核心有2个线程。

  • lscpu

可以直接查看计算机的cpu信息:

代码语言:javascript
复制
Address sizes:                   46 bits physical, 48 bits virtual
CPU(s):                          96
On-line CPU(s) list:             0-95
Thread(s) per core:              2
Core(s) per socket:              24
Socket(s):                       2
NUMA node(s):                    2
Vendor ID:                       GenuineIntel
CPU family:                      6
Model:                           85
Model name:                      Intel(R) Xeon(R) Platinum 8255C CPU @ 2.50GHz
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 北野茶缸子 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景知识
    • 物理 cpu 数(physical cpu)
      • 主频 /Hz
        • 核心(core)
          • 线程 (thread)
            • 同时多线程技术(simultaneous multithreading)和 超线程技术(hyper–threading/HT)
        • 查看信息
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档